今天我们讲一个小项目:使用centos6 ftp部署一个可供centos6、centos7系统使用的yum网络仓库
我们来分析一下这个项目:首先我们要先安装ftp包,开启并配置ftp服务。接着关闭并配置selinux,关闭防火墙。最后创建并配置网络仓库。这就是这个项目所涉及的内容。
现在我们具体分析每一个步骤及所用的知识。首先我们将要安装ftp安装包,要讲安装包,不得不提rpm命令,rpm命令分为主命令(安装、卸载、升级、查询、校验等)除主命令之外还有子命令。接下来我们详细的讲解一下这个命令:

rpm
-i 安装
    -v 显示过程
    -vv 显示详细过程
    -h 显示进度

ftp部署一个可供centos6、centos7系统使用的yum网络仓库

    --nodeps忽略依赖性关系检测

ftp部署一个可供centos6、centos7系统使用的yum网络仓库
在这幅图里面,我们可以发现第一次安装不成功,这是因为该包存在依赖性关系,那什么是依赖性关系呢?简单地说就是要安装B包就要先安装A包。这就是依赖性关系,而 --nodeps选项就能忽略依赖性关系检测

    --replacepkgs 重复安装已安装过的包,文件覆盖
    --replacefiles 即将安装的包的部分文件与其他已安装的包文件冲突,可继续安装,文件不覆盖,这种情况用于不同版本的安装包。
    --nosignature: 不检查来源合法性
    --nodigest:不检查包完整性
    --noscripts:不执行程序包脚本
        %pre: 安装前脚本; --nopre
        %post: 安装后脚本; --nopost
        %preun: 卸载前脚本; --nopreun
        %postun: 卸载后脚本;  --nopostun
    -U 指定的包比已安装的包新或者未安装
    -F 指定的包比已安装的包新
    --oldpackage 指定的包比已安装过的包旧
    --force  相当于  --replacepkgs, --replacefiles, --oldpackage的功能

-q 查询包是否安装
    -qa 查询已安装的所有包
    -qf 文件路径  查询指定的文件来源于哪一个rpm包
    -ql 包名 查询该包提供了哪些文件
    -qp# rpm包 对未安装的包,指定rpm文件再配合其他查询子选项来进行各项查询操作
    -q --changelog 包名 查看更新日志
    -qc 包名 查看该软件包所提供的配置文件
    -qd 包名 查看该软件包所提供的文档文件
    -qi 包名 查看该软件包的详细信息
    -q --scripts 查看安装前及安装后的脚本 
    -q --provides 包名 查看一个软件包提供了哪些能力
    -qR 包名 查看一个软件包的运行所依赖的能力
    -q --whatprovides 能力名 查看一个能力由哪个包提供
    -q --whatrequires 能力名 查看一个能力依赖于哪些包

ftp部署一个可供centos6、centos7系统使用的yum网络仓库
ftp部署一个可供centos6、centos7系统使用的yum网络仓库

-e 卸载
    -e 包名
        rpm -e `rpm -q vsftpd` 
        或
        rpm -e vsftpd --allmatches 安装了多个版本的某个rpm可以一次性全部删除
        --nodeps 删除时不检查依赖性关系

-V 校验已安装的包的文件哪些发生了更改或丢失,更改变化的类型如下
            S file Size differs
            M Mode differs (includes permissions and file type)
            5 digest (formerly MD5 sum) differs
            D Device major/minor number mismatch
            L readLink(2) path mismatch
            U User ownership differs
            G Group ownership differs
            T mTime differs
            P capabilities differ

-K rpm包 验证包的合法性
--import 公钥 导入公钥
rpm -qa "gpg-pubkey*" 查询公钥
rpm -e `rpm -qa "gpg-pubkey*"` 删除公钥

实验:模拟删除/etc/init/rcS.conf文件并恢复

ftp部署一个可供centos6、centos7系统使用的yum网络仓库

安装完vsftp后,我们接着做如下操作:

启动服务 
    service vsftpd start
    设置默认开机后自动启动ftp服务 
    chkconfig vsftpd on
    关闭SElinux

所谓的selinux就是linux的安全模式,我们需要进入有关这个服务的配置文件里,vim /etc/selinux/config 设置SELINUX=disabled 如图所示
这里写图片描述
ftp部署一个可供centos6、centos7系统使用的yum网络仓库
关闭这个的目的是为了让我们能够更好地通过ftp登上服务器

       关闭一次防火墙 
        iptables -F
        保存关闭防火墙这个命令 
        service iptables save

创建ftp目录即可,结果如图:
ftp部署一个可供centos6、centos7系统使用的yum网络仓库
最后我们编写脚本创建yum网络仓库即可,脚本如图:
ftp部署一个可供centos6、centos7系统使用的yum网络仓库
这样我们就完美的解决掉了这个项目。通过这个项目我们学到了很多,rpm,yum,服务器的搭建等等。在文章的最后,我还要说yum到底是什么呢?说道底,yum是rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包。这也是yum的好处所在!