Linux软件安装管理之--RPM与YUM

Linux软件安装管理之--RPM与YUM

 linux一般使用RPM或源码包进行安装软件,上一篇文章写了《Linux 软件安装管理之--源码包安装》

1 RPM软件管理程序:rpm

RPM命名“RedHat Package Manager”,简称则为RPM。这个机制最早由Red Hat这家公司开发出来的,后来实在很好用,因此很多distributons就使用这个机制来作为软件安装的管理方式,包括Fedora,CentOS,SuSE等知名的开发商都是用它。

RPM最大的特点就是需要安装的软件已经编译过,并已经打包成RPM机制的安装包,通过里头默认的数据库记录这个软件安装时需要的依赖软件。当安装在你的Linux主机时,RPM会先依照软件里头的数据查询Linux主机的依赖属性软件是否满足,若满足则予以安装,若不满足则不予安装。

rpm 包的获取方式:
1、Centos 系统镜像光盘
2、网站 rpmfind.net
3、官网,比如安装 mysql 软件,我们可以去它的官方网站下载:http://www.mysql.com

1.1 RPM默认安装路径

rpm软件安装完毕后,该软件的相关信息会被写入 /var/lob/rpm/ 目录下的数据库文件中,rpm软件升级、查询、数字签名等等都需要  /var/lob/rpm/  目录。

/etc                  配置文件的目录
/usr/bin              可执行文件
/usr/lib              一些程序使用的动态函式库
/usr/share/doc        软件的使用手册与说明文件
/usr/share/man        一些 man page 文件

1.2 RPM 安装

我在这里尝试去 http://rpmfind.net 官网下载 htop 软件rpm安装包

Linux软件安装管理之--RPM与YUM

[root@localhost src]# wget http://rpmfind.net/linux/epel/8/Everything/x86_64/Packages/h/htop-2.2.0-6.el8.x86_64.rpm
--2020-05-30 06:30:38--  http://rpmfind.net/linux/epel/8/Everything/x86_64/Packages/h/htop-2.2.0-6.el8.x86_64.rpm
正在解析主机 rpmfind.net (rpmfind.net)... 195.220.108.108
正在连接 rpmfind.net (rpmfind.net)|195.220.108.108|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:114636 (112K) [application/x-rpm]
正在保存至: “htop-2.2.0-6.el8.x86_64.rpm”

htop-2.2.0-6.el8.x86_64.rp 100%[========================================>] 111.95K  86.6KB/s  用时 1.3s    

2020-05-30 06:30:40 (86.6 KB/s) - 已保存 “htop-2.2.0-6.el8.x86_64.rpm” [114636/114636])

[root@localhost src]# rpm -ivh htop-2.2.0-6.el8.x86_64.rpm     // -i安装;-v显示安装信息;-h显示安装进度条
警告:htop-2.2.0-6.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 2f86d6a1: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:htop-2.2.0-6.el8                 ################################# [100%]
[root@localhost src]# rpm -ql htop 
/usr/bin/htop
/usr/lib/.build-id
/usr/lib/.build-id/d9
/usr/lib/.build-id/d9/50f29362cda4c9f4bc2021e82df811620868a0
/usr/share/applications/htop.desktop
/usr/share/doc/htop
/usr/share/doc/htop/AUTHORS
/usr/share/doc/htop/ChangeLog
/usr/share/doc/htop/README
/usr/share/licenses/htop
/usr/share/licenses/htop/COPYING
/usr/share/man/man1/htop.1.gz
/usr/share/pixmaps/htop.png

1.3 RPM升级与更新

rpm使用-Uvh、-Fvh升级与更新

rpm -Uvh:若软件没有安装过,则直接安装;若存在旧版本则更新。

rpm -Fuh:若软件没有安装过,则不会安装也不会升级。

1.4 RPM查询

rpm -q  : 仅查询(query),后面接的软件名称是否有安装;
rpm -qa : 列出所有(all)已经安装的软件名称;
rpm -qi : 列出该软件的详细信息(information);
rpm -ql : 列出该软件所有的文件与目录所在完整路径列表(list);
rpm -qc :列出该软件所有的配置(configfiles)文件,找出/etc下的配置文件而已;
rpm -qd : 列出该软件所有的说明文件,找出man有关的文件而已;
rpm -qR : 列出该软件依赖(Requires)的软件
rpm -qf : 列出该文件/目录属于哪一个已安装的软件

1.5 RPM卸载与重建数据库

[root@web src]# rpm -q dstat
dstat-0.7.2-12.el7.noarch    
[root@web src]# rpm -e dstat    // 卸载软件
[root@web src]# rpm -q dstat
package dstat is not installed
[root@web src]# rpm --rebuilddb    // 当出现意外导致 RPM 数据库 /var/lib/rpm/ 文件破损,可用rpm --rebuilddb重建数据库。

 注:--nodeps 忽略依赖,建议在卸载时不要用 rpm 去卸载有依赖关系的包,应该用 yum

1.6 查看软件包内容是否被修改

[root@web src]# rpm -V postfix  //验证该软件包含的文件是否有被更动
S.5....T.  c /etc/postfix/main.cf
[root@web src]# rpm -Vf /etc/ssh/sshd_config     ///列出某个文件是否被更动过
S.5....T.  c /etc/pam.d/sshd
S.5....T.  c /etc/ssh/sshd_config
注:如果出现的全是点,表示测试通过
出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件

2 YUM 在线升级机制

yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。YUM:解决依赖关系问题,自动下载软件包。
它是基于 C/S 架构:C=client S=ftp\http\file

2.1 yum 命令详解

 请查看我另外一遍文章:yum命令详解

2.2 配置yun源

2.2.1 配置本地yum源

1)挂载镜像

确定虚拟机光驱中有加载的系统镜像

Linux软件安装管理之--RPM与YUM

[root@localhost src]# ll /dev/cdrom 
lrwxrwxrwx. 1 root root 3 5月  30 05:54 /dev/cdrom -> sr0
[root@localhost src]# mount /dev/cdrom /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@localhost src]# ls /mnt
AppStream  BaseOS  EFI  images  isolinux  media.repo  TRANS.TBL

 2)配置yum源文件

在centos8中,统一的iso自动加载BaseOS和AppStream安装源存储库。

BaseOS存储库 - 以传统RPM包的形式提供底层核心OS内容。

AppStream存储库 - 提供给用户空间运行的应用程序。

[root@localhost ~]# vim /etc/yum.repos.d/centos8.repo 
[BaseOS]
name=centos-baseos        //对 yum 源描述信息
baseurl=file:///mnt/BaseOS         //yum 源的路径,提供方式包括 FTP(ftp://...)、HTTP(http://...)、本地(file:///...
光盘挂载目录所在的位置)
enabled=1    //为 1,表示启用 yum 源;0 为禁用
gpgcheck=0

[AppStream]
name=centos-appstream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0

 2.2.2 网络yum源

阿里云yum源相关站点:

http://mirrors.aliyun.com/centos/

http://mirrors.aliyun.com/repo/

centos8配置阿里云yum源

[root@localhost src]#  wget -O /etc/yum.repos.d/Centos-8.repo http://mirrors.aliyun.com/repo/Centos-8.repo
--2020-05-30 08:52:08--  http://mirrors.aliyun.com/repo/Centos-8.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 183.240.216.194, 120.233.172.240, 120.233.172.226, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|183.240.216.194|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2595 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/Centos-8.repo”

/etc/yum.repos.d/Centos-8. 100%[========================================>]   2.53K  --.-KB/s  用时 0s      

2020-05-30 08:52:08 (300 MB/s) - 已保存 “/etc/yum.repos.d/Centos-8.repo” [2595/2595])
[root@localhost src]# yum repolist | grep aliyun
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Repository PowerTools is listed more than once in the configuration
Repository AppStream is listed more than once in the configuration
上次元数据过期检查:0:02:18 前,执行于 2020年05月30日 星期六 08时52分43秒。
base                    CentOS-8 - Base - mirrors.aliyun.com               1,661

 

上一篇:linux进程和线程查看


下一篇:linux – Htop进程查看器 – 设置列宽