编译vsftpd时,出现could not read symbols: File in wrong format错误提示,后搜寻相关资料,是因为vsftpd的一个安装文件没有考虑到64位平台库文件位置。
如果的的系统是64位平台,解决办法如下:
编辑源代码安装目录下的vsf_findlibs.sh, 将其中路径中的lib替换成lib64。
快速的vim替换命令是:
:%s?lib/?lib64/?
如果检查系统是否为64位平台?
uname -m
如果输出 x86_64,说明是64位平台
为了避免你重新编辑的麻烦,我将vsftpd部分代码重新编辑,使之可以在32位和64平台中顺利编译。
修改如下:
1. 修改了builddesf.h, 添加了PAM, TCP_WRAPPERS支持
2. 修改了vsf_findlibs.sh, 使之可以在32位或64位平台上顺利编译。
3. 修改了vsftpd.conf, 适应一般禁止匿名访问的FTP站点的配置文件