3、使用 rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 对该包进行安装:
[root@localhostbirdofprey]#rpm-ivhvsftpd-2.2.2-11.el6_3.1.src.rpm
安装过程中系统会提示类似如下错误:
warning:vsftpd-2.2.2-11.el6_3.1.src.rpm:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY
1:vsftpdwarning:usermockbuilddoesnotexist-usingroot
###########################################[100%]
warning:usermockbuilddoesnotexist-usingroot
warning:groupmockbuilddoesnotexist-usingroot
warning:usermockbuilddoesnotexist-usingroot
warning:groupmockbuilddoesnotexist-usingroot
warning:usermockbuilddoesnotexist-usingroot
warning:groupmockbuilddoesnotexist-usingroot
此时需要使用adduser mockbuild命令创建mockbuild用户:
[root@localhostbirdofprey]#addusermockbuild
4、重新使用rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 对该包进行安装:
[root@localhostbirdofprey]#rpm-ivhvsftpd-2.2.2-11.el6_3.1.src.rpm
warning:vsftpd-2.2.2-11.el6_3.1.src.rpm:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY
1:vsftpd###########################################[100%]
5、使用命令 cd /root/ rpmbuild/SOURCES/vsftpd/SOURCES进入vsftpd源码包目录,并使用tar -zxvf vsftpd-2.2.2.tar.gz解压vsftpd-2.2.2.tar.gz源码包:
[root@localhostSOURCES]#tar-zxvfvsftpd-2.2.2.tar.gz
6、使用命令cd vsftdp-2.2.2进入vsfftpd-2.2.2源码目录:
[root@localhostSOURCES]#cdvsftpd-2.2.2
7、使用命令vi features.c修改 features.c文件;将行内容为:vsf_cmdio_write_raw(p_sess, " UTF8\r\n");
修改为://vsf_cmdio_write_raw(p_sess,"UTF8\r\n")。
8、使用命令vi opts.c修改 opts.c文件;
将handle_opts函数修改成如下:
void
handle_opts(structvsf_session*p_sess)
{
str_upper(&p_sess->ftp_arg_str);
//if(str_equal_text(&p_sess->ftp_arg_str,"UTF8ON"))
//{
//vsf_cmdio_write(p_sess,FTP_OPTSOK,"AlwaysinUTF8mode.");
//}
//else
//{
//vsf_cmdio_write(p_sess,FTP_BADOPTS,"Optionnotunderstood.");
//}
}
9、返回上层目录并使用 tar -zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/命令重新压缩vsftpd-2.2.2.tar.gz文件:
[root@localhostSOURCES]#tar-zcvfvsftpd-2.2.2.tar.gzvsftpd-2.2.2/
我们使用ls -命令可以看到列表中vsftpd-2.2.2.tar.gz文件创建时间已经为当前创建时间,如下所示:
-rw-rw-r--. 1 mockbuild mockbuild 186982 5月 3 15:39 vsftpd-2.2.2.tar.gz -rw-r--r--. 1 mockbuild mockbuild 2828 2月 13 00:06 vsftpd-2.2.2-uint-uidgid.patch -rw-r--r--. 1 mockbuild mockbuild 1640 2月 13 00:06 vsftpd-2.2.2-v6only.patch -rw-r--r--. 1 mockbuild mockbuild 514 2月 13 00:06 vsftpd-close-std-fds.patch -rwxr-xr-x. 1 mockbuild mockbuild 338 2月 13 00:06 vsftpd_conf_migrate.sh -rw-r--r--. 1 mockbuild mockbuild 125 2月 13 00:06 vsftpd.ftpusers -rwxr-xr-x. 1 mockbuild mockbuild 2824 2月 13 00:06 vsftpd.init -rw-r--r--. 1 mockbuild mockbuild 335 2月 13 00:06 vsftpd.pam -rw-r--r--. 1 mockbuild mockbuild 361 2月 13 00:06 vsftpd.user_list -rw-r--r--. 1 mockbuild mockbuild 345 2月 13 00:06 vsftpd.xinetd10、进入源码包下的 SPECS目录,并使用rpmbuild -bb vsftpd.spec命令生成vsftpd-2.2.2-11.el6.1.x86_64.rpm:
[root@localhostSPECS]#rpmbuild-bbvsftpd.spec
此时因为系统缺少依赖包会报如下错误:
error: Failed build dependencies: libcap-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64 tcp_wrappers-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64我们可以从CentOS6.4安装盘中找到如下RPM软件包进行手动安装,包名如下:
libattr-2.4.44-7.el6.i686.rpm libcap-devel-2.16-5.5.el6.x86_64.rpm libattr-2.4.44-7.el6.x86_64.rpm tcp_wrappers-devel-7.6-57.el6.i686.rpm libattr-devel-2.4.44-7.el6.i686.rpm tcp_wrappers-devel-7.6-57.el6.x86_64.rpm libattr-devel-2.4.44-7.el6.x86_64.rpm tcp_wrappers-libs-7.6-57.el6.i686.rpm libcap-2.16-5.5.el6.i686.rpm tcp_wrappers-libs-7.6-57.el6.x86_64.rpm libcap-2.16-5.5.el6.x86_64.rpm vsftpd-2.2.2-11.el6_3.1.src.rpm libcap-devel-2.16-5.5.el6.i686.rpm11、将以上各包使用rpm -ivh *.rpm -force --nodeps命令进行强制安装:
[root@localhostrpm]#rpm-ivh*.rpm--force--nodeps
warning:libattr-2.4.44-7.el6.i686.rpm:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY
Preparing...###########################################[100%]
1:libattr###########################################[8%]
2:libcap###########################################[17%]
3:tcp_wrappers-libs###########################################[25%]
4:libattr###########################################[33%]
5:libcap###########################################[42%]
6:tcp_wrappers-libs###########################################[50%]
7:tcp_wrappers-devel###########################################[58%]
8:libcap-devel###########################################[67%]
9:libattr-devel###########################################[75%]
10:tcp_wrappers-devel###########################################[83%]
11:libcap-devel###########################################[92%]
12:libattr-devel###########################################[100%]
12、再次使用rpmbuild -bb vsftpd.spec对vsftpd-2.2.2-11.el6.1.x86_64.rpm包重新进行编译:
[root@lo