分类 Linux 下的文章

最近在把一下WIN下面的源程序转入linux下面,基本在控制台下面工作,所以经常碰到乱码,太恶心了。 今天专门抽出时间来找中文终端的办法终于被我找到了。

网上我找到两种办法,一种是内核补丁,这个有难度,还有一种是使用fbterm。 我选择了fbterm,找了找,发现很多人发的都是fbterm + yong输入法,但是我下了yong之后发现,他的脚本里面不支持archlinux,好像也没有源代码放出,还好,AUR上面有人放了出来,但是我试了一下,要有gdk,gtk的支持,但是我都安装好了以后,发现还是不能用,提示gtk 不能打开显示。。。 所以只能选择走 fbterm + ucimf 这个组合。这个组合也有一些问题比较坑爹,我一开始选择的就是这个组合,但是被一些坑爹的理由坑了几个小时,才掉头去尝试 fbterm + yong的,结果那个更坑爹,只好回头重新尝试这个组合,还好,搞到23:30才搞定 --!

首先 安装两个中文字体和一个英文等宽字体 sudo pacman -S wqy-zenhei sudo pacman -S wqy-bitmapfont sudo pacman -S ttf-inconsolata 还可以再用AUR安装一个雅黑 ttf-microsoft-yahei 6.02-2

然后 通过AUR来安装 fbterm-1.7.0-4-i686.pkg.tar.xz 然后先运行一下fbterm来产生一下默认的配置文件。

vim .fbtermrc font-names=Inconsolata,Micosoft Yahei Song cursor-shape=1

vim .bashrc alias fbterm='LANG=zh_CN.UTF-8 fbterm'

再用AUR 安装 libucimf2.3.8-1 注意在makepkg -s 这一步会提示出错 需要手动找到文件下里面的ucimf.cpp 在里面加上一个头文件

include

同时修改PKGBUILD 注释掉source开头的那一行,防止再次下载覆盖掉你的改动, 然后再makepkg -s 就不会有错误了

再用AUR 安装 fbterm-ucimf 0.2.9-2

这个时候如果进入fbterm的话,是可以显示中文的,但是VIM还是乱码。 典型现象就是用VIM打开中文文件,下面的会显示“已转换” 3个汉字,但是文件里面还是乱码。 只要修改 .vimrc 中间添加编码格式 fileencodeing= 。。。。。。。。。。。 就可以了。

但是这时候使用 ctrl+space 会提示执行IM失败,然后我就到处找来找去,终于在一个网页的角落里面发现 原来还要在装两个。

再用AUR 安装 openvanilla-modules 0.9.1-1 再用AUR 安装 ucimf-openvanilla 2.10.11-2

这时候再次进入fbterm 使用 ctrl + space 输入法可以切换出来,但是坑爹的是按下 F9, 就被锁住了, 按键无效。然后我就在网上找来找去,在ucifm官方上面也到处找,没有发现任何问题。官方的archlinux的安装和我差不多,就是这个地方坑了我。然后我尝试把前面的几步重新来了一遍,还是一样。

然后就是尝试 yong 输入法,结果同样悲剧了,最后我是看官方给出的图片的时候发现了一个问题就是官方上面有显示拼音两个字,而我那边直接就是空的。然后我再去找官方的下载连接,发现里面有两个比较可以的文件一个是ucimf-sunpinyin,一个是ucimf-we...... 而这两个文件不管是在官方的安装文档还是在其他的网页上面我都没有看到有人提到过需要安装他们的。 但是既然官方下载里面有,那我就下了试了一下,果然,就是缺少这个。

pacman -S sunpinyin pacman -S ibus-sunpinyin pacman -S gambas2-gb-db-sqlite3 pacman -S gambas3-gb-db-sqlite3 aur ucimf-sunpinyin 0.5-2

这次再次启动 fbterm,ctrl+space,就可以正常输入中文,一点问题也没有了。 不过还有一点小问题,就是关闭输入法的时候会多出来两个小字符。不过这个也无关紧要了。

记录以作备用。

前几天准备换掉RHEL5,来个其他的linux发行版。查了查,终于发现一个比较适合我的,就是arch linux,只包含一些最基本的模块,其他的都有手动去安装。但是坑爹的是网上的中文教程全部是2010版本,内含setup的图形界面,而12.08.04只有命令行模式安装方式。还好还有wiki,但是wiki的中文也是不够详细,详细的还是要看英文。

下载安装镜像和配置虚拟机都略过。 进入安装模式以后第一件事是要进行分区,分区很重要,怎么分区是由后面的grub的模式来决定的。grub有3种模式,分别对应grub-bios-gpt,grub-bios-mbr,grub-uefi。当时我因为一时糊涂,结果选择了grub-uefi这个分支世界线,结果就bad end了一天啊。所以建议走grub-bios-gpt和grub-bios-mbr这两条线,最后我选择了grub-biso-gpt这条世界线,终于一次good end了。

选择grub-bios-gpt的话,就需要用gdisk或者cgdisk来分区,千万不要用fdisk,会挂的。gdisk是直接命令行界面,cgdisk有写图形界面的样子。这次我选择了gdisk,使用 命令 gdisk /dev/sda。 根据界面提示分区如下。 大小 编码 文件系统 挂载 2M ef02 无文件系统 512M 8300 linux filesystem /boot 61.5G 8300 linux filesystem / 2G 8200 linux swap swap

2M的这个区是一定需要的因为grub-bios-gpt指明需要这个区,并且这个区推荐在最前,比/boot还要靠前,他的编码是ef02,这个一定要选对,文件系统为无。 512M 这个区其实不一定要这么大,不过我是为了以后如果可以更换为grub-uefi而预留的,刚好也可以作为一个/boot区域。 61.5G,我是直接作为一个主目录 2G,我是作为交换区域来用的。

下面是格式化 mkfs.ext4 /dev/sda2 mkfs.ext4 /dev/sda3 mkswap /dev/sda4 && swapon /dev/sda4 这个交换区,总觉得好像没有运行起来。。。 mount /dev/sda3 /mnt mount /dev/sda2 /mnt/boot

然后就是根据实际情况配置网络 ifconfig eth0 192.168.1.103 这个是IP地址 route add default gw 192.168.1.1 这个是网关 vi /etc/resolv.conf 使用VI来打开DNS配置文件添加下面两句 nameserver 218.2.135.1 nameserver 61.147.37.1

静态IP地址的可以试试看ping 网关,如果不通,那么就肯定是IP和网关没设置号。 然后在试试看ping 随便一个网站看看比如说ping . 如果提示错误的意思大致是超出范围的,那就肯定是DNS没设置好。

配置好网络然后就可以安装了 pacstrap /mnt base base-devel arch linux 基础包

pacstrap /mnt grub-bios grub-bios 和syslinux只需要一个

genfstab -p /mnt >> /mnt/etc/fstab 生成分区表

arch-chroot /mnt 切换根目录

vi /etc/hostname 设置主机名 xyz

vi /etc/hosts 设置host
127.0.0.1 localhost.localdomain localhost xyz
:1 localhost.localdomain localhost xyz search xyz

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 设置地区

vi /etc/locale.gen 找到开头为en_US和zh的行,把前面的注释符去掉

vi /etc/locale.conf
LC_COLLATE="C"

vi /usr/share/i18n/locales/zh_CN 找到LC_TIME段落,并添加 week 7;19971130;5 first_weekday 2 first_workday 2

locale-gen 生成地区信息

mkinitcpio -p linux

pacman -S grub-bios

modprobe dm-mod

grub-install --target=i386-pc --recheck --debug /dev/sda mkdir -p /boot/grub/locale

cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

grub-mkconfig -o /boot/grub/grub.cfg 生成grub配置信息

passwd root 生成root密码

exit

umount /mnt/boot

umount /mnt

reboot

OK这样就安装好了,可以进入archlinux了,当然后面还有很多需要自己配置的东西