Linux操作系统现在已经成为流行的操作系统,很多的人都开始学习,Linux操作系统包括了很多的专业知识,今天和大家讲讲Linux操作系统中的rpm基本操作。希望你学会本文中提到rpm的五种基本操作知识,会对你有所帮助。rpm有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。 下面我们就来逐一的讲解吧。

一、 安装rpm包

rpm 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名。其中包括软件包的名称(foo),版本号(1.0),发行号(1),和 硬件平台(i386)。安装一个软件包只需简单的键入以下命令:

  1. $ rpm -ivh foo-1.0-1.i386.rpm
  2. foo ####################################

rpm安装完毕后会打印出软件包的名字(并不一定与文件名相同),而后打印一连串的#号以表示安装进度。虽然软件包的安装被设计的尽量简单易行,但还是可能会发生如下的错误:

1、 软件包已被安装如果您的软件包已被安装, 将会出现以下信息:

  1. $ rpm -ivh foo-1.0-1.i386.rpm
  2. foo package foo-1.0-1 is already installed
  3. error: foo-1.0-1.i386.rpm cannot be installed

如果您仍旧要安装该软件包,可以在命令行上使用――replacepkgs 选项,rpm将忽略该错误信息强行安装。

2、文件冲突如果您要安装的软件包中有一个文件已在安装其它软件包时安装,会出现以下错误信息:

  1. rpm -ivh foo-1.0-1.i386.rpm
  2. foo /usr/bin/foo conflicts with file from bar-1.0-1
  3. error: foo-1.0-1.i386.rpm cannot be installed

要想让rpm 忽略该错误信息, 请使用――replacefiles 命令行选项。

3、未解决依赖关系rpm软件包可能依赖于其它软件包,也就是说要求在安装了特定的软件包之后才能安装该软件包。如果在您安装某个软件包时存在这种未解决的依赖关系。会产生以下信息:$ rpm -ivh bar-1.0-1.i386.rpm failed dependencies: foo is needed by bar-1.0-1您必须安装完所依赖的软件包,才能解决这个问题。如果您想强制安装(这是个坏主意,因为安装后的软件包未必能正常运行),请使用――nodeps 命令行选项。(www.iocblog.net 文章来源)

二、卸载rpm包

卸载软件包就象安装软件包时一样简单:$ rpm -e foo注意这里使用软件包的名字name ``foo'', 而不是软件包文件的名字file ``foo-1.0-1.i386.rpm''.如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如:$ rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1若让rpm忽略这个错误继续卸载(这可不是一个好主意,因为依赖于该软件包的程序可能无法运行),请使用――nodeps 命令行选项。

三、升级rpm包

升级软件包和安装软件包十分类似:

  1. $ rpm -uvh foo-2.0-1.i386.rpm
  2. foo ####################################

rpm将自动卸载已安装的老板本的foo 软件包,您不会看到有关信息。事实上您可能总是使用 -u 来安装软件包,因为即便以往未安装过该软件包,也能正常运行。因为rpm执行智能化的软件包升级,自动处理配置文件,您将会看到如下信息:saving /etc/foo.conf as /etc/foo.conf.rpmsave这表示您对配置文件的修改不一定能向上兼容。 因此,rpm 会先备份老文件再安装新文件。您应当尽快解决这两个配置文件的不同之处,以使系统能持续正常运行。

因为升级实际包括软件包的卸载与安装两个过程,所以您可能会碰到由这两个操作引起的错误。另一个你可能碰到的问题是:当您使用旧版本的软件包来升级新版本的软件时,rpm会产生以下错误信息

  1. $ rpm -uvh foo-1.0-1.i386.rpm
  2. foo package foo-2.0-1 (which is newer) is already installed
  3. error: foo-1.0-1.i386.rpm cannot be installed

如果你确有需要将该软件包“降级,加入 ――oldpackage 命令选项就可以了。

四、 查询已安装的软件包

使用命令rpm -q来查询已安装软件包的数据库。简单的使用命令 rpm -q foo 会打印出foo软件包 的包名,版本号,和发行号:
$ rpm -q foo
foo-2.0-1
除了指定软件包名以外,您还可以使用以下选项来指明要查询哪些软件包的信息。这些选项被称之为 “软件包指定选项”。。 -a 查询所有已安装的软件包。 -f 将查询包含有文件。 的软件包。 -p 查询软件包文件名为的软件包还可以指定查询软件包时所显示的信息。它们被称作信息选择选项:。 -i 显示软件包信息,如描述, 发行号, 尺寸, 构建日期, 安装日期, 平台, 以及其它一些各类信息。。 -l 显示软件包中的文件列表。。 -s 显示软件包中所有文件的状态。。 -d 显示被标注为文档的文件列表(man 手册, info 手册, readme's, etc)。。 -c 显示被标注为配置文件的文件列表。这些是您要在安装完毕以后加以定制的文件(sendmail.cf, passwd, inittab, etc)。

对于那些要显示文件列表的文件, 您可以增加-v 命令行选项以获得如同 ls -l 格式的输出。

五、 验证软件包

验证软件包是通过比较已安装的文件和软件包中的原始文件信息来进行的。验证主要是比较文件的尺寸, MD5 校验码,文件权限, 类型, 属主和用户组等。

rpm-V命令用来验证一个软件包。您可以使用任何包选择选项来查询您要验证的软件包。命令rpm -V foo 将用来验证foo软件包。又如:。 验证包含特定文件的软件包:rpm -Vf /bin/vi。 验证所有已安装的软件包:rpm -Va。根据一个RPM包来验证:rpm -Vp foo-1.0-1.i386.rpm如果您担心你的RPM数据库已被破坏,就可以使用这种方式。

如果一切均校验正常将不会产生任何输出。如果有不一致的地方,就会显示出来。输出格式是8位长字符串, ``c'' 用以指配置文件, 接着是文件名。

8位字符的每一个 用以表示文件与RPM数据库中一种属性的比较结果 .``.'' (点)表示测试通过。。下面的字符表示对RPM软件包进行的某种测试失败:显示字符 错误源5 MD5 校验码S 文件尺寸L 符号连接T 文件修改日期D 设备U 用户G 用户组M 模式e (包括权限和文件类型)

如果有错误信息输出, 您应当认真加以考虑,是通过删除还是重新安装来解决出现的问题。

六、教你一招

RPM不仅是安装/卸载程序的工具,它还是系统维护和诊断的一把好手。看过下面几个例子你就会领教它的厉害了。。 如果您误删了一些文件,但您不能肯定到底都删除了那些文件,怎么办?您可以键入:rpm -Va rpm会在屏幕上显示出文件删除的情况。若你发现一些文件丢失了或已被损坏,您就可以重新安装或先卸载再安装该软件包。。 如果您碰到了一个自己不认识的文件,要想查处它属于哪个软件包,您可以输入以下命令rpm -qf /usr/X11R6/bin/xjewel输出的结果会是:xjewel-1.6-1。如果发生综合以上两个例子的情况,如文件/usr/bin/paste出了问题。您想知道哪个软件包中包含该文件,您这时可以简单的键入:rpm -Vf /usr/bin/paste。 如果您想了解正在使用的程序的详细信息, 您可以键入如下命令来获得软件包中关于该程序的文档信息:rpm -qdf /usr/bin/ispell输出结果为:

  1. /usr/man/man4/ispell.4
  2. /usr/man/man4/english.4
  3. /usr/man/man1/unsq.1
  4. /usr/man/man1/tryaffix.1
  5. /usr/man/man1/sq.1
  6. /usr/man/man1/munchlist.1
  7. /usr/man/man1/ispell.1
  8. /usr/man/man1/findaffix.1
  9. /usr/man/man1/buildhash.1
  10. /usr/info/ispell.info.gz
  11. /usr/doc/ispell-3.1.18-1/README

您发现了一个新的koules RPM,但您不知道它是做什么的,您可以键入如下命令:rpm -qip koules-1.2-2.i386.rpm。 现在您想了解koules的 RPM包在系统里安装了哪些文件,您可以键入:rpm -qlp koules-1.2-2.i386.rpm输出结果为:

  1. /usr/man/man6/koules.6
  2. /usr/lib/games/kouleslib/start.raw
  3. /usr/lib/games/kouleslib/end.raw
  4. /usr/lib/games/kouleslib/destroy2.raw
  5. /usr/lib/games/kouleslib/destroy1.raw
  6. /usr/lib/games/kouleslib/creator2.raw
  7. /usr/lib/games/kouleslib/creator1.raw
  8. /usr/lib/games/kouleslib/colize.raw
  9. /usr/lib/games/kouleslib
  10. /usr/games/koules

以上只是几个常见例子。随着您进一步的使用RPM,您会发现它的各种功能选项组合可以实现更为强大的RPM包管理功能。通过本文希望你能牢牢掌握Linux操作系统rpm五种基本的操作方式。

转载于:https://www.cnblogs.com/AI-Algorithms/p/3608043.html

阐述Linux操作系统之rpm五种基本操作相关推荐

  1. linux系统ubuntu有哪些,Ubuntu Linux操作系统至少适合五种人使用

    性能 衡量一个新文件系统的最重要指标就是它的根本性能.这常常是最难实现的指标,因为当文件系统变得庞大并且要求实现高可靠性时,将会以损害性能为代价.但是,ext4 不仅解决了伸缩性和可靠性,它还提供各种 ...

  2. Restful风格的五种基本操作

    Restful风格的五种基本操作 五种操作分别为:新增.删除.修改.查询单个.查询所有. 利用restful风格书写访问路径时,会发现大多数路径其实都是很相似甚至一样的,但他们的区别主要是利用数据提交 ...

  3. Linux 操作系统常用以下哪种编译器,Linux 操作系统期末复习资料(Alpha版)

    Linux 操作系统期末复习资料 >>问答题 1.请列举至少4个你知道的Linux发行版? 答:RedLinux.红旗Linux.Debain.SuSE Linux等. 2.Linux支持 ...

  4. linux 最快的,五种方式装Linux哪种最快

    mask宇 于 2012-05-20 00:46:44发表: 个人觉得硬盘的传输速率更快 所以悬着硬盘. Hoo_h 于 2012-05-20 00:18:54发表: 想尝试硬盘安装,用过光盘和U盘 ...

  5. Linux操作系统中的七种武器

    Linux是一套免费使用和自由传播的类UNIX操作系统,主要用于基于Intel x86系列CPU的计算机上.Linux系统是由全世界各地的成千上万的程序员设计和实现的,其目的是建立不受任何商品化软件的 ...

  6. 树莓派的linux操作系统,树莓派的6种轻量级操作系统介绍

    您的Raspberry Pi与标准PC不同.当然,它可以替代台式机,但总的来说,它是一种功能更广泛的设备. 其中一项权衡是,它没有大量资源.看一看Raspbian Stretch,并将其与Debian ...

  7. Linux创建文件的五种方法,Linux常用命令 - 五种创建文件命令详解

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! 创建文件,你知道有哪几个命令 ?(写出至少两种方式) 首先,touch 创建一个文件 touch yyTest. ...

  8. linux杀死进程的五种方法

    方法一: Terminal终端输入: gnome-system-monitor,就可以打开system monitor 如图: 然后找到相应进程,右击选择kill process就可以了 方法二: 通 ...

  9. Linux —进程间的五种通信方式—(半双工管道、命名管道、消息队列、信号、共享内存),外加信号量。直接上代码:

    无名管道pipe(半双工):(仅限同一个程序运行) 创建无名管道会生成特殊文件,只存在于内存中 #include <stdio.h> #include <stdlib.h> # ...

最新文章

  1. centos 7 安装 npm 工具
  2. 写给程序员的裁员防身指南
  3. win10系统预览体验计划错误代码0x800bfa19怎么办
  4. 信息学奥赛一本通 1308:【例1.5】高精除
  5. 去哪儿-09-city-list
  6. http://bsideup.blogspot.com/2015/04/spring-boot-thrift-part3.html
  7. 让Mootools的语法结构像Jquery那样
  8. [UESTC SC T1] 最大疯子树
  9. qt5以后正常显示中文(windows下 vs编译器)
  10. 吾爱破解论坛2021年11月11日,光棍节免费开放注册
  11. 华为OceanStor Pacific斩获IO500榜单第二,数据存储的时与势
  12. 外贸网站建站是什么?
  13. FAN6921MRMY 带多种保护功能 电流模式PWM控制 功率因数校正 (PFC) 控制器
  14. 数据分析~中国五大城市PM2.5数据分析01
  15. No installations recognized 以及 nvm use切换node版本无效的解决办法
  16. ready等方法 微信小程序_微信小程序开发一些经验
  17. 计算机系统软件与工具软件
  18. PE文件中对DOS存根的一些想法
  19. 有考c语言的软件工程专硕吗,2020年南开大学软件工程硕士考研真题试卷及试题答案,C语言与数据结构考研试题下载...
  20. 基于http的合约测试gamesys

热门文章

  1. MySQL中的show full columns from 表名
  2. linux双系统重装win7系统下载,Windows与Ubuntu双系统重装WIN7后修复Grub2
  3. leetcode最小面积_LeetCode—— 939. 最小面积矩形(JavaScript)
  4. webstorm 两个文件对比不同_DOS 入门到精通 使用 fc 命令比较两个文件,并逐一显示不同之处...
  5. UriComponentsBuilder 拼接URL、解析URL
  6. php fpm xcache,php扩展xcache
  7. web.xml中配置web监听器
  8. python爬取素材图片代码_基于Python爬取素材网站音频文件
  9. el-drawer点击的时候为什么有边框_别再纠结背景墙边框的材料,这4种线条边框便宜又实用,简洁大方...
  10. python是脚本语言、需要编译器编译执行_使用Notepad++编译运行C/C++/Python程序