我很久以前就想写这篇文章,把自己用LFS当桌面OS碰到的问题列出来并逐一提出解决办法,但自己碰到的好些问题至今仍然没有解决,所以一搁再搁,今天先开个头吧,不完整的地方以后再补充:
目录预览:
一.理想的软件组合
二.中文问题
2.0 必要准备
2.1 SAMBA共享编码问题
2.2 挂载Win分区和U盘文件编码问题
2.3 rxvt-unicode中文显示问题
2.4 Gvim文件乱码问题
2.5 ROX-Filer文件名乱码问题
2.6 中文输入,fcitx
2.7 MLdonkey文件名乱码问题
三.网络问题
3.1 ADSL拨号
3.2 Linux与Windows共享文件SAMBA
3.3 VirtualBox中VirtualMachine和Host共享
四.配置问题
4.1 mkblfs.script
4.2 编写一个脚本使其在系统启动时启动
4.3 fvwm2rc
4.4 gvimrc/vimrc
4.5 MLdonkey
4.6
五.应用问题
5.1 安装/卸载软件
5.2 ROX-Filer文件管理
5.2 下载文件
5.3 播放音视频
5.4 图像转换/抓图
5.5 音、视频转换
5.6 自动挂载CD-ROM,U盘等移动设备
六.安全问题6.1 系统备份
6.2 MD5SUM验证
正 文
一.理想的软件组合
LFS+BLFS
ROX-Filer + FVWM
rxvt + rxvt-unicode
GVIM/Emacs
Firefox
MPlayer + XMMS/XMMS2
MLdonkey + Azureus + cURL
GQview + ImageMagic + Gimp
Pidgin
StarDict
OOo
VirtualBox + Win2k
二.中文问题
2.0 必要准备
a)确保你在编译内核时选择了下面的选项:
File system-->Native Language Support-->
(utf8) Default NLS Option
<*> Simplified Chinese charset (CP936,GB2312)
<*> Traditional Chinese charset (Big5)
<*> NLS ISO 8859-1 (Latin 1)
<*> NLS UTF8 |
上面四个字符集应该是最基本的,如果编译时没有选择支持这些编码,本来正确的配置也会出问题。
b)建议复制几个Windows字体,Linux显示中文要依赖它们:
cp -vR {arial.ttf,\
simsun.ttc,\
simhei.ttf,\
simkai.ttf,\
times.ttf,\
monos.ttf,\
sans.ttf} /usr/share/fonts/TrueType
cd /usr/share/fonts/TrueType
mkfontscale
mkfontdir |
c)简单美化一下
cat /etc/fonts/local.conf <<EOF
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--/etc/fonts/local.conf-->
<fontconfig>
<dir>/usr/share/fonts/TrueType/</dir>
<dir>~/.fonts</dir>
<dir>/usr/X11R6/lib/X11/fonts</dir>
<!--default settings for all fonts. -->
<match target="font">
<!-- Open AA-->
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
<!-- Open hint-->
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
<!-- Close autohint-->
<edit mode="assign" name="autohint">
<bool>false</bool>
</edit>
</match>
<!--English monospace Close-->
<match target="font">
<test target="pattern" name="lang" compare="contains">
<string>zh-tw</string>
<string>zh-cn</string>
<string>ja</string>
<string>ko</string>
</test>
<edit name="spacing">
<const>proportional</const>
</edit>
<edit name="globaladvance">
<bool>false</bool>
</edit>
</match>
</fontconfig>
EOF |
d)下面是各种字符集编码名称
zh_CN.gb2312 # 国标码,WindowsXP系统默认的编码
zh_CN.gbk
zh_CN.gb18030
zh_CN.utf8
en_US.utf8
cp936 # 应该就是指gb2312吧
euc-cn # 不知道是不是gb2312
iso10646-1 # 网上搜一下吧,我也不知道啥玩意儿,gbk?
|
e)建议command-line模式和X11模式用下面的编码方案
cat > ~/.bashrc <<EOF export LANG="C" export LC_ALL="C" EOF
|
cat > ~/.xinitrc <<EOF
export LANG="en_US.utf8"
export LC_ALL="en_US.utf8" EOF
|
好了,下面来解决一些实际问题:
2.1 SAMBA共享编码问题
方法一:
在编译内核时选择
File systems-->Network file systems-->
SMB file system support --> Use a default NLS
(cp936) Default Remote NLS Option |
如果设置了SMB远程文件系统(一般就是Windows吧)的默认编码,可以省事很多,直接挂载就可以:
| smbmount //windows_share/c$ /mnt/tmp |
方法二:挂载时指定编码
smbmount -o codepage=cp936,iocharset=utf8 \
//windows_share/c$ /mnt/tmp |
codepage指定samba客户端(通常是Windows)的字符编码
ipcharset指定samba服务器的字符编码,这个通常也就是你用的Linux字符集编码
为了免于每次mount时的输入麻烦,将其写入到/etc/samba/smb.conf的[global]字段中
dos charset = cp936
unix charset = utf8 |
2.2 挂载Win分区和U盘文件编码问题
方法一:
File systems-->DOS/FAT/NTFS File systems -->
VFAT fs support -->
(936) Default codepage for FAT
(utf8) Default iocharset for FAT |
如果指定的默认字符集编码,挂载命令不用指定iocharset就可以
方法二:
如果内核编译没有设置VFAT的默认字符集编码,mount时就指定吧:
| mount -t fs-type -o iocharset=cp936 /dev/hd? /mnt/tmp |
2.3 rxvt-unicode中文显示问题
在~/.Xdefaults中加入下面的字体设置,rxvt-unicode能比较好地显示中文
URxvt.font:xft:Luxi Mono:pixelsize=16, \
xft:SimSun:pixelsize=16:antialias=true |
2.4 Gvim文件乱码问题
cat > ~/.gvimrc <<EOF
set encoding=utf-8
set fileencodings=utf-8,euc-cn,euc-tw,lanti1
set guifont=SimSun\ 13
EOF |
encoding指定gvim保存文件时默认的编码为utf8
guifont指定一个显示中文的字体
fileencodings指定gvim打开文件时依次尝试选择utf8,eun-cn,...等编码打开文件,如果仍然不能正确显示中文,直接试试命令,99%的文本文件都能正确显示
:set enc=euc-cn :set enc=cp936
|
还不行的话,那就没办法了,我的gvim对繁体中文就不能显示,不知道什么是不是因为编译内核时没有选
<*> Traditional Chinese charset (Big5)
2.5 ROX-Filer文件名乱码问题
这里有一个问题:如果你的系统里既有gb2312编码的文件名,如从网上下载的rar包,解压后都是这种编码,又有utf8编码的文件名,一般都用utf8编码,这样终端(如urxvt)和文件管理器(如rox-filer)都只能正确显示一种字符集编码的文件,另一种出现乱码,不知道各位有什么办法解决
2.6 中文输入,fcitx
cat > ~/.bashrc <<EOF
export XMODIFIERS="@im=fcitx"
EOF |
修改/etc/gtk-2.0/gtkimmdules文件,使英文环境下可以输入中文:
| sed -i '{/im-xim.so/{n};s/ko:ja:th:zh/ko:ja:th:zh:en/}' |
将im-xim.so模块支持的语言环境增加一个en:
"ko:ja:th:zh"变成"ko:ja:th:zh:en"
2.7 MLdonkey下载中文文件名变短划线的问题
从源码编译安装MLdonkey:MLdonkey依赖ocaml软件包,编译ocaml时先从网上下载一个ocaml的unicode补丁,打上补丁后再编译ocaml和mldonkey,就能解决MLdonkey下载中文文件,文件名变成短划线的情况。
三.网络问题
3.1 ADSL拨号
如果用LFS直接拨号,确保编译内核时选择了PPP协议支持(及一些子选项)
Device Drivers-->Network device Support--> <*> PPP(point-to-point protocol) support
|
安装好pppoe拨号软件后
,以root帐户执行:
adsl-setup
>>> Enter your PPPoE user name (default ): gz_a123456@gz.jx
>>> Enter the Ethernet interface (default eth0):
>>> Enter the demand value (default no):
>>> Enter the DNS information here: server
>>> Please enter your PPPoE password:
>>> Choose a type of firewall (0-2):
>>> Accept these settings and adjust configuration files (y/n) ? |
adsl-start 看看能否连接上,再ping -c4 www.google.com是否畅通
3.2 Linux与Windows共享文件SAMBA
a)先配置/etc/samba/smb.conf
cat > /etc/samba/smb.conf <<EOF
[global]
workgroup = linuxgroup
server string = linux-smb
dos charset = cp936
unix charset = utf8
hosts allow = 192.168.1. #允许的连接的IP段,这里要注意一下
log file = /var/log/samba/%m.log
max log size = 50
socket options = TCP_NODELAY
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
username map = /etc/samba/smbusers
dns proxy = no
[share]
path = /mnt/share/
;guest ok = yes
browseable = yes
create mask = 0755
writeable = yes
EOF |
b)创建smbpasswd文件,并添加用户
cat /etc/passwd | mksmbpasswd.awk > /etc/samba/smbpasswd
smbpasswd -ae $USER |
其中mksmbpasswd.awk脚本在samba源码包的某个目录中有,$USER是指一个用户名,用这个用户名和设置的密码登入SAMBA服务器
c)连接
在Windows中访问SAMBA服务器,只要在网络邻居中添加一个连接就可以,输入地址时输入类似
\\192.168.1.1\share的地址
3.3 VirtualBox中VirtualMachine和Host共享
这个解决办法从www.linuxsir.org中抄过来的
a)确保
Device Drivers-->Network device Support-->
<*> Universal TUN/TAP device driver support
Networking-->TCP/IP networking-->
<*> IP: tunnel transformation
<*> 802.1Q VLAN Support |
b)
modprobe vboxdrv # 需要指定内核编码重新编译vboxdrv.ko echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE chmod 0666 /dev/net/tun tunctl -t tap0 -u mmx #网上有个tunctl.c,下载后cc一下 /sbin/ifconfig tap0 up /sbin/ifconfig tap0 10.10.10.1 netmask 255.255.255.0 |
3.4
四.配置问题
4.1 mkblfs.script
4.2 编写一个脚本使其在系统启动时启动
4.3 fvwm2rc
4.4 gvimrc/vimrc
4.5 MLdonkey
4.6
五.应用问题
5.1 安装/卸载软件
5.2 ROX-Filer文件管理
5.2 下载文件
5.3 播放音视频
5.4 图像转换/抓图
5.5 音、视频转换
5.6 自动挂载CD-ROM,U盘等移动设备
六.安全问题6.1 系统备份
6.2 MD5SUM验证