【Debian】制作支持GBK的VSFTPD安装包
Posted on Sat 10 October 2009 in 我用(IT)
起因
为了方便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 vsftpdvsftpd-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
-
打补丁
- 从http://bugs.gentoo.org/200811下载对2.0.7的补丁
-
net-ftp/vsftpd patches (convert encoding , UTF8 FEAT & logging in Chinese):
-
- 执行
-
patch < vsftpd-2.0.7-encoding.patch
-
- 修改debian的补丁wifexited-const.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。