位置: 编程技术 - 正文

全面讲解RedHat系Linux中的rpm包管理系统(redhat gui)

编辑:rootadmin

推荐整理分享全面讲解RedHat系Linux中的rpm包管理系统(redhat gui),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:redhat系列的linux,redhat gui,redhats,redhats,redhat系列的linux的操作系统,redhat software selection,redhat系统,redhat系列的linux,内容如对您有帮助,希望把文章链接给更多的朋友!

在linux世界里流行两种包管理方式,分别是redhat系的rpm和debian系的deb。其中rpm的使用更为广泛,我打算接下来分多章详细介绍一下rpm的包管理机制。包管理是操作系统用来维护各组件版本的一种方式,对于软件发行者来说,将自己的程序制作成标准的rpm格式也会使得程序的安装、升级和卸载变得非常容易。因此linux下几乎所有流行的程序都有rpm格式的包,有些是发行者自己打包,也有些第三方提供rpm包,例如redhat发行版里的rpm都是redhat自己打包,他们定期打patch,升级并且维护包之间的依赖关系,他们制作的rpm包是最可以信任的。除此之外, -ivh xxxxxxx.rpmi代表安装,e代表卸载,v代表显示安装过程,h代表显示#号样式的进度下面看一个简单的例子:复制代码代码如下:[leconte@localhost soft]$ sudo rpm -ivh enca-1.9-4.el5.rf.i.rpmwarning: enca-1.9-4.el5.rf.i.rpm: Header V3 DSA signature: NOKEY, key ID 6b8de6Preparing... ########################################### [%] 1:enca ########################################### [%]rpm包这样就装上了,但是很多时候没有这么顺利,由于rpm包之间可能存在依赖关系,在依赖关系无法满足的情况下默认是没法继续安装的;再比如某个包已经安装过,如果想再装一次,也是无法继续的。这种情况下可以通过一些参数来强制执行,但是强制执行的后果可能是装的程序无法正常使用,因为它依赖的包你系统并没有提供。安装时常用的参数如下:--test 测试安装,并不真实安装而仅仅是测试能否安装。--nodeps 忽略依赖关系强行安装--force 强制替换现有版本--noscripts 仅安装文件不执行附加脚本下面演示一个强行安装的例子“复制代码代码如下:[leconte@localhost soft]$ sudo rpm -ivh awstats-6.9-1.noarch.rpmerror: Failed dependencies: perl(LWP::UserAgent) is needed by awstats-6.9-1.noarch[leconte@localhost soft]$ sudo rpm -ivh awstats-6.9-1.noarch.rpm --nodepsPreparing... ########################################### [%] 1:awstats ########################################### [%]awstats依赖的PERL模块LWP::UserAgent并没有装,因此默认是无法安装的,但是通过nodeps可以强制安装,而LWP::UserAgent可以通过cpan去后续安装。也就是说,如果你明白你在做什么,那么强制安装并不可怕。需要注意的是,rpm包的安装和卸载都需要在系统的rpm数据库里保存信息,因此需要root权限。

全面讲解RedHat系Linux中的rpm包管理系统(redhat gui)

RPM的查询功能接着介绍rpm的查询功能,查询是我们最常用的功能,例如查询一个包里包含哪些文件、一个文件属于哪个包、以及包之间的依赖关系等等。rpm的-q参数是用来进行查询的,需要明确的是rpm既可以对安装在系统上的包进行查询,也可以对一个未安装的rpm包进行查询。当一个rpm包安装到系统上之后,安装信息通常会保存在本地的/var/lib/rpm/目录下,数据会以berkeley DB的方式保存。查看/var/lib/rpm/Packages文件的类型可以验证这一点。复制代码代码如下:[leconte@localhost rpm]$ file /var/lib/rpm/Packages/var/lib/rpm/Packages: Berkeley DB (Hash, version 8, native byte-order)这种情况下的查询其实就是对bdb的读访问。而对一个未安装的rpm包进行查询,则是通过解读rpm包本身而获取信息,这一点是首先需要明确的。下面我就简单罗列一下rpm最常用的几个查询功能1.rpm -qa 用来查询系统安装的所有包,a代表all2.rpm -ql [包名] 用来查询某个包里的文件列表,例如查询包passwd里包含的内容复制代码代码如下:[leconte@localhost rpm]$ rpm -ql passwd/etc/pam.d/passwd/usr/bin/passwd/usr/share/man/man1/passwd.1.gz3.rpm -qi [包名] 用来查询包信息,其中包含包的介绍,作者,打包日期等重要信息。4.rpm -qf [文件名] 用来查询一个文件所属的rpm包,例如:复制代码代码如下:[leconte@localhost rpm]$ rpm -qf /etc/passwdsetup-2.5.-4.el5系统配置文件/etc/passwd是属于setup这个包的。5.rpm -qV [包名] 用来验证某个包中安装的各文件的状态,如果当前文件的大小、md5和安装时数据库里保存的信息不一致,该命令则会将不一致的文件列出来。该命令对于系统出问题的情况下的故障排查很有帮助。上面是几个最常用的查询命令,都是针对查询系统rpm包情况的。如果要查询未安装的rpm包则只需要加上p参数和包路径即可。例如查询包perl-Git-1.5.5.6-4.el5.i.rpm的信息:复制代码代码如下:[leconte@localhost soft]$ rpm -qip perl-Git-1.5.5.6-4.el5.i.rpmwarning: perl-Git-1.5.5.6-4.el5.i.rpm: Header V3 DSA signature: NOKEY, key ID f6Name : perl-Git Relocations: (not relocatable)Version : 1.5.5.6 Vendor: Fedora ProjectRelease : 4.el5 Build Date: 年月日 星期五 时分秒Install Date: (not installed) Build Host: xenbuilder2.fedora.redhat.comGroup : Development/Libraries Source RPM: git-1.5.5.6-4.el5.src.rpmSize : License: GPLSignature : DSA/SHA1, 年月日 星期六 时分秒, Key ID ccf6Packager : Fedora ProjectURL : : Perl interface to GitDescription :Perl interface to Git.

RPM包的依赖关系rpm包之间会维持依赖关系,这是包管理系统的特色。我们都经历过安装一个包而因为依赖缺失而装不上的情况。后来yum的出现能一定程度解决这个问题,但我们仍然有必要了解rpm依赖关系背后的细节。自己打过rpm包的人都知道,在包的spec配置文件往往要明确写出此包所依赖的包名或文件名,同时也可能需要明确写出此包所提供的内容。这个内容可能是动态库也可能是其他一些名字,并不一定是文件名。各个包之间正是依靠这些内容来建立依赖关系的,每个包都提供一些内容同时依赖一些别的内容,整个系统就在这样一种相互依赖中形成了。在看具体的例子之前先介绍几个指令:rpm -qR [包名] 可以用来查询指定包所依赖的内容rpm -q –provides [包名] 可以用来查询指定包所提供的内容rpm -q –whatprovides [内容] 可以用来查询哪个包提供了指定内容rpm -q –whatrequires [内容] 可以用来查看哪些包依赖于指定内容例如我们以time这个包为例进行查询,结果如下:复制代码代码如下:[leconte@localhost soft]$ rpm -qR time/bin/sh/bin/sh/sbin/install-infolibc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)libc.so.6(GLIBC_2.3.4)rpmlib(CompressedFileNames) <= 3.0.4-1rpmlib(PayloadFilesHavePrefix) <= 4.0-1rtld(GNU_HASH)可见,time这个包如果要安装,上述内容必须已经存在,否则将会提示依赖缺失而无法安装。我们以列表中的/bin/sh为例进行反查,可以看到系统中哪个包提供了/bin/sh复制代码代码如下:[leconte@localhost soft]$ rpm -q --whatprovides "/bin/sh"bash-3.2-.el5很明显,bash这个包提供了/bin/sh,正是由于bash的安装才满足了time的安装需求。time依赖于bash等包,同时它也提供了一些内容,有可能被别的包依赖:复制代码代码如下:[leconte@localhost soft]$ rpm -q --provides timetime = 1.7-.2.2[leconte@localhost soft]$ rpm -q --whatrequires 'time'no package requires time不幸的是系统中并没有包依赖于time,因为它本身属于较上层的包。对于一些底层内容就会有很多包依赖它,例如之前碰到的/bin/sh:复制代码代码如下:[leconte@localhost soft]$ rpm -q --whatrequires '/bin/sh'bash-3.2-.el5bash-3.2-.el5info-4.8-.el5ncurses-5.5-.libxml2-2.6.-2.1.2.7readline-5.1-1.1......................省略n行由于篇幅所限就不全列举出来了,这种依赖关系应该可以一目了然了。和上节类似,rpm -qR和rpm -q –provides这两个查询指令同样可以加上-p参数应用到一个未安装的rpm包,例如复制代码代码如下:[leconte@localhost soft]$ rpm -qp --provides enca-1.9-4.el5.rf.i.rpmwarning: enca-1.9-4.el5.rf.i.rpm: Header V3 DSA signature: NOKEY, key ID 6b8de6libenca.so.0enca = 1.9-4.el5.rf可以看到,enca这个rpm包提供了动态库libenca.so.0和enca本身。通过使用本节这四条依赖关系查询指令基本可以了解到系统上众多rpm包之间的耦合关系,明确了这一点,我们对rpm的理解也就更深了一步。

RPM包的卸载和升级rpm包的卸载和升级的指令如下:rpm -e [包名] 用来卸载一个rpm包rpm -U [包文件] 用来升级一个现有的rpm需要注意的是,如果要卸载的rpm包中的内容被别的rpm包依赖,那么则无法卸载,例如复制代码代码如下:[leconte@localhost ~]$ rpm -e php-commonerror: Failed dependencies: php-common = 5.2.9-4 is needed by (installed) php-pdo-5.2.9-4.i php-common = 5.2.9-4 is needed by (installed) php-bcmath-5.2.9-4.i php-common = 5.2.9-4 is needed by (installed) php-curl-5.2.9-4.i php-common = 5.2.9-4 is needed by (installed) php-dba-5.2.9-4.i php-common由于被 php-pdo等包依赖而无法单独卸载,php-pdo和php-common可以利用上节介绍过的依赖关系查询指令查到:复制代码代码如下:[leconte@localhost ~]$ rpm -qR php-pdoconfig(php-pdo) = 5.2.9-4libc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1.3)libc.so.6(GLIBC_2.3)libc.so.6(GLIBC_2.4)librt.so.1libsqlite3.so.0php-common = 5.2.9-4..............[leconte@localhost ~]$ rpm -q --whatrequires php-commonphp-pdo-5.2.9-4php-bcmath-5.2.9-4php-curl-5.2.9-4php-dba-5.2.9-4php-gd-5.2.9-4...............这种情况下想要卸载php-common,只能将它依赖的所有包全部卸载掉。更暴力的方式是指定-nodeps忽略依赖关系限制,但是这样造成的后果就是php-pdo等包将无法正常使用,因此这种方式一般不推荐。rpm包的升级指的是rpm包的版本升级,这种情况下实际内部执行的动作分两步,即先安装新版本然后卸载老版本。此外,rpm也可以进行包的降级,只需要指定–oldpackages参数即可。值得注意的是在卸载和升级的过程中,包中的配置文件会被妥善处理,rpm会根据一系列规则决定配置文件是否保留,即使被替换,旧的配置文件也会被重命名后保存起来,你之前对配置文件做过的修改不会因为rpm包的升级而丢失。

CentOS服务器端配置SSH远程连接的教程 安装好了CentOS6.4,我想让它作为一个服务器,可以让我的Windows7电脑远程登录。安装OpenSSHServer首先,我们搜索一下CentOS的软件库里面有没有已经定义好

CentOS系统中安装使用图形化界面的教程 CentOS作为服务器的操作系统是很常见的,但是因为需要稳定而没有很时髦的更新,所以很少做为桌面环境。在服务器上通常不需要安装桌面环境,最小

详解VPS上给CentOS添加硬盘而不用重启服务器的方法 对大多数系统管理员来说扩充Linux服务器的磁盘空间是日常的工作之一。因此这篇文章会通过使用Linux命令,在CentOS7系统上演示一些简单的操作步骤来扩

标签: redhat gui

本文链接地址:https://www.jiuchutong.com/biancheng/353564.html 转载请保留说明!

上一篇:CentOS系统中挂载光盘镜像ISO文件的教程(centos挂载点)

下一篇:CentOS服务器端配置SSH远程连接的教程(centos7服务器配置)

  • 浙江税务网上办税大厅官网
  • 个人是否可以申请精神司法鉴定
  • 个人所得税计算器
  • 营业收入是不是利润
  • 固定资产残值账务处理
  • 2019新租赁准则账务处理举例
  • 购买房产怎么确认收入
  • 高新技术企业预审要求
  • 个体户能不能去注销
  • 离退休人员再任职的规定
  • 工程款增值税专用发票如何开具
  • 技术服务费普通发票怎么做账务处理
  • 非公司私营企业属于什么类型
  • 用于集体福利的进项税额转出
  • 2019年小规模纳税人免征增值税政策
  • 三证合一后未办理税务登记
  • 销售利润率和毛利率计算
  • 年度终了,会计部门都要将旧账编造清册
  • 小规模纳税人代账一年多少钱
  • 在windows中桌面是
  • 建筑公司支付的预付款担保保函费怎么做账?
  • php运用于哪些领域
  • 电脑c盘被损坏怎么修复
  • php数组函数题目
  • php设计模式及使用场景
  • 公司投资款无法收回
  • 母子公司吸收合并税务处理
  • Laravel 5.4向IoC容器中添加自定义类的方法示例
  • 在暴风雪中翻译
  • php下载文件夹
  • promise async区别
  • 杭州西湖古风
  • 增量留抵税额是
  • vue中使用原生js
  • css背景图
  • 一阶段目标检测算法
  • 以非现金资产清偿债务的,债权人应当
  • 海关缴款书稽核比对
  • 软件公司股权
  • 一般纳税人申请条件
  • 退股东股本账务处理
  • 计提消费税的会计分录讲解
  • 付款人和开票人必须相符吗
  • sql扩展
  • 工业企业外购存货的实际成本不包括
  • 有限合伙企业分红原则
  • 出口退税后发生退货补缴怎么算增值税
  • 租房免租是什么意思
  • 政府补助的房子叫什么
  • 实物出资没有发票怎么办
  • 银行金融手续费收费标准
  • 融资租赁中承租人的义务
  • 企业的借款费用有哪些处理方法
  • 员工预支工资属于什么科目
  • 审计年审内容
  • 分公司第二季度总结报告
  • 增值税纳税申报表在哪里打印
  • 如何建立一个新的群
  • 高新技术企业享受优惠时间
  • 私营公司融资租房合法吗
  • sql常用语句大全简书
  • centos7安装MySQL5.6
  • win7系统文件夹怎么加密码
  • mpcmdrun.exe是什么进程
  • linux a
  • I810 Graphics LINUX Driver的安装
  • 使用jquery实现的项目
  • android jdk下载
  • unity3d游戏引擎支持几种平台发布?
  • 位图字体图片
  • [置顶] 混合、反走样、雾效、多边形偏移
  • 在Html中使用Requirejs进行模块化开发实例详解
  • angular 图片懒加载
  • Unity UIScrollView优化
  • python基础入门教程
  • axios原理和实现
  • c语言深入剖析
  • javascript面向对象编程指南
  • 辽宁省地方税务局公告2014年第10号
  • 电子税务局如何查询财务报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设