1. RHEL x86_64环境下,安装vsftpd,在编译(make)的时候,会报错:
(1)、gcc: /lib/libpam.so.0: No such file or directory
原因是x86_64环境下vsftpd源代码下的vsf_findlibs.sh没处理好库文件的调用关系;可手动修改vsf_findlibs.sh中的相关代码,或者是用下面的简单方式修改相关lib的链接
rm -f /lib/libpam.so.0 ---这里删除的是链接文件,放心
ln -s /lib64/libpam.so.0.77 /lib/libpam.so.0
(2)、/lib/libcap.so.1: could not read symbols: File in wrong format
因同样的原因引起,所以修改方式同上:
rm -f /lib/libcap.so.1
ln -s /lib64/libcap.so.1.10 /lib/libcap.so.1
以上修改后,再编译就不会报错。当然为了不引起其他程序调用lib出错,最好是将lib的相关链接改回去。
2. 对于RHEL 4.x ,手动编译后,如果直接套用系统自带的vsftpd-2.0.1.xxx 默认安装的启动文件(/etc/init.d/vsftpd),会报错:
500 OOPS: unrecognise option: --force-background
或者:
Starting vsftpd for vsftpd: -----系统一直停留在这里不动,不出现我们期望的提示 " [ OK ] " 。
(1)、我们可以在vsftpd.conf配置文件内先强制开启background模式:
vi /etc/vsftpd/vsftpd.conf
background=YES
没弄明白的是,既然在配置文件内设定了vsftpd使用standalone mode启动,为什么还要设定background。
(3)、并将/etc/init.d/vsftpd内的--force-background删除:
vi /etc/init.d/vsftpd
daemon /usr/local/sbin/vsftpd $i
# 原代码是这样:daemon /usr/sbin/vsftpd $i --force-background
3. 对于RHEL 5.x ,手动编译后,如果直接套用系统自带的vsftpd-2.0.5.xxx自带的启动文件,在修改时稍有不同:
仅需要按照2.1操作即可,不需要2.2 ;因为在这个版本的启动文件里面,将 --force-background "这个参数给取消了。