菜鸟的成长记录--linux之rpm

RPM

什么是rpm?rpm是RPM package manager的缩写,最早由RedHat公司提出的软件包标准,后来随着rpm的不断发展而又增加许多功能,逐渐的成为linux公认的软件包管理标准。支持该格式的厂商有RedHat linux、suse linux、Mandriva linux。

Rpm的优点

由于RPM是通过预编译并打包成为rpm文件格式后再加以安装的一种方式,并且还能够进行数据库的记载,所以RPM有以下优点:

1.Rpm内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰

2.Rpm在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装

3.Rpm文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息,便于了解软件。

4.Rpm管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证。

rpm命令十分强大,那么rpm命令究竟有什么功能呢?

1 查询已安装在linux系统中的rpm软件包的信息

2 查询rpm软件包安装文件的信息

3 安装rpm软件包到当前linux系统

4 从linux系统中卸载已安装的rpm软件包

5 升级当前linux系统的rpm软件包

命令及参数

(1)#rpm -qa后面不接参数用于查看系统中已经安装的所有的rpm包

(2)#rpm -q rpm包名用于查看系统中是否安装了该软件包,如果安装了,系统会显示完整的包名;如果没有安装,系统会提示"package bas is not installed"。例:

这表示已经安装过的软件

这表示ssh未安装

(3)#rpm -qi rpm包名用于查看系统中已经安装的rpm包的完整信息,包括该包的版本信息,安装时间和大小等。例:

(4)#rpm -ql rpm包名用于查看该软件包都安装到了那些位置。例:

(5)#rpm -qf 文件名用于查看某个文件使用那个rpm包安装的。例:

(6)#rpm -qpi rpm包名和#rpm -qpl分别用于查看没有安装的包的信息,注意下和(4)、(5)的区别。

(7)#rpm -ivh 包名用于安装rpm软件包,i代表安装、v代表可视化安装、h代表安装的时候显示进度。

(8)#rpm -e rpm包名用于删除rpm软件包。rpm -e --nodeps 包名用于删除存在依存关系的软件包,该命令可以将和该包存在依存关系的所有的软件包统统删除。

(9)#rpm -Urpm包名用于对rpm包的升级。

(10)#rpm  -Uvh 升级或安装,如果没有安装,则自动安装,如果安装的旧版本就自动升级

(11)#rpm  -Fvh 如果检测到该软件已经安装,则该软件不会安装,如果安装旧版本,则只升级。


可执行参数


代表意义


--nodeps


使用时机:当发生软件属性依赖问题而无法安装,但你执意安装时

危险性:软件会有依赖性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性依赖,则可能会造成该软件的无法正常使用


--replacefiles


使用时机:如果在安装的过程当中出现了“某个文件已经被安装在你的系统上面”的信息,又或许出现版本不和的信息时,可以使用这个参数来直接覆盖文件

危险性:覆盖的操作是无法复原的,所以,你必须要很清楚的知道被覆盖的文件时真的可以被覆盖,否则就去哭吧


--replacepkgs


使用时机:重新安装某个已经安装过的软件。如果你要安装一堆rpm软件文件时,可以使用rpm –ivh *.rpm但若某些软件已经安装过了,此时系统会出现“某软件以安装”的信息,导致无法继续安装,此时可使用这个参数来重复安装


--force


使用时机:这个参数其实就是--replacefiles与--replacepkgs的综合体


--test


使用时机:想要测试一下该软件是否可以被安装到用户的linux环境当中,可找出是否有属性依赖的问题。


--justdb


使用时机:由于rpm数据库损坏或者是某些缘故产生错误时,可使用这个参数来更新软件在数据库内的相关信息


--nosignature


使用时机:想要略过数字证书的检查时,可以使用这个参数


--prefix新路径


使用时机:要将软件安装到其他非正规目录时。举例来说你想要将某软件安装到/usr/local而非正规的/bin,/etc等目录,就可以使用“—prefix/usr/local”来处理了


--noscripts


使用时机:不想让该软件在安装过程中自行执行某些系统命令

通常使用的就是这些参数了,一般直接用-ivh,如果安装的过程中发现问题,就把问题找出来解决,不要用—force去强制安装,因为会发生更多的问题。

Rpm校验和数字证书验证

用于检查包安装生成的文件属性是否发生变化。

rpm -V package_name 若该软件所含的文件被改动过,才会列出来,如果没有任何信息,恭喜你,该软件所提供的文件没有被改动过。

-Va:列出目前系统上面所有可能被改过的文件

-Vp:列出该软件内可能被改动过的文件

-Vf:列出某个文件是否被改动过

例:

文件名前面有个c,然后就是一些奇怪的文字了,那个c代表的是configuration,就是设置文件的意思。前面的8个信息是:

S  file Size differs:文件的容量大小是否被改变

M Mode differs (includes permissions and file type):文件的类型或文件的属性(rwx)是否被改变,如果否可执行等参数已被改变

5  digest (formerly MD5 sum) differs:MD5这一种指纹码的内容已经不同

D  Device major/minor number mismatch:设备的主/次代码已经改变

L   readLink(2) path mismatch link:路径已被改变

U  User ownership differs:文件的所有者已被改变

G  Group ownership differs:文件的所属用户组已被改变

T   mTime differs:问价你的创建时间已被改变

在光盘镜像中有数字证书的公钥文件,上面出现的是一个随机数,下面我们来导入

先导入,在进行查找pubkey,然后查看pubkey信息,如果现实查询结果,则表示导入成功了

检验一下

证明包的合法性和完整性ok,安装时就不会出现没有验证的提示了

时间: 2024-10-12 19:15:54

菜鸟的成长记录--linux之rpm的相关文章

菜鸟的成长记录--linux基础命令

以下是我学习时接触的命令,后续会慢慢添加 1.tty:查看终端类型 虚拟终端:/dev/tty# 伪终端:/dev/pts/# 控制台:/dev/console 串行终端:/dev/ttyS# 2.startx:启动图形界面 3.ifconfig:查看网卡信息 4.cd:进入用户主目录 cd ~:进入用户主目录 cd ~USERNAME:进入其他用户主目录 cd -:在前一个目录和当前目录来回切换 cd .:当前目录 cd ..:上一级目录 cd ../..:返回上两级目录 cd !$:把上一个

菜鸟的成长记录--linux 通配符和特殊字符集合的使用

通配符 当需要用命令查询所需要的结果时,用户不必全部查出一个一个找,可以使用Shell通配符.Shell命令的通配符含义如下表 符号 含义 实例 * 任意长度的任意字符 a*b,匹配如a3b.acb.aabc.a/b.a123,/b. ? 匹配任意单字符 a?b,匹配如a1b.acb.a,b [ ] 匹配指定范围内的任意字符 a[xyz]b,匹配如axb.ayb.azb [ - ] 匹配任意一个字符范围 a[a-z]b,匹配如ayb.acb.adb.aub [^...] 除了指定的字符,均可匹配

菜鸟的成长记录--linux正则表达式及grep

正则表达式 是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 元字符:不表示其字面意义,而用于额外功能性描述,下面是常用的元字符列表 符号 含义 . 表示匹配任意单个字符,例a.,匹配ab.ac.ad.ax * 表示它前面的字符可以出现任意次,例a*b,匹配aab.b.ab \? 表示它前面的字符可有可无,例a\?b,匹配a

菜鸟的成长记录--LVM

LVM LVM的全名是逻辑卷管理器.之所以成为卷,是应为它可以将文件系统像卷一样伸长或缩短.LVM的做法是将几个物理的分区或磁盘通过软件组合成为一块看起来是独立的大磁盘(VG),然后将这块磁盘在经过分区,分成可使用的分区(LV),最终就能够挂载使用了. PV 物理卷 我们实际的分区需要调整系统标示符(system ID)成为8e(LVM的标示符),然后在经过pvcreate的命令将它转成LVM最底层的物理卷(PV),之后才能够将这些PV加以利用. VG 卷用户组 所谓的LVM大磁盘就是将许多PV

菜鸟的成长——记录自己的每一次错误

作为一个菜鸟,在现在的学习中经常出错,观看视频之后自己编写代码还是很吃力的一件事情,但是这不能打消我的信心,只有自己一次次的更正错误面对困难和解决困难,才会成长,甚至我知道,自己的很多错误是让别人看起来和好笑的,只是,这是必须要经历的,我还是坚信,一切都会在未来的某一天好起来的,只要你每天都在努力. 下面的这个单元测试类,就是今天出错的一个,主要是因为Session和Transaction这些重复的代码提出去之后,在方法中还是没有替换成代表各自的对象名,导致出现了空指针异常. package q

菜鸟vimer成长记——第2.0章、模式初探

首先,其他的文本编辑器只有一种模式,就是插入模式.而vim一下子颠覆了我们的世界观——有好多模式.这个是思维上的切换,很难也很重要!!! 其次,Vim 提供一个区分模式的用户界面.也就是说在不同的模式下相同的键位可能产生的结果不一样.好多快捷怎么记忆?记忆后过段时间不使用又还给vim了.这个是因为没有弄清楚职责和使用场景,没有构建成套的vim知识体系.而我们这里通过模式为载体来构建vim知识体系. 目的 介绍vim的常用模式职责及模式切换,减少由于不断思考和纠正什么场景用什么模式的什么操作而引起

Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持

在Google官方Android设计指南中(链接:http://www.apkbus.com/design/get-started/ui-overview.html)有一个新特性就是自我标识,也就是宣传自己,所以很多应用现在也自然的使用ActionBar并提供自己的logo. 微信的应用: Google的Android设计指南中是这样说的:应用的 启动图标 作为启动应用的入口是展示 logo 的最佳场所.你也可以将启动图标放置在 操作栏 上,从而保证在应用内的所有页面上都能看到它. 在使用Act

记录Linux启动流程的工具bootchart

/*********************************************************************  * Author  : Samson  * Date    : 04/28/2014  * Test platform:  *              3.11.0-12-generic #19-Ubuntu  *              GNU bash, version 4.2.45  * ****************************

Android菜鸟的成长笔记(27)——SurfaceView的使用

前面有关自定义View中进行了绘图,但View的绘图机制存在如下缺陷: 1.View缺乏双缓冲机制. 2.当程序需要更新View上的图像时,程序必须重绘View上显示的整张图片. 3.新线程无法直接更新View组件. 由于View存在上面缺陷,所以在游戏开发中一般使用SurfaceView来进行绘制,SurfaceView一般会与SurfaceHolder结合使用,SurfaceHolder用于向与之关联的SurfaceView上绘图,调用SurfaceView的getHolder()方法即可获