# 官方提供@yunTaoScripts 网包管理软件络管理 🔥🔥

loading

# RPM (Redhat Package Management)

包命名方式

mount /dev/cdrom /mnt/
find /mnt/ -name vsftp* 
cp /mnt/AppStream/Packages/vsftpd-3.0.3-33.el8x86_64.rpm .
  • vsftpd是包的名字
  • 3.0.3 是版本version
  • 28.el8 是小版本号,release,其中el8指的是此包用于安装 rhel8系统上
  • x86_64 指的是架构,到底是32位的还是64位的

# 包安装

rpm -ivh vsftpd-3.0.3-33.el8.x86_64.rpm
rpm -ivh vsftpd-3.0.3-33.el8.x86_64.rpm --force
  • -i 安装
  • -v 显示安装信息
  • -h 校验
  • --force #已经安装了,但是某个文件丢失了,可以强制安装

# 包卸载

rpm -e vsftpd

# 包更新

  • 卸载旧版本,安装新版本
rpm -Uvh vsftpd-3.0.3-33.el8.x86_64.rpm

是否使用U分情况

  • 普通软件如果安装目录重叠,可使用 U
  • 内核软件可以多内核共存,可以直接安装不用U,确认升级成功后再删除旧的包。

# 包查询

rpm -qa # 查看已安装的所有包

rpm2cpio vsftpd-3.0.3-33.el8.x86_64.rpm |cpio -id #解压缩包
rpm -ql vsftpd #查看包生成所有的文件
rpm -qc vsftpd #查看包生成配置文件
rpm -qd vsftpd #查看包生成文档文件
rpm -qi vsftpd #查看已安装包信息
rpm -qip vsftpd-3.0.3-33.el8.x86_64.rpm #查看未安装包信息
rpm -qf /etc/vsftpd/ftpusers  #查询文件由哪个包生成

查询软件安装包名

rpm -qf `which ifconfig`

# 包验证

rpm -V vsftpd  # 无输出代表没有被改过 (针对已安装的包)
rpm -K vsftpd-3.0.3-33.el8.x86_64.rpm # 验证包数字签名

验证说明

  • 有输出代表被修改
[root@server1 opt]# rpm -V vsftpd 
S.5....T.  c /etc/vsftpd/vsftpd.conf
  • 无公钥验证失败
[root@server1 opt]# rpm -qa | grep pubkey
[root@server1 opt]# rpm -K vsftpd-3.0.3-33.el8.x86_64.rpm 
vsftpd-3.0.3-33.el8.x86_64.rpm: digests SIGNATURES NOT OK

  • 导入红帽公钥,验证成功
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
# rpm --import /mnt/RPM-GPG-KEY-redhat-release
[root@server1 opt]# rpm --import /mnt/RPM-GPG-KEY-redhat-release 
[root@server1 opt]# rpm -qa | grep pubkey
gpg-pubkey-fd431d51-4ae0493b
gpg-pubkey-d4082792-5b32db75
[root@server1 opt]# rpm -K vsftpd-3.0.3-33.el8.x86_64.rpm 
vsftpd-3.0.3-33.el8.x86_64.rpm: digests signatures OK

# YUM

  • dnf 的软连接,可以实现多包依赖的安装。

# 创建yum源

  • 在server1修改/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
mount /dev/cdrom /var/ftp/pub/
vim /etc/vsftpd/vsftpd.conf 
systemctl restart vsftpd.service 
  • 在server2 配置 yum源
[root@server2 ~]# cat /etc/yum.repos.d/iso.repo 
#[localAppStream]
#name=AppStream
#baseurl=file:///mnt/AppStream/
#enabled=1
#gpgcheck=0
#
#[localBaseOS]
#name=BaseOS
#baseurl=file:///mnt/BaseOS
#enabled=1
#gpgcheck=0

[ftpAppStream]
name=AppStream
baseurl=ftp://192.168.26.129/pub/AppStream
enabled=1
gpgcheck=1
gpgkey=ftp://192.168.26.129/pub/RPM-GPG-KEY-redhat-release

[ftpBaseOS]
name=BaseOS
baseurl=ftp://192.168.26.129/pub/BaseOS
enabled=1
gpgcheck=0

注意FTP 路径⚠️

  • yum list 查看yum源的安装包
  • ftp发布目录为/var/ftp,baseurl要写紧跟后面的目录,不要带/var/ftp
  • 配置目录必须包含repodata,它包含rpm包依赖关系。

# 自定义仓库

yum install createrepo_c.x86_64 -y
createrepo -v ansible

提示

在 ansible 目录中就会增加 repodata 目录。此时 该目录就可以作为yum源使用

# 第三方免费源-epel

# 安装包

  • 缓存目录 rpm -qc dnf
/var/cache/dnf
  • 只下载不安装,指定下载目录
yum install -y httpd --downloadonly --downloaddir=./data

# 安装组

  • 查看和安装可用组
yum grouplist
LANG=en_US.UTF-8 grouplist # 英文查看
LANG=C grouplist # 英文查看
yum groupinstall 'System Tools' -y # 安装组
yum groupremove 'System Tools' -y # 安装组

# 撤销安装

yum history
yum history undo 3 #撤销第三步

# 安装模块

[root@server2 ~]# yum module list |head
Last metadata expiration check: 1:59:17 ago on Thu 28 Jul 2022 09:24:36 AM CST.
AppStream
Name                 Stream          Profiles       Summary                                                                                                                                                                                      
389-ds               1.4                            389 Directory Server (base)                                                                                                                                                               
ant                  1.10 [d]        common [d]     Java build tool                                                                                                                                                                                                                    

对于一个模块来说由三部分组成:

  • name:模块的名字
  • stream:模块的所包含的版本 (带【d】就是默认安装版本)
  • profile:是最小安装、普通安装还是安装服务器端 还是客户端等
  • 查看某个包模块
[root@server2 ~]# yum module list php
Last metadata expiration check: 2:38:35 ago on Thu 28 Jul 2022 09:24:36 AM CST.
AppStream
Name                   Stream                    Profiles                                     Summary                                 
php                    7.2 [d]                   common [d], devel, minimal                   PHP scripting language                  
php                    7.3                       common [d], devel, minimal                   PHP scripting language                  
php                    7.4                       common [d], devel, minimal                   PHP scripting language                  

默认值

默认安装【d】,即php:7.2/common

  • 安装指定版本
yum module install php:7.3/devel -y
  • 删除模块
yum module remove php:7.3/devel -y
yum module reset php:7.3   # 重置下, 否则【e】仍会显示

# 删除包

yum remove vsftpd -y

# 更新包

  • 更新系统所有包
yum update
  • 只更新特定包
yum update vsftpd -y

# 查找包

yum list vsftpd  # 完整匹配
yum search vsftp # 不完整匹配
yum list docker-ce.x86_64 --showduplicates | sort -r # 查找包版本
  • 查找命令所需要的安装包
[root@server2 ~]# yum whatprovides vsftpd
Last metadata expiration check: 0:10:24 ago on Thu 28 Jul 2022 09:24:36 AM CST.
vsftpd-3.0.3-33.el8.x86_64 : Very Secure Ftp Daemon
Repo        : ftpAppStream
Matched from:
Provide    : vsftpd = 3.0.3-33.el8
最后修改时间: 12/31/2022, 12:00:03 PM