如何在linux中使用rpm管理软件

本章主要介绍使用rpm对软件包进行管理。
  • 使用rpm查询软件的信息
  • 使用rpm安装及卸载软件
  • 使用rpm对软件进行更新
  • 使用rpm对软件进行验证
rpm 全称是redhat package manager,后来改成rpm package manager,这是根据源
码包编译出来的包。先从光盘中拷贝一个包,并看它是如何命名的。
先挂载光盘,然后拷贝 vsftpd这个包,命令如下。
[root@pp ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@pp ~]# cp /mnt/AppStream/Packages/vsftpd-3.0.3-34.el8.x86_64.rpm .
[root@pp ~]# ls vsftpd-3.0.3-34.el8.x86_64.rpm 
vsftpd-3.0.3-34.el8.x86_64.rpm
[root@pp ~]# 
这里字段的含义如下。
(1)vsftpd:包的名称。
(2)3.0.3:版本,即 version。
(3)33.el8:小版本号,即release,其中el8 指的是此包适用于RHEL8系统。
(4) x86_64:指的是架构,到底是32位还是64位的包,x86_64表示是64位的。rpm的安
装命令是“rpm -ivh 安装包”。安装rpm,命令如下。
[root@pp ~]# rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-34.el8              ################################# [100%]
[root@pp ~]# 
这样就把vsftpd-3.0.3-33.el8.x86_64.rpm 安装好了。如果是第一次接触 Linux 会感觉到
奇怪,怎么不像 Windows一样让我们通过浏览来指定路径,那么这个包安装到哪里了呢?
相信大家在Windows中都安装过 Chrome浏览器,基本上是秒安装,也没有指定路径,因
为这个安装包中已经定义好安装路径了。同理,rpm 安装时也已经指定了安装路径,把这个 rpm打开,先拷贝到/opt目录中,命令如下。
[root@pp ~]# cp vsftpd-3.0.3-34.el8.x86_64.rpm /opt/
[root@pp ~]# cd /opt/
[root@pp opt]# ls
vsftpd-3.0.3-34.el8.x86_64.rpm
[root@pp opt]# 
解压此包,命令如下。
[root@pp opt]# rpm2cpio vsftpd-3.0.3-34.el8.x86_64.rpm | cpio -id
714 块
[root@pp opt]# ls
etc   usr  var  vsftpd-3.0.3-34.el8.x86_64.rpm
[root@pp opt]# 
可以看到,生成了3个目录etc、usr、var,看一下它们的结构
[root@pp opt]# tree
.
├── etc
│   ├── logrotate.d
│   │   └── vsftpd
│   ├── pam.d
│   │   └── vsftpd
│   └── vsftpd
│       ├── ftpusers
│       ├── user_list
│       ├── vsftpd.conf
│       └── vsftpd_conf_migrate.sh
├── sc1.sh
├── sc3.sh
├── sc4.sh
├── usr
│   ├── lib
│   │   └── systemd
│   │       ├── system
│   │       │   ├── vsftpd.service
│   │       │   ├── vsftpd@.service
│   │       │   └── vsftpd.target
│   │       └── system-generators
│   │           └── vsftpd-generator
│   ├── sbin
│   │   └── vsftpd
│   └── share
│       ├── doc
│       │   └── vsftpd
│       │       ├── AUDIT
│       │       ├── BENCHMARKS
│       │       ├── BUGS
│       │       ├── Changelog
│       │       ├── COPYING
│       │       ├── EXAMPLE
│       │       │   ├── INTERNET_SITE
│       │       │   │   ├── README
│       │       │   │   ├── vsftpd.conf
│       │       │   │   └── vsftpd.xinetd
│       │       │   ├── INTERNET_SITE_NOINETD
│       │       │   │   ├── README
│       │       │   │   └── vsftpd.conf
│       │       │   ├── PER_IP_CONFIG
│       │       │   │   ├── hosts.allow
│       │       │   │   └── README
│       │       │   ├── README
│       │       │   ├── VIRTUAL_HOSTS
│       │       │   │   └── README
│       │       │   ├── VIRTUAL_USERS
│       │       │   │   ├── logins.txt
│       │       │   │   ├── README
│       │       │   │   ├── vsftpd.conf
│       │       │   │   └── vsftpd.pam
│       │       │   └── VIRTUAL_USERS_2
│       │       │       └── README
│       │       ├── FAQ
│       │       ├── INSTALL
│       │       ├── LICENSE
│       │       ├── README
│       │       ├── README.security
│       │       ├── REWARD
│       │       ├── SECURITY
│       │       │   ├── DESIGN
│       │       │   ├── IMPLEMENTATION
│       │       │   ├── OVERVIEW
│       │       │   └── TRUST
│       │       ├── SIZE
│       │       ├── SPEED
│       │       ├── TODO
│       │       ├── TUNING
│       │       └── vsftpd.xinetd
│       └── man
│           ├── man5
│           │   └── vsftpd.conf.5.gz
│           └── man8
│               └── vsftpd.8.gz
├── var
│   └── ftp
│       └── pub
└── vsftpd-3.0.3-34.el8.x86_64.rpm27 directories, 51 files
[root@pp opt]# 
可以看到,当我们安装rpm包时,它就会把包中的内容按照这个结构拷贝到系统,所以安
装的路径都是安排好了的。
23.1 rpm查询
如果要查询已经安装过的软件包的信息, rpm的第一个选项需要使用-q,表示查询的意
思。查询系统安装的所有软件包用 rpm-qa命令,命令如下。
[root@pp ~]# rpm -qa
查询系统是否安装了某个软件包用“rpm -qa 包名”命令。例如,要查询是否安装了
vsftpd,命令如下。
[root@pp ~]# rpm -qa vsftpd
vsftpd-3.0.3-34.el8.x86_64
[root@pp ~]# 
但是这种用法,在写包名时多一个或少一个字符都查询不出来
所以,更建议用管道和grep进行过滤,如下所示。
[root@pp ~]# rpm -qa | grep vsftp
vsftpd-3.0.3-34.el8.x86_64
[root@pp ~]# 
23.2 rpm安装及卸载
前面已经介绍了用“rpm -ivh 安装包”命令安装软件,且 vsftpd已经安装完成,如下所 示。
卸载软件包的命令是“rpm -e 软件包”,现在要把vsftpd卸载掉,命令如下。
[root@pp ~]# rpm -e vsftpd
[root@pp ~]# rpm -qa | grep vsftp
[root@pp ~]# 
可以看到,现在vsftpd已经不存在了,再次把这个包安装上去。
[root@pp ~]# rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-34.el8              ################################# [100%]
[root@pp ~]# 
安装包已经安装过了,无法再次安装。此时加上--force选项强制安装即可。
一般情况下,用于某个文件丢失了,想通过强制重新安装来找回此文件,命令如下。
[root@pp ~]# rm -rf /etc/vsftpd/vsftpd.conf 
[root@pp ~]# ls /etc/vsftpd/
ftpusers  user_list  vsftpd_conf_migrate.sh
[root@pp ~]# rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm --force
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-34.el8              ################################# [100%]
[root@pp ~]# 
然后再次查看文件。
[root@pp ~]# ls /etc/vsftpd/
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@pp ~]# 

23.3 软件包的更新
所谓更新,就是卸载旧版本的软件包,然后安装新版本的软件包。假设原来系统已经安装
了1.0版本的软件包,现在要安装2.0版本的软件包,如果两个版本的包安装路径不一样,则
可以共存;如果两个版本的包安装路径一样,则会产生冲突。 先卸载已经安装了的vsftpd,命令如下。
[root@pp ~]# rpm -e vsftpd 
[root@pp ~]# 
然后从RHEL8.0的系统上烤贝一个版本稍低的 vsftpd的安装包,命令如下。
[root@pp ~]# ls
公共  视频  文档  音乐  anaconda-ks.cfg       vsftpd-3.0.3-28.el8.x86_64.rpm  xx
模板  图片  下载  桌面  initial-setup-ks.cfg  vsftpd-3.0.3-34.el8.x86_64.rpm  yy
上面ls后面的选项是数字1,不是字母l,这里一个版本稍低,一个版本稍高。先把低版本
的包安装上去,命令如下。
[root@pp ~]# rpm -ivh vsftpd-3.0.3-28.el8.x86_64.rpm 
警告:vsftpd-3.0.3-28.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-28.el8              ################################# [100%]
[root@pp ~]# 
这里已经安装了一个3.0.3-31的包,然后安装一个更高版本的3.0.3-33包,命令如下。
[root@pp ~]# rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]file /etc/vsftpd/vsftpd.conf from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/lib/systemd/system/vsftpd.service from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/lib/systemd/system/vsftpd.target from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/lib/systemd/system/vsftpd@.service from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/sbin/vsftpd from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/share/man/man5/vsftpd.conf.5.gz from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64
[root@pp ~]# 
因为安装路径一样,所以这里提醒产生了冲突导致没有安装成功。如果用更新的方法来安
装是可以的,更新的用法是“rpm -Uvh安装包”。下面更新vsftpd,命令如下。
[root@pp ~]# rpm -Uvh vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-34.el8              ################################# [ 50%]
正在清理/删除...2:vsftpd-3.0.3-28.el8              ################################# [100%]
[root@pp ~]# 
[root@pp ~]# rpm -qa | grep vsftpd
vsftpd-3.0.3-34.el8.x86_64
[root@pp ~]# 
可以看到,这里安装的是3.0.3-33版本的包。
可以看到,这里安装的是3.0.3-33版本的包。
对于内核来说,不同版本的安装路径是不一样的,所以可以同时安装多个版本的不会产
生冲突。因此,更新内核时建议使用rpm -ivh命令而不是rpm -Uvh命令。因为rpm -Uvh命
令会卸载旧版本的内核,如果新版本的内核有问题就无法正常进入系统了。如果使用rpm -ivh
命令,包括旧版本的内核同时存在,先用新版本的内核引导系统,如果没问题再卸载旧版本
的内核也不迟,如果有问题还可以使用旧版本的内核引导系统。
23.4 rpm验证
当我们安装了一个软件包之后会产生许多文件,要是想判断这些文件是否被修改过,可以
用rpm -V(大写字母V)命令,例如,我们刚刚安装了vsftpd,并没有修改任何配置文件。
[root@pp ~]# rpm -V vsftpd 
[root@pp ~]# 
没有任何输出,说明此vsftpd所生成的文件没有被修改。现在用vim 编辑器修改一
下/etc/vsfipd/vsftpd.conf,随便增添删减一些内容(最好是修改注释后面的内容,否则影
响vsftpd启动),然后再次判断,命令如下。
[root@pp ~]# rpm -V vsftpd 
S.5....T.  c /etc/vsftpd/vsftpd.conf
[root@pp ~]# 
再次检查可以看到/etc/vsftpd/vsftpd.conf被修改过。 S指的是大小。
5指的是md5值。
T指的是时间。
c指的是此文件是vsftpd 的配置文件。
这样就可以看到哪些文件被修改过了。只修改时间,命令如下。
[root@pp ~]# touch /etc/vsftpd/ftpusers 
[root@pp ~]# rpm -V vsftpd 
.......T.  c /etc/vsftpd/ftpusers
S.5....T.  c /etc/vsftpd/vsftpd.conf
[root@pp ~]# 
可以看到,/etc/vsftpd/ftpusers的时间发生了改变。
红帽发行的每一个数据包都对它做了数据签名,以证明这个包是红帽官方的。需要在本机
用红帽的公钥来进行验证。首先验证机器上是否安装了红帽的公钥,命令如下。
[root@pp ~]# rpm -qa | grep pubkey
[root@pp ~]# 
没有任何输出,说明没有导人红帽的公钥。使用如下命令导入公钥
或者导入存储在光盘中的公钥。
[root@pp ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@pp ~]# rpm --import /mnt/RPM-GPG-KEY-redhat-release 
[root@pp ~]# 
再次检查公钥的信息,命令如下。
[root@pp ~]# rpm -qa | grep pubkey
gpg-pubkey-d4082792-5b32db75
gpg-pubkey-fd431d51-4ae0493b
[root@pp ~]# 
可以看到,已经成功导入了。下面验证如下两个vsftpd包,命令如下。
[root@pp ~]# rpm -K vsftpd-3.0.3-34.el8.x86_64.rpm 
vsftpd-3.0.3-34.el8.x86_64.rpm: digests signatures 确定
[root@pp ~]# 
这个包是一开始从光盘中拷贝过来的,可以看到验证通过。
[root@pp ~]# rpm -K vsftpd-3.0.3-28.el8.x86_64.rpm 
vsftpd-3.0.3-28.el8.x86_64.rpm: digests signatures 确定
[root@pp ~]# 
这个包也是从光盘中拷贝过来的,只是其他版本的光盘,所以可以看到也是验证通过的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[算法每日一练]-双指针 (保姆级教程篇 1) #A-B数对 #求和 #元音字母 #最短连续子数组 #无重复字符的最长子串 #最小子串覆盖 #方块桶

目录 A-B数对 解法一:双指针 解法二:STL二分查找 解法三:map 求和 元音字母 最短连续子数组 无重复字符的最长子串 最小子串覆盖 方块桶 双指针特点:双指针绝不回头 A-B数对 解法一:双指针 先把数列排列成…

《C++新经典设计模式》之第8章 外观模式

《C新经典设计模式》之第8章 外观模式 外观模式.cpp 外观模式.cpp #include <iostream> #include <memory> using namespace std;// 中间层角色&#xff0c;隔离接口&#xff0c;两部分模块通过中间层打交道 // 提供简单接口&#xff0c;不与底层直接打交道 // 提…

Grounding DINO、TAG2TEXT、RAM、RAM++论文解读

提示&#xff1a;Grounding DINO、TAG2TEXT、RAM、RAM论文解读 文章目录 前言一、Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection1、摘要2、背景3、部分文献翻译4、贡献5、模型结构解读a.模型整体结构b.特征增强结构c.解码结构 6、实…

使用Sourcetrail解析C项目

阅读源码的工具很多&#xff0c;今天给大家推荐一款别具一格的源码阅读神器。 它就是 Sourcetrail&#xff0c;一个免费开源、跨平台的可视化源码探索项目 使用

释放深度学习的力量:使用 CUDA 和 Turing GPU 构建 AI

深度学习是一种人工智能的分支,它使用神经网络模拟人类大脑的学习过程,从大量的数据中学习特征和规律。深度学习已经彻底改变了无数领域,从图像和语音识别到自然语言处理和自动驾驶汽车。但是,要充分利用深度学习的强大功能,需要强大的工具,而 NVIDIA 的 Turing GPU 就是…

Faster R-CNN pytorch源码血细胞检测实战(二)数据增强

Faster R-CNN pytorch源码血细胞检测实战&#xff08;二&#xff09;数据增强 文章目录 Faster R-CNN pytorch源码血细胞检测实战&#xff08;二&#xff09;数据增强1. 资源&参考2. 数据增强2.1 代码运行2.2 文件存放 3 数据集划分4. 训练&测试5. 总结 1. 资源&参…

静态SOCKS5的未来发展趋势和新兴应用场景

随着网络技术的不断发展和进步&#xff0c;静态SOCKS5代理也在不断地完善和发展。未来&#xff0c;静态SOCKS5代理将会呈现以下发展趋势和新兴应用场景。 一、发展趋势 安全性更高&#xff1a;随着网络安全问题的日益突出&#xff0c;用户对代理服务器的安全性要求也越来越高…

AcWing 3425:小白鼠排队 ← 北京大学考研机试题

【题目来源】https://www.acwing.com/problem/content/3428/【题目描述】 N 只小白鼠&#xff0c;每只鼠头上戴着一顶有颜色的帽子。 现在称出每只白鼠的重量&#xff0c;要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。 帽子的颜色用 red&#xff0c;blue 等字符串来…

c#下载微信跟支付宝交易账单

下载微信交易账单 //账单日期只能下载前一天的string datetime DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");string body "";string URL "/v3/bill/fundflowbill" "?bill_date" datetime;//生成签名认证var auth BuildAu…

nodejs 异步函数加 await 和不加 await 的区别

在 nodejs 中&#xff0c;异步函数加上 await 和不加 await 的区别在于函数的返回值。 当一个异步函数加上 await 时&#xff0c;它会暂停当前函数的执行&#xff0c;直到异步操作完成并返回结果。这意味着可以直接使用异步操作的结果&#xff0c;而不需要使用 .then() 方法或…

什么是私有云和私有云计算?

私有云也被称为本地云架构&#xff0c;部署在企业的内部数据中心。如今&#xff0c;越来越多的提供商提供自己的私有云服务&#xff0c;以增强甚至取代企业自己的私有云环境。 美国国家标准与技术研究所 (NIST) 对私有云的定义是&#xff1a;“云基础架构为单一组织置备并为其…

【华为鸿蒙系统学习】- HarmonyOS4.0开发|自学篇

​ &#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 HarmonyOS 4.0 技术介绍&#xff1a; HarmonyOS三大特征&#xff1a; 1.实现硬件互助&#…

Appium 并行测试多个设备

一、前置说明 在自动化测试中&#xff0c;经常需要验证多台设备的兼容性&#xff0c;Appium可以用同一套测试运例并行测试多个设备&#xff0c;以达到验证兼容性的目的。 解决思路&#xff1a; 查找已连接的所有设备&#xff1b;为每台设备启动相应的Appium Server&#xff1b…

docker的资源控制:

docker的资源控制&#xff1a; 对容器的使用宿主机的资源进行限制 cpu 内存 磁盘i/0 docker使用linux自带的功能cgroup control grouos是linux内核系统提供的一种可以限制&#xff0c;记录&#xff0c;隔离进程所使用的物理资源 control grouos是linux内核系统提供的一种可…

CSP-202309-2 坐标变换(其二)(模拟,c++,vector建二叉树)

计算机软件能力认证考试系统 问题描述 试题编号&#xff1a;202309-3试题名称&#xff1a;梯度求解时间限制&#xff1a;1.0s内存限制&#xff1a;512.0MB问题描述&#xff1a; 背景 西西艾弗岛运营公司近期在大力推广智能化市政管理系统。这套系统是由西西艾弗岛信息中心研发…

DAPP开发【11】IPFS星际文件管理系统【简介,实践看12】

IPFS&#xff08;InterPlanetary File System&#xff09;是一个点对点的分布式文件系统&#xff0c;旨在创建一个更快速、更安全和更开放的 Web。它不同于传统的 HTTP 协议&#xff0c;因为它不需要使用一个固定的地址来访问文件&#xff0c;而是通过一个基于内容寻址的系统&a…

HeartBeat监控Mysql状态

目录 一、概述 二、 安装部署 三、配置 四、启动服务 五、查看数据 一、概述 使用heartbeat可以实现在kibana界面对 Mysql 服务存活状态进行观察&#xff0c;如有必要&#xff0c;也可在服务宕机后立即向相关人员发送邮件通知 二、 安装部署 参照章节&#xff1a;监控组件…

S32K324 UDS Bootloader开发-下位机篇-App软件开发

文章目录 前言ld文件修改增加编译文件CAN发送与接收发送接收函数调用UDS协议增加校验算法Hex文件合并总结前言 本文参考NXP官网的S32K3 Bootloader,移植实现UDS刷写功能。本文是APP软件的修改 本文参考NXP官网的S32K324 UBL,其中有一些Bug,也有一些和上位机不兼容的地方,在本…

每日一博 - 图解5种Cache策略

文章目录 概述读策略Cache AsideRead Through 写策略Write ThroughWrite AroundWrite Back 使用场景举例 概述 缓存是在系统中存储数据的临时存储器&#xff0c;用于提高访问速度。缓存策略定义了如何在缓存和主存之间管理数据 读策略 Read data from the system: &#x1f5…

vue3原生方法滚动列表

效果图 代码 import { ref, onBeforeUnmount, onUnmounted } from "vue"; //定时器初始化 let timer ref(null); //ref绑定初始化 let roll ref(null); //等同于vue2中的beforeDestroy onBeforeUnmount(() > {//清除定时器clearTimeout(timer.value); }); //等同…