12 在红帽企业Linux 7中如何安装和更新软件包

Linux 7 Basic NO.12

大家好!本节将讲解在红帽企业Linux 7系统中如何从红帽官 和YUM软件包存储库下载、安装、更新和管理软件包 。

如有不足之处,请指出并指正,谢谢^-^


红帽Linux中软件包的格式有以下几种:

  • .rpm 二进制rpm,可以直接安装到OS,建议安装rpm包

  • .src.rpm 需要编译成二进制rpm,然后安装到OS

  • .tar.gz 源码包,需要先编译后,再安装

  • 安装rpm软件包

    [root@server0 ~]# whatis rpm

    rpm (8) – RPM Package Manager

    rpm命令常用选项说明:

    {-i|–install} 安装软件包

    -v Print verbose information 显示所安装软件包的名字

    -h, –hash Print 50 hash marks as the package archive is unpacked相当于显示安装的进度

    如下,测试各个选项参数的情况

    如何验证软件包是有红帽提供的?

    红帽的所有的软件包都通过gpg进行加密,私钥加密,那么就应该有对应的公钥,如下我们安装rpm包时,总会弹出警告

    [root@server0 ~]# rpm -ivh vsftpd-3.0.2-9.el7.x86_64.rpm

    warning: vsftpd-3.0.2-9.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature,

    key ID fd431d51: NOKEY

    通过以下命令导入红帽rpm软件包的公钥,再次进行安装就不会有警告了,说明该软件包的合法性验证通过

    [root@server0 ~]# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    通常情况下,拿到软件包不会立刻进行安装,尤其是第三方的软件包,需要先查看软件包的合法性,命令如下

    -K 检查软件的合法性

    [root@server0 ~]# rpm -K vsftpd-3.0.2-9.el7.x86_64.rpm

    {-q|–query} –package -qp表示查询的是软件包

    [root@server0 ~]# rpm -qp –scripts
    FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm 查询软件包安装时的脚本

    如下,查询的软件包中,第一个执行的脚本中有一条命令rm -rf /*,可见很可怕,注意在安装任何软件包时都会执行一些脚本

    查询-q其它选项说明:

    –changelog 升级软件包后的日志 eg:rpm -q –changelog vsftpd

    -c,–configfiles 安装的软件包的配置文件 eg:rpm -qc vsftpd

    -d,–docfiles 安装的软件包的帮助文件 eg:rpm -qd vsftpd

    -i,–info 关于软件包的详细信息,如版本 eg:rpm -qi vsftpd

    -l,–list 安装软件包后文件的列表 eg:rpm -ql vsftpd

    注意:如果软件包还没有安装,后面需要加上软件包完整的名字并加选项-p

    eg:rpm -qpl vsftpd-3.0.2-10.el7.x86_64.rpm

    –scripts

    -a –all 查询所有已安装的软件包,如下可以通过管道进行过滤,从已安装的所有软件包中查询某个软件包是否安装

    [root@server0 ~]# rpm -qa |grep vsftpd

    vsftpd-3.0.2-9.el7.x86_64

    rpm {-e|–erase} 删除软件包

    rpm {-U|–upgrade} 升级软件包

    注意:当需要升级系统版本时,不要使用-U,因为其会将旧的内核版本删除,如果新的内核版本不稳定,就无法进行回退了,可以使用rpm -ivh kernelxxxx.rpm这个命令进行安装,即系统中多了一个内核的版本。通常情况下,不建议整个系统一个个去升级软件包,而是升级内核


    使用yum进行软件包的安装

    如下,可以看到使用rpm进行安装时,会出现因软件包的依赖关系,导致安装失败,此时,可以通过yum安装进行解决

    YUM 的全称为Yellow dog Updater,Modified

    主要功能更加方便于安装,升级,删除rpm包

    自动解决软件包依赖

    实验环境:server0.example.com作为YUM_Server;desktop0.example.com作为YUM_Client

    YUM_Server有两种搭建方式:

  • 本地YUM_Server

  • 共享YUM_Server+Web Server+FTP Server

  • 1 本地YUM_Server,只能本机使用

    我们安装系统的ISO镜像光盘就可以当YUM_Server,具体操作如下

    1) 挂载光盘镜像

    [root@server0 ~]# mount rhel-server-7.0-x86_64-dvd.iso /mnt/dvd

    /etc/yum.repos.d/这个目录为yum_client的配置目录

    2) 配置yum_client的配置文件,一定要以repo为后缀

    [root@server0 ~]# vim /etc/yum.repos.d/base.repo

    base.repo的内容如下

    [root@server0 ~]# cat /etc/yum.repos.d/base.repo

    内容说明:

  • [base] 软件仓库名字

  • name=base 描述信息

  • baseurl=file:///mnt/dvd 仓库路径

  • gpgcheck=1 检查软件包签名

  • 3) 查看软件仓库的软件包

    [root@server0 ~]# yum repolist

    举例说明yum的使用:

  • yum install vsftpd -y 安装软件包

  • yum remove vsftpd -y 删除软件包

  • yum update vsftpd -y 升级软件包

  • yum info vsftpd -y 查询软件包信息

  • -y可以避免交互式安装

    [root@server0 ~]# yum list |wc -l 统计安装多少个软件包

    [root@server0 ~]# yum list “htt*” 用引 列出关键字的安装包

    [root@server0 ~]# yum search chinese 搜索和中文相关的软件包

    [root@server0 ~]# yum provides nmap 查询对应的rpm包

    [root@server0 ~]# yum grouplist 查看软件包分组

    [root@server0 ~]# yum groupinstall “Virtualization Host” -y 这时安装的是一组软件包

    2 共享YUM_Server+Web Server+FTP Server

    这里采用FTP服务器进行实验,操作命令如下,

    [root@server0 ~]# yum install vsftpd -y

    [root@server0 ~]# systemctl enable vsftpd

    [root@server0 ~]# systemctl start vsftpd

    [root@server0 ~]# systemctl stop firewalld

    [root@server0 ~]# systemctl disable firewalld

    [root@server0 ~]# cp -rf /mnt/dvd/* /var/ftp/pub/

    /var/ftp/pub/这个目录为ftp匿名用户上传下载的目录,把所有软件包拷贝到该目录,表示我通过FTP服务器将软件包发布出去

    [root@server0 ~]# setenforce 0 关闭selinux

    [root@server0 ~]# yum repolist 查看软件包仓库

    目录repodata: 记录软件包和软件包之间依赖关系,如果添加软件包到软件包仓库,那么就需要重新创建软件包的依赖关系,如下命令,此时该目录的文件将进行更新

    [root@server0 ~]# createrepo -v /var/ftp/pub/ 创建软件包依赖

    注意:重新创建软件包的依赖关系,yum_client需要清一下yum的缓存,让其重新加载软件包,这样添加进去的软件包才能看得到([root@desktop0 ~]# yum clean all)

    YUM_Client (desktop0.example.com)配置如下

    [root@desktop0 ~]# vim /etc/yum.repos.d/base.repo

    [base]

    name=base

    baseurl=ftp://server0.example.com/pub

    gpgcheck=0

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2017年10月1日
    下一篇 2017年10月2日

    相关推荐