Linux系统之RPM包管理

目录

  • 01 RPM包管理

    • 1.1RPM概述
    • 1.2RPM包安装
    • 1.3RPM包查询
    • 1.4RPM包升级
    • 1.5RPM包卸载
    • 1.6RPM包校验

01 RPM包管理

1.1RPM概述

RPM是RedHat Package Manager的缩写,由Redhat公司开发出来的。
RPM是通过数据库记录的方式来将你所需要的软件安装到你的Linux主机上一套管理程序。也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装包以及包之间依赖相关性。

1.软件包类型

分类 安装 版本
rpm包 预先编译打包,安装简单 软件版本较低
源码包 手动编译打包,安装频繁 软件版本随意
二进制包 解压即可使用,安装简单 不能修改源码

2.常见的软件包

注意:不管是源码包,还是二进制包,安装时都可能会有依赖关系!

系统平台 包类型 工具 自动解决依赖
RedHat/Centos RPM rpm yum
Ubuntu/Debian DPKG dpkg apt

3.RPM获取途径

  1. RedHat光盘或官方网站
  2. RPM查询官网网站
  3. Nginx软件官网网站

4.RPM软件包命名规则

RPM包命名以-将软件分成了若?部分 bash-4.2.46-28.el7.x86_64.rpm

name: 软件包名称
version: 版本号, 主版本, 重?更新. 次版本, ?功能更新. 修订号, 修复bug
release: 发布版本 el6, el7(hostnamectl)
arch: 系统平台, i386、x86_64(uname -m,hostnamectl)

rpm包的组成:

安装释放的?件
软件包的元数据(版本,发布号,架构,描述,要求,更改?志等)
脚本:安装前执?的脚本和安装后的脚本

5.查看系统光驱中RPM软件包

如果你的系统中还有系统的安装盘,?先我们让虚拟机链接上我们的系统安装盘,然后我们可以 通过mount /dev/cdrom /mnt命令把光驱挂载到/mnt?录下,那么你会在/mnt/Packages?录下 看到很多 .rpm 的包?件。

[[email protected] ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[[email protected] ~]# ls /mnt/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

[[email protected] ~]# ls /mnt/Packages/ |head

1.2RPM包安装

-i: 安装
-v: 详细信息
-h: 安装进度
--test: 测试是否能够安装成功
--force: 强制重新安装
--nodeps: 忽略依赖关系

//安装软件包,需要指定软件包绝对路径
[[email protected] ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
[[email protected] ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm 

//在软件包所在?录下,可以不指定绝对路径
[[email protected] ~]# cd /mnt/Packages/
[[email protected] Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm 

//测试?个软件包是否能在该系统上安装
[[email protected] ~]# rpm -ivh --test /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm 

//如果软件包存在, 强制再次安装
[[email protected] ~]# rpm -ivh --force /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm   

//安装samba服务需要依赖其他组件, 使?--nodeps可重新强制安装
[[email protected] ~]# rpm -ivh --nodeps /mnt/Packages/samba-4.6.2-8.el7.x86_64.rpm

1.3RPM包查询

使?rpm命令查询已安装好的rpm包, 需要了解如下参数:

rpm -q #查看指定软件包是否安装
rpm -qa #查看系统中已安装的所有RPM软件包列表
rpm -qi #查看指定软件的详细信息
rpm -ql #查询指定软件包所安装的?录、?件列表
rpm -qc #查询指定软件包的配置?件
rpm -qd #查询指定软件包的帮助?档
rpm -qf #查询?件或?录属于哪个RPM软件
rpm -q --scripts #查询rpm包安装前和安装后执?的脚本

//查询未安装的软件包信息
rpm -qip #查询未安装的rpm包详细信息
rpm -qlp #查询未安装的软件包会产?哪些?件

//查询vsftpd这个rpm包是否安装
[[email protected] ~]# rpm -q vsftpd

//模糊查找系统已安装的rpm包
[[email protected] ~]# rpm -qa |grep ftp

//查询vsftpd软件包的相关信息
[[email protected] ~]# rpm -qi vsftpd

//查询rpm包所安装的?件
[[email protected] ~]# rpm -ql vsftpd

//查询rpm包相关的配置?件
[[email protected] ~]# rpm -qc vsftpd

//查询配置?件或命令来?于哪个rpm包 (命令不存在系统则无法查询)
[[email protected] ~]# rpm -qf /etc/vsftpd/vsftpd.conf
[[email protected] ~]# rpm -qf /usr/sbin/vsftpd

//查询未安装的软件包会产?哪些?件
[[email protected] ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm

//查询未安装的软件包会产?哪些?件
[[email protected] ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm

1.4RPM包升级

-U 如果?版本不存在,就全新安装,如果存在有新版即升级
-f ?版本必须存在,才升级

//如果有新版则升级, 软件升级不要跨操作系统主版本号
[[email protected] ~]# rpm -Uvh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

1.5RPM包卸载

卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则 会造成系统崩溃。

//先查询, 然后卸载
[[email protected] ~]# rpm -qa |grep zsh
[[email protected] ~]# rpm -e zsh --nodeps
[[email protected] ~]# rpm -e zsh

1.6RPM包校验

软件相关的数据库存放于/var/lib/rpm?录

[[email protected] ~]# rpm -V vsftpd
SM5....T.  c /etc/vsftpd/user_list

S #?件的容量??是否被改变
M #?件的类型或者?件的属性是否被修改
5 #MD5这?种指纹加密的内容已经不同
D #装置的主/次代码已经改变
L #路径已经被改变
U #?件的所属主已被修改
G #?件的所属组已被修改
T #?件的创建时间已被改变

原文地址:https://www.cnblogs.com/jasonminghao/p/12310386.html

时间: 2024-10-03 17:52:28

Linux系统之RPM包管理的相关文章

第17期马哥Linux学习之rpm包管理功能全解

RPM包管理器最早是由Red Hat公司研发的一款Linux上的程序包管理器,文件包的后缀名为".rpm".目前是GNU/Linux下软件包资源最丰富的软件包类型之一. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rpm包命名格式: name-VERSION-release.arch.rpm 包的名字-版本号-发行号.架构平台.rpm VERSION:major.min

Linux学习之RPM包管理

在linux中有人多的软件使用,比如我们使用的ifconfig,fdisk,btrfs文件系统等.可能这些软件在你原有的linux系统中并不存在,那么我们如何去使用这些工具呢.我们知道windows在需要软件的时候需要安装,当然对于linux系统一样需要安装.在linux下常用的安装工具我们使用的是rpm程序包(当然我们这边是针对CentOS而言),那么什么是rpm,如何安装rpm包以及使用rpm包做一些操作等,在下面的内容中将提到. 一.什么是RPM RPM全称为"RedHatPackage

常见linux系统中RPM包的通用命名规则

本文重点说一下在常见的linux系统中,RPM包通用的命名规则. RPM包的一般格式为:name-version-arch.rpmname-version-arch.src.rpm 例:httpd-2.2.3-29.el5.i386.rpmhttpd-devel-2.2.3-29.el5.i386.rpmhttpd-manual-2.2.3-29.el5.i386.rpmsystem-config-httpd-1.3.3.3-1.el5.noarch.rpm (1)name,如:httpd,是软

【Linux相识相知】rpm包管理

我们日常在使用Windows的时候,如果要安装某个软件,最简单的方法就是在程序包的官网直接下载软件包到本地,一般是以.exe或者.msi格式的文件,然后一直下一步下一步就能安装成功了,但是在使用linux的操作系统的时候也许不是这么的友好,即使现在有的linux发行版也可以通过简单的搜索点击安装来实现软件包的安装,但这并不一种很好的安装方法,因为你必须安装桌面环境,消耗和占用一定的内存资源,除非只是你日常使用.本次博客就如何使用rpm命令来实现centos上的软件包的安装与管理,rpm也许不是最

Linux程序包管理之rpm包管理

Linux程序包管理 软件包管理 功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装.升级.卸载.查询.校验.数据库维护. API:Application ProgramInterface应用程序接口: ABI:Application BinaryInterface应用二进制接口: Unix-like和linux在ABI层次是相同的 linux程序包:ELF格式: 但是与Windows相差甚远 windows程序包:exe,msi格式: API层次兼容不一定A

Linux学习—rpm包管理

前言 在linux上,一个软件通常由二进制程序,库文件,配置文件和帮助文件组成.其中: 二进制程序一般都放在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin和/usr/local/sbin这几个目录下边: 库文件都放在/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib和/usr/local/lib64这些目录下: 配置文件一般都是放在/etc这个目录下: 而最基本的man帮助文件则是放在/usr/share/man

Linux的rpm包管理

我们都知道,windows的程序无法直接在linux中运行,windows中大量的木马和病毒也无法被linux识别,所有的软件包都必须针对linux再做单独的开发. 软件包分类 源码包 (把源代码直接开放的包) 脚本安装包(源码包写一个安装界面,不需要手动安装) 二进制包(RPM包.系统默认包) 源码包的优点: 1.开源,如果有足够的能力,可以修改源代码 2.可以自由选择所需的功能 3.软件是编译安装,所以更加适合自己的系统,更加的稳定也效率更高 4.卸载方便 缺点: 1.安装步骤较多,尤其在安

linux软件包管理——rpm包管理

软件运行环境API:Application Programming Interface 应用程序接口(应用程序和操作系统之间的接口) 凡是符合该api标准的应用程序都可以在支持该api的操作系统上编译通过 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接  静态编译:自身包含所有需要调用的库文件  动态编译:自身不包含,需要时调用共享库文件(.so文件)ABI:Application Binary Interface 应用程序二进制接口 规定了二进制文件的格式.

linux软件包管理之一(rpm包管理)

开场白 1.软件的安装卸载是很平常的事情,但是在linux上面却也这么的不简单.Linux的其中一个哲学思想就是 一个程序只做一件事,并且做好. 组合小程序来完成复杂任务.这样做有很多好处.但世界上的东西总是两面的,有得必有失.各个小程序之间往往会存在着复杂的依赖关系. 2.再往前走一步.软件最初的安装方式只有一种,那就是源代码编译安装,这种方式安装的软件更贴近本机的系统运行环境,但也更复杂.不仅要解决软件之间的依赖关系(所依赖的软件还要再编译安装),还要配置开发编译环境(可能会抓狂的),一切都