linux(三十九)linux软件包管理RPM

简介: linux(三十九)linux软件包管理RPM

rpm软件包是Linux的各个发行版本中应用最为广泛的软件包格式之一,成为众多Linux发行版公认的软件包管理标准,最早由Red Hat这家公司开发。

 

RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。


前文中介绍的yum源其实就是rpm的一个升级版,rpm在安装软件的时候,如果缺少依赖,软件安装会失败,而yum源安装会自动安装这个软件需要的所有依赖。因此,我们常用的就是yum而非rpm安装。

 

1:下载rpm包


(1):安装 yum-utils

yum install yum-utils -y

 

(2):查看yum-utils包里的命令

rpm -ql yum-utils
rpm -ql yum-utils |grep yumdownloader

(3):使用yumdownloader下载

yumdownloader --resolve <软件名称>

 

2:安装rpm包


-i : install 安装的意思


-v : 查看更详细的安装信息


-h: 显示安装进度,在安装升级的过程中,以“#”显示安装进度


–force: 强制安装某个软件包,可以用于替换已安装版本或安装旧版本


–nodeps: 安装、升级过程中,不检查与其他软件包的依赖关系


安装这个:

1702533510901.png

cd /opt/download/
rpm -ivh firefox-91.13.0-1.el7.centos.x86_64.rpm

执行报错:

[root@VM_0_4_centos download]# rpm -ivh firefox-91.13.0-1.el7.centos.x86_64.rpm
error: Failed dependencies:
       liberation-fonts-common is needed by firefox-91.13.0-1.el7.centos.x86_64
       liberation-sans-fonts is needed by firefox-91.13.0-1.el7.centos.x86_64
       mozilla-filesystem is needed by firefox-91.13.0-1.el7.centos.x86_64
       nspr >= 4.32 is needed by firefox-91.13.0-1.el7.centos.x86_64
       nss >= 3.67 is needed by firefox-91.13.0-1.el7.centos.x86_64
       libatk-1.0.so.0()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libcairo-gobject.so.2()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libcairo.so.2()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libgdk-3.so.0()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libgdk_pixbuf-2.0.so.0()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libgtk-3.so.0()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libnss3.so(NSS_3.55)(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libnss3.so(NSS_3.58)(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libpango-1.0.so.0()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libpangocairo-1.0.so.0()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libpangoft2-1.0.so.0()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libXcomposite.so.1()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libXcursor.so.1()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libXdamage.so.1()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libXext.so.6()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libXfixes.so.3()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libXi.so.6()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64
       libXt.so.6()(64bit) is needed by firefox-91.13.0-1.el7.centos.x86_64

这里要是还想继续安装的话,就需要用到我们上边介绍的强制安装的参数了:

rpm -ivh --force --nodeps firefox-91.13.0-1.el7.centos.x86_64.rpm

安装成功!

 

3:rpm查看所有已安装的rpm包

-q :仅查询,后面接的软件名称是否有安装

rpm -qa

1702533624231.png

我们也可以单独查看是否安装了某个软件,配合搜索命令grep使用

rpm -qa | grep gcc
[root@VM_0_4_centos ~]# rpm -qa | grep gcc
gcc-c++-4.8.5-44.el7.x86_64
libgcc-4.8.5-44.el7.x86_64
gcc-4.8.5-44.el7.x86_64

4:查看已安装rpm包信息


-i : install 安装的意思


rpm -qi gcc

1702533681310.png

 

5:查看rpm已安装的包

Rpm已安装的包一般都是在/usr/bin/目录下:


 1702533709198.png

6:升级rpm包

rpm -Uvh <rpm包名>  # 升级
rpm -Fvh <rpm包名>  # 升级

实例:升级firefox:

[root@VM_0_4_centos bin]# cd /opt/download
[root@VM_0_4_centos bin]# rpm -Uvh --force --nodeps firefox-91.13.0-1.el7.centos.x86_64.rpm # 升级不考虑依赖

7:删除rpm包

rpm -e <rpm包名>

实例:卸载firefox

[root@VM_0_4_centos bin]# cd /usr/bin/
[root@VM_0_4_centos bin]# rpm -e firefox
[root@VM_0_4_centos bin]# ll | grep firefox

8:一些常用的RPM命令:

# 安装
 rpm -ivh <rpm包名>                      # 直接安装
 rpm --force -ivh <rpm包名>         # 忽略报错,强制安装
 rpm -ivh --noscripts <rpm包名>   # 在安装过程不执行脚本
 rpm -ivh --replacepkgs <rpm包名> # 覆盖、替换安装
 # 在安装过程可能出现以来错误,如A包依赖于B包,那么在A包安装之前,需要先安装好B包
 # 查询
 rpm -q telnet                           # 查询指定的包是否安装
 rpm -qa                                   # 列出所有安装过的包
 rpm -qf  /bin/ls               # 查询指定文件来自于那个安装包
 rpm -qif /bin/ls               # 返回软件包的有关信息
 rpm -qlf /bin/ls               # 返回软件包的文件列表
 rpm -qi telnet                          # 查询包元数据
 rpm -ql telnet                          # 获取rpm包中的文件安装的位置
 rpm -qd telnet                         # 查询包相关文档
 rpm -qc bash                           # 查询包配置文件
 rpm -q --scripts bash       # 查询安装、卸载前后执行的脚本
 rpm -q --changelog telnet      # 查询包更新信息
 rpm -qpR <rpm包名>            # 查看包依赖关系

 

以上大概就是linux包管理命令RPM的基本使用,有好的额建议,请在下方输入你的评论。


目录
相关文章
|
24天前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
139 11
|
6月前
|
人工智能 安全 Linux
Alpine Linux设定指定的软件包安装源
以上就是如何为Alpine Linux设置特定的软件包的安装源的全部流程。这个过程非常简洁、明了,希望你在使用过程中能够找到乐趣。这个过程不仅可以提供你需要的软件,还可以根据你的网络条件和地域性需求进行调整,使你的Alpine Linux系统达到最佳性能。
654 24
|
算法 安全 Ubuntu
Linux下的软件包管理器有哪些
Linux下的软件包管理器有哪些
538 5
|
9月前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
964 25
|
9月前
|
存储 Ubuntu 前端开发
Linux软件包管理工具概览
在Linux系统中,dpkg、apt、rpm、yum和dnf是几种常见的包管理工具,它们分别属于不同的Linux发行版或家族,并有着各自的诞生顺序和特点。下面将按照这些工具的诞生顺序,并结合Debian、Red Hat、CentOS、Ubuntu和Kali等系统,进行详细的介绍。
230 4
|
Kubernetes Linux 测试技术
|
12月前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
1108 0
|
Ubuntu Linux 数据库
在Linux中,如何进行软件包升级?
在Linux中,如何进行软件包升级?
|
Web App开发 缓存 Ubuntu
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
855 11
|
Ubuntu Linux 数据库
在Linux中,如何更新软件包?
在Linux中,如何更新软件包?