⼀、简介

Linux整个体系的关键不在于系统本身,⽽是在于可以基于linux系统去安装和配置的企业中的相关软件、数据以及应⽤程序,⽽在Linux中软件包的类型就像Linux发⾏版本⼀样丰富多样,⽬前⽐较流⾏的软件包格式有:可以直接执⾏的 rpm的⼆进制包,源码形式的tar.gz 、 tar.bz2、 gzip与bzip2 的源码包。

源码包(source code):源代码包是没有经过编译的包,需要经过GCC、 C++编译环境才能运⾏
⼆进制包(binary code):⽆需编译,可以直接安装使⽤

RPM软件包⽂件名由四个元素组成(在加上.rpm后缀): name-version-release-architectur
vsftpd-3.0.3-28.el8.x86_64.rpm
name:是描述其内容的⼀个或多个次词语(coreutils)
version:是原始软件的版本号(8.30)
release:是基于该版本的软件包的发⾏版本,由软件打包商设置,后者不⼀定是原
始软件开发商(6.el8)
Arch:是编译的软件包运⾏的处理器架构, noarch表示此软件包的内容不限定架构

1、安装与卸载rpm包

对于rpm软件包的安装,我们可以使⽤

[root@Gming ~]# rpm -e vsftpd

2、软件包信息查询

RPM命令⼯具包提供了强⼤的软件查询功能,格式 < rpm -q >可以进⾏⼤量的查询⼯作,查询有很多选项如:
-q: 查询指定软件包是否已经安装,如果安装显示软件包详细信息,否则显示“package is not installed”

[root@Gming ~]# rpm -q vsftpdvsftpd-3.0.3-28.el8.x86_64

-qa: 查询系统中已经安装的所有软件。因为软件太多,我们用wc -l统计软件包的数量

[root@Gming ~]# rpm -qa | wc -l418

-qi: 查询指定软件包的详细信息,已安装的vsftpd包为例:
软件管理 之 rpm 和 yum 安装软件_rpm
-ql: 查询指定软件的安装路径与⽂件列表

[root@Gming ~]# rpm -ql vsftpd

-qc: 查询指定软件的配置⽂件
软件管理 之 rpm 和 yum 安装软件_rpm_02
-qf: 查询指定⽂件属于那个包。包前边一定要加上全路径,即使用-qc查询到的配置文件

[root@Gming ~]# rpm -qf /etc/logrotate.d/vsftpdvsftpd-3.0.3-28.el8.x86_64

3、安全验证

RPM提供的验证功能可以随时追踪软件的状态,当软件被⼈篡改时,使⽤ rpm -V 命令就会提示该软件的哪些状态被修改,未篡改的软件使⽤该命令则⽆任何提示
下⾯列出所有kennel出现的提示字符及含义
a) 5 – MD5值已经改变
b) S – ⽂件⼤⼩已经改变
c) L – 链接⽂件源已经改变
d) T – ⽂件最后修改时间已经改变
e) D – 设备改变
f) U – ⽤户发⽣改变
g) G – 组发⽣改变
h) M – 包括权限与类型在内的模式已经改变
i) ? – 不可读的⽂件
未篡改的文件是没有任何安全问题的,这里我们使用chown命令改变vsftpd的所属者和所属组,然后使用命令rpm -V vsftpd追踪软件被修改的状态
软件管理 之 rpm 和 yum 安装软件_rpm_03

⼆、使⽤YUM安装软件

YUM是改进版的RPM软件管理器, YUM可以很好的解决RPM所⾯临的软件包依赖问题,⼤量的软件依赖会让RPM成为恐怖存在, YUM可以从很多源中搜索软件以及它们的依赖包,并⾃动安装相应的依赖软件,使⽤YUM安装软件时⾄少需要⼀个YUM源,YUM源就是存放很多RPM软件的⽂件夹,有三种⽅式分别是HTTP、 FTP或者本地⽂件夹的⽅式访问YUM源。

1、设置YUM源

默认的YUM源定义⽂件存在/etc/yum.repos.d/⽬录下,⽤户可以⾃定义任意可以使⽤的YUM源,但⽂件名的扩展名必须是repo,⽂件格式如下:

选项功能描述
[][]中填写YUM源唯⼀的ID,可以为任意字符串
name(可写可不写)指定YUM源名称,可以为任意字符串
baseurl指定YUM源的URL地址(可以是HTTP://、 FTP://或本地路径(file://))
mirrorlist指定镜像站点⽬录
enabled是否激活该YUM源(0代表禁⽤、 1代表激活、默认为激活)
gpgcheck安装软件时是否检测签名(0代表禁⽤、 1代表激活)
gpgkey检测签名的密钥⽂件

创建本地yum源:
1)在创建yum源之前切换到/etc/yum.repos.d/目录下,将之前下载的CentOS-Base.repo安装源改个名称让它失效(如果没有下载外网安装源的朋友本步骤可以忽略)
软件管理 之 rpm 和 yum 安装软件_rpm_04
2)然后用vim编辑一个本地安装源
[appstream] #源标识
baseurl=file:///mnt/AppStream/ #ISO镜像挂载⽬录
gpgcheck=0 指定是否需要查阅rpm⽂件内的数字签名,1为检查,0为不检查

[BaseOS]
baseurl=file:///mnt/BaseOS/
gpgcheck=0
实际操作过程如下:
软件管理 之 rpm 和 yum 安装软件_rpm_05
3)rhel8中, yum是dnf的⼀个软连接,所以yum和dnf都可以使⽤
[root@localhost yum.repos.d]# dnf -y install 软件包名
[root@localhost yum.repos.d]# dnf -y remove 软件包名
[root@localhost yum.repos.d]# dnf -y update 软件包名

2、 YUM命令

描述:交互式,基于RPM的包管理⼯具
语法: yum [选项] [指令] [软件包]
选项:
-y 执⾏⾮交互安装,假定安装过程中出现的所有提示回答为yes
指令:
install: 使⽤yum源安装软件包
update: 使⽤yum源升级软件包
makecache: 建⽴yum缓存信息
check-update: 检查yum源中所有可⽤的升级
remove: 卸载软件包
list: 有可⽤的软件包
info: 查看软件包信息
clean all: 清空所有的缓存信息
groupinstall: 使⽤yum源安装组包
grouplist: 列出系统中已经安装的以及yum源中所有可⽤的组包
groupremove: 卸载组包search 根据关键词查找软件
localinstall: 通过本地rpm⽂件安装软件
history: 查看历史记录
provides: 查看命令的源包名