Linux笔记--RPM、SRPM与YUM方式安装软件

1. RPM

RPM就是厂商先在他们的系统上编译好了用户所需要的软件,打包成RPM安装包,然后将安装包直接发布给用户去安装。
RPM优点:

  1. RPM内含已经编译过的程序与设置文件等数据,可以让用户免去重新编译的困扰;
  2. RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,避免文件被错误安装;
  3. RPM提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息;
  4. RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证。
  • RPM安装
rpm -ivh a.i386.rpm
rpm -ivh http://website.name/path/pkgname.rpm
// 安装之前可以使用test选项来测试一下该软件是否可以被安装
rpm -ivh pkgname.i386.rpm --test
// 指定安装目录,默认为/usr/local
rpm -ivh pkgname.i386.rpm --prefix=/usr/local/software
  • RPM升级
rpm -Fvh pkgname.i386.rpm
  • RPM查询
// 查询是否有安装nginx软件
rpm -q nginx
// 列出nginx软件安装后的所有目录与文件
rpm -ql nginx
// 列出nginx软件的相关说明数据,包含开发商、版本与说明等
rpm -qi nginx
// 分别找出nginx的设置文件与帮助文件
rpm -qc nginx
rpm -qd nginx
// 列出安装nginx所需的依赖软件
rpm -qR nginx
// 找出文件属于哪个已安装的软件
rpm -qf /bin/sh

上面是查已安装到系统上面的软件信息,这部分信息由/var/lib/rpm提供;如果我们要查未安装的rpm文件内容,就得使用rpm -qp (p是package的意思):

// 找出安装软件的依赖文件
rpm -qpR filename.i386.rpm

在查询本机上面的RPM软件相关信息时,不需要加版本名。因为它会由/var/lib/rpm数据库去查询。但是查某个未安装的RPM文件,就需要指定整个文件名。

  • 卸载RPM
// 如果存在已安装的软件依赖本软件,则卸载不会成功
rpm -e pam
  • 重建rpm数据库
    由于文件经常会安装/删除/升级,某些操作可能会导致RPM数据库/var/lib/rpm内的文件损坏。我们可以使用--rebuilddb重建
rpm --rebuilddb

2. SRPM

通常不同的distribution所发布的RPM文件并不能在其他的distribution上用。如果我们真的需要安装其他distribution提供的好用的RPM软件怎么办?还好,还有SRPM,这个SRPM所提供的软件内容并没有经过编译,它提供的是源码。
  通常一个软件在发布的时候,会同时释出RPM于SRPM。RPM必须在相同的环境下才能安装,而SRPM既然是源码,自然就可以通过修改SRPM内的参数设置文件,然后重新编译成能合适我们Linux环境的RPM文件。
  为何说CentOS是“社区维护的企业版”呢?因为Red Hat公司的RHEL发布后,连带会将SRPM发布。一些社区的朋友就将这些SPRM收集起来并重新编译成所需要的软件,再重新发布成CentOS,真要感谢SRPM啊。

假设我们下载了一个SRPM文件,又不想修改这个文件内的源码与相关设置值,利用rpmbuild直接生产RPM包来安装

rpmbuild --rebuild filename.i386.src.rpm

3. YUM在线升级机制

RPM软件会有所谓的文件依赖问题。要是我们将这些依赖软件先列表,在有要安装软件需求的时候先到这个列表去找,同时与系统内已安装的软件相比较,没有安装的依赖软件就一口气安装起来,那不就解决依赖问题了吗?这就是YUM机制。
  由于distribution必须先要释出软件,然后将软件放置于yun服务器上,以提供客户端来要求安装与升级之用的。因此我们要使用yum的功能,必须要先找到合适的yun server才行。

  • YUM操作
// 查询以pam开头的软件有哪些
yum list pam*
// 安装
yum install pam-devel
// 升级
yum update pam-devel
// 删除
yum remove pam-devel
  • YUM设置文件
    vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容