在虚拟机中安装了Linux系统,配置好虚拟机与本机的网络畅通后,一直想办法向虚拟机中传输文件及安装包,可是我装的虚拟机并没有带ftp服务,没办法只有用了VMware的共享文件夹,暂时解决需求。
今天有时间决定安装vsftpd,使用ftp上传文件。不过在安装过程中遇到一些问题,在此记录。
一、下载 : 我下载的软件是 vsftpd-2.0.3.tar
二、解压 : tar xvzf vsftpd-2.0.3.tar
三、安装 : cd vsftpd-2.0.3
make
make install
但是在make 编译的过程中报错:sysdeputil.c:185: error: storage class specified for parameter ?.nviron?
经过查找资料 发现时要给sysdeputil打个补丁 于是网上下载 attachment.bin 文件,放入到vsftpd-2.0.3中 然后执行patch sysdeputil.c attachment.bin
继续 执行make命令,结果又报错:/lib/libcap.so.1: could not read symbols: File in wrong format
继续查找资料找到原因,原来我的虚拟机是64位的 而软件是32位的,所以在编译过程中 vsf_findlibs.sh文件中有一行 locate_library /lib/libcap.so.1 && echo "/lib/libcap.so.1"; 要改成 locate_library /lib64/libcap.so.1 && echo "/lib64/libcap.so.1"; 也就是给lib加上64,保存修改。继续执行make命令。OK 执行成功。 在执行 make install 命令
if [ -x /usr/local/sbin ]; then \
install -m 755 vsftpd /usr/local/sbin/vsftpd; \
else \
install -m 755 vsftpd /usr/sbin/vsftpd; fi
if [ -x /usr/local/man ]; then \
install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
elif [ -x /usr/share/man ]; then \
install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
else \
install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
if [ -x /etc/xinetd.d ]; then \
install -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi
安装成功!!!
四、启动服务
cd /etc
vi vsftpd.conf 在最后一行加入listen=YES 保存后
which vsftpd 找到命令所在路径 我的是 /usr/local/sbin/vsftpd
执行 /usr/local/sbin/vsftpd & 结果 [1] 29643
OK 服务启动成功,可以使用ftp服务喽!!!!