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进行处理,非常感谢!