分类: LINUX
2011-06-08 17:52:48
起因
为了方便xp和ubuntu直接共享文件,决定装个ftp,看大家都比较喜欢vsftpd,没多想,就随大流吧。
直接安装,改/etc/vsftpd.conf,重启,还是比较顺的。
sudo apt-get install vsftpd
sudo /etc/init.d/vsftpd restart
用cuteftp和ie登录,发现中文乱码。
问题定位
google了一下,原来是因为我本地设置的是zh_CN.UTF-8,vsftpd也继承了这个编码,而常见的ftp客户端是不会用utf8显示的。
有两个解决方案,一个是把本地设置改成GBK;另外一个是打一个补丁,让vsftpd支持utf8到gbk的转码。
方案一看着简单,但对本地影响太大;那就方案二了,为了依然依托于Debian的packaging系统,干脆做个deb安装包吧。
制作vsftpd_2.0.7.deb
- download debian source下载后本地文件:
sudo apt-get source vsftpd
vsftpd-2.0.7 //带debian信息的文件夹
vsftpd_2.0.7-0ubuntu1.diff.gz //patch
vsftpd_2.0.7-0ubuntu1.dsc
vsftpd_2.0.7.orig.tar.gz //原版源
- build dependance
sudo apt-get build-dep vsftpd
net-ftp/vsftpd patches (convert encoding , UTF8 FEAT & logging in Chinese):
patch < vsftpd-2.0.7-encoding.patch
vi debian/patches/wifexited-const.patch实际观察sysutil.c,由于打了上个补丁,位置有改变
- build
sudo dpkg-buildpackage -rfakeroot -uc -b
- install own build def
sudo dpkg -i vsftpd_2.0.7-0ubuntu1_i386.deb
# for charset
charset_filter_enable=YES
charset_server=UTF8
charset_client=GB18030
Deb安装包下载
如果懒得照此操作,可以直接下载打好补丁的vsftpd_2.0.7。