Redhat Linux RPM包安装软件及其管理

2024-05-07 10:18

本文主要是介绍Redhat Linux RPM包安装软件及其管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是RPM

RPM的全称是:RedHat Package Manager     //红帽包管理工具

如果Linux发行版本是redhat 、redflag 、centos 、fedora 、suse等或者衍生的版本,那么使用rpm进行软件管理最适合了。通过rpm可以来对软件进行安装、升级、查询、验证及卸载等。被rpm管理的软件包称之为“rpm包”,对于该软件包的文件名包含了很多有用信息,通常包含了软件包的名称、版本信息、操作系统信息、适应的硬件架构等等,比如:httpd-2.2.3-22.el5.i386.rpm 2.2.3 是软件的版本号,22是发行号,i386表示用于Intel x86平台

安装RPM包

rpm命令使用-i(表示安装)-v(显示安装过程)-h(使用#显示进度条)组合一起使用,比如说安装httpd-2.2.3-22.el5.i386.rpm该文件包:

# rpm -ivh httpd-2.2.3-22.el5.i386.rpm
warning: httpd-2.2.3-22.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:httpd                  ########################################### [100%]
//可以看到该软件包安装成功,并且使用#显示安装过程

--force选项与强制安装

当安装软件包的时候,系统提示软件包已经安装,无法安装同版本软件的时候,有2种解决办法:一是先卸载软件包,然后重新安装;而是使用--force选项强制安装。如果某个已经安装的软件出现文件丢失或者损坏的情况,使用--force安装最好不过了。

现在依旧采用上面的方法重新安装一遍httpd-2.2.3-22.el5.i386.rpm

# rpm -ivh httpd-2.2.3-22.el5.i386.rpm
warning: httpd-2.2.3-22.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
        package httpd-2.2.3-22.el5.i386 is already installed
//系统提示说该软件包已经安装了

下面采用--force选项的方法强制安装:

# rpm -ivh httpd-2.2.3-22.el5.i386.rpm --force
warning: httpd-2.2.3-22.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:httpd                  ########################################### [100%]

--nodeps选项与依赖性

上面的方法使用--force可以强制覆盖安装,但是当软件包出现依赖关系的时候,--force也解决不了问题。rpm最大的不足就是包之间的依赖关系,比如要安装A包,提示说要先安装B包,找到B包安装又提示要先安装其他包。所以当实在无法解决依赖性的问题又必须安装软件包的时候,可以使用--nodeps加以解决,比如安装devhelp-devel-0.12-20.el5.i386.rpm

# rpm -ivh devhelp-devel-0.12-20.el5.i386.rpm
warning: devhelp-devel-0.12-20.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
        devhelp = 0.12 is needed by devhelp-devel-0.12-20.el5.i386
        gnome-vfs2-devel >= 2.2.0 is needed by devhelp-devel-0.12-20.el5.i386
        gtk2-devel >= 2.2.0 is needed by devhelp-devel-0.12-20.el5.i386
        libdevhelp-1.so.0 is needed by devhelp-devel-0.12-20.el5.i386
        libgnomeui-devel >= 2.2.0 is needed by devhelp-devel-0.12-20.el5.i386
        libwnck-devel >= 2.10.0 is needed by devhelp-devel-0.12-20.el5.i386

发现依赖包这么多,使用--nodeps忽略依赖包直接安装

# rpm -ivh devhelp-devel-0.12-20.el5.i386.rpm --nodeps
warning: devhelp-devel-0.12-20.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:devhelp-devel          ########################################### [100%]

安装好了,当实际上该软件包的依赖没解决是无法正常使用的,所以最好把依赖关系解决

批量安装或升级软件包

使用通配符*就可以进行批量的安装软件包,如安装telnet开头的软件包

# rpm -ivh telnet-* --force
warning: telnet-0.17-39.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:telnet-server          ########################################### [ 50%]
   2:telnet                 ########################################### [100%]

对于升级软件包则使用-U选项,表示有比已安装的软件包更高版本就升级安装,如果系统本没有这些软件包则安装之,若版本相同则不做处理
 
查询rpm软件包

rpm -qa 命令用于查询系统中已安装的软件包

# rpm -qa //这么查询列出的软件包很多

如果要具体查询某个软件包可以使用grep,比如查询是否安装了LinuxQQ:

# rpm -qa |grep linuxqq
linuxqq-v1.0.2-beta1    //可以看到已经安装了测试版QQ

查询软件的相关信息,使用-i选项

# rpm -qi linuxqq
Name        : linuxqq                      Relocations: (not relocatable)
Version     : v1.0.2                            Vendor: Tencent Inc.
Release     : beta1                         Build Date: 2009年01月05日 星期一 01时31分44秒
Install Date: 2010年09月29日 星期三 05时16分12秒      Build Host: localhost.localdomain
Group       : Internet                      Source RPM: linuxqq-v1.0.2-beta1.src.rpm
Size        : 6346491                          License: Commercial
Signature   : (none)
Packager    : @Home
Summary     : QQ for Linux v1.0.2 Beta1
Description :
QQ - The most popular free instant messaging program in China.
* Chat with more than 590,000,000 people all over the world.
* Free to download or distribute absolutely.

查询软件文件的安装位置,使用-l选项

# rpm -ql linuxqq
/usr
/usr/bin
/usr/bin/qq
/usr/share
/usr/share/applications
/usr/share/applications/qq.desktop
/usr/share/tencent
/usr/share/tencent/qq
/usr/share/tencent/qq/qq
/usr/share/tencent/qq/qq.png
/usr/share/tencent/qq/res.db

查询文件归属,使用-f选项

在rpm -qf 后面跟要查询的文件名,可以查询该文件属于哪个软件包。所以当某个文件丢失或者损坏的时候。就可以查询所属软件包,然后重新安装,即可恢复。

# rpm -qf /usr/share/tencent    //假如此文件损坏了
linuxqq-v1.0.2-beta1        //可以查询出所属的软件包是Linuxqq

验证rpm软件包的完整性

rpm命令可以使用-V选项对系统中已经安装的软件包进行验证,比如系统发生安全故障,对软件包进行验证是必不可少的事情,比如:

# mv /usr/share/tencent/qq/qq /usr/share/tencent/qq/qq.backup        //把/usr/share/tencent/qq/qq重命名成备份文件
# rpm -V linuxqq    //查询该文件包完整性
missing     /usr/share/tencent/qq/qq    //显示丢失了/usr/share/tencent/qq/qq
# mv /usr/share/tencent/qq/qq.backup /usr/share/tencent/qq/qq//恢复
# rpm -V linuxqq   //查询该文件包完整性,无显示丢失文件

卸载软件包

使用-e选项来卸载软件包,rpm -e 软件名 (软件名可以包含版本信息,但不可以有rpm后缀)

# rpm -e linuxqq
# rpm -ql linuxqq
package linuxqq is not installed     //卸载Linuxqq成功

如果卸载软件包的时候遇到依赖关系的时候也可以使用--nodeps忽略依赖关系卸载

管理rpm源码包

对于一些软件包是以.src.rpm为扩展名的,这类软件包就是包含了源代码的rpm包,在安装的时候需要进行编译,步骤如下:

执行rpm -i liusuping.src.rpm (假设软件包名为liusuping) 

 cd /usr/src/redhat/SPECS/     //切换到该目录

rpmbuild -bb liusuping.specs 或者 rpmbuild -bp liusuping.specs

如果是如上的第一条命令,在/usr/src/redhat/RPMS/noarch/目录下生成一个新的rpm包,直接使用rpm -ivh xx.rpm 进行安装搞定;(推荐这种)

如果是如上的第二条命令,在/usr/src/redhat/BUILD/software/目录下生成此软件包的源码包,可能通过脚本安装或编译源代码安装。



来源:http://www.liusuping.com/ubuntu-linux/RedhatLinuxRPM%E5%8C%85.html

参考:http://blog.csdn.net/zolalad/article/details/11368879

这篇关于Redhat Linux RPM包安装软件及其管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967069

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装