软件安装:RPM、SRPM 与 YUM 功能

一、Linux 界的两大主流:RPM 与 DPKG

目前在 Linux 界软件安装方式最常见的有两种,分别是:

  • dpkg:只要是派生于 Debian 的其它 Linux 大多使用 dpkg 这个机制来管理软件,包括 Ubuntu、B2D 等。
  • RPM:CentOS、Red Hat 等都是使用它。

二、什么是 RPM 与 SRPM

RPM 全名是“RedHat Package Manager”。RPM 是一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。
  SRPM 是 Source RPM 的意思,也就是这个 RPM 文件里面含有源代码。
  两者区别如下:

文件格式 文件名格式 直接安装与否 内含程序类型 可否修改参数并编译
RPM xxx.rpm 已编译 不可
SRPM xxx.src.rpm 不可 未编译的源代码

文件名的含义:

rp-pppoe-      3.1                            -              5                      .i386                        .rpm
软件名称        软件的版本信息                      发布的次数       适合的硬件平台       扩展名

三、什么是 i386、i586、i686、noarch、x86_64

平台名称 适合平台说明
i386 几乎适用于所有的 x86 平台,不论是旧的 pentum 或者是新的 Intel Core 2 与 K8 系列的 CPU 等等,都可以正常的工作!那个 i 指的是 Intel 兼容的 CPU 的意思,至于 386 不用说,就是 CPU 的等级啦!
i586 就是针对 586 等级的计算机进行优化编译。那是哪些 CPU 呢?包括 pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU (socket 7 插脚) 等等的 CPU 都算是这个等级;
i686 在 pentun II 以后的 Intel 系列 CPU ,及 K7 以后等级的 CPU 都属于这个 686 等级! 由于 目前市面上几乎仅剩 P-II 以后等级的硬件平台,因此很多 distributions 都直接释出这种等级的 RPM 文件。
x86_64 针对 64 位的 CPU 进行优化编译设定,包括 Intel 的 Core 2 以上等级 CPU ,以及 AMD 的Athlon64 以后等级的 CPU ,都属于这一类型的硬件平台。
noarch 就是没有任何硬件等级上的限制。一般来说,这种类型的 RPM 文件,里面应该没有 binary program 存在, 较常出现的就是属于 shell script 方面的软件。

四、RPM 安装:install

rpm -ivh package_name
选项与参数:
-i:install 的意思
-v:查看更详细的安装信息画面
-h:以安装信息列表显示安装进度

范例一:安装原版光盘上的 rp-pppoe 软件
rpm -ivh /mnt/Packages/rp-pppoe-3.11-5.el7.x86_64.rpm

范例二:一次安装多个软件
rpm -ivh a.i386.rpm b.i386.rpm *.rpm

范例三:直接由网络上的某个文件安装,以网址来安装
rpm -ivh http://website.name/path/pkgname.rpm

RPM安装时常用的选项与参数说明

可下达的选项 代表意义
--nodeps 使用时机:当发生软件属性相依问题而无法安装,但你执意安装时
危险性:软件会有相依性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性相依, 则可能会造成该软件的无法正常使用!
--replacefiles 使用时机:如果在安装的过程当中出现了『某个文件已经被安装在你的系统上面』的信息, 又或许出现版本不合的讯息 (confilcting files) 时,可以使用这个参数来直接覆盖文件。
危险性:覆盖的动作是无法复原的!所以,你必须要很清楚的知道被覆盖的文件是真的可以被覆盖喔!否则会欲哭无泪!
--replacepkgs 使用时机:重新安装某个已经安装过的软件!如果你要安装一堆 RPM 软件文件时,可以使用 rpm -ivh *.rpm ,但若某些软件已经安装过了, 此时系统会出现『某软件已安装』的信息, 导致无法继续安装。此时可使用这个选项来重复安装喔!
--force 使用时机:这个参数其实就是 --replacefiles 与 --replacepkgs 的综合体!
--test 使用时机:想要测试一下该软件是否可以被安装到使用者的 Linux 环境当中,可找出是否有 属性相依的问题。范例为:rpm -ivh pkgname.i386.rpm --test
--justdb 使用时机:由于 RPM 数据库破损或者是某些缘故产生错误时,可使用这个选项来更新软件 在数据库内的相关信息。
--nosignature 使用时机:想要略过数字签名的检查时,可以使用这个选项。
--prefix 新路径 使用时机:要将软件安装到其他非正规目录时。举例来说,你想要将某软件安装到 /usr/local 而非正规的 /bin, /etc 等目录, 就可以使用『 --prefix /usr/local 』来处理了。
--noscripts 使用时机:不想让该软件在安装过程中自行执行某些系统指令。
说明:RPM 的优点除了可以将文件放置到定位之外,还可以自动执行一些前置作业的指令, 例如数据库的初始化。 如果你不想要让 RPM 帮你自动执行这一类型的指令,就加上他吧!

五、RPM 升级与更新(upgrade/freshen)

参数 差别
-Uvh 后面接的软件即使没有安装过,则系统将予以直接安装;若后面接的软件有安装过旧版,则系统自动更新至新版
-Fvh 如果后面接的软件并未安装到你的 Linux 系统上,则该软件不会被安装;亦及只有已安装到你 Linux 系统内的软件会被“升级”

六、RPM 查询(query)

rpm -qa                    <==已安装软件
rpm -q[licdR]            <==已安装软件
rpm -qf 存在于系统上面的某个文件名    <==已安装软件
rpm -qp[licdR] 未安装的某个文件名称    <==查阅 RPM 文件
参数:
查询已安装软件的信息:
-q :仅查询,后面接的软件名称是否有安装;
-qa :列出所有的已经安装在本机 Linux 系统上面的所有软件名称;
-qi :列出该软件的详细信息,包含开发商、版本与说明等;
-ql:列出该软件所有的文件与目录所在完整文件名;
-qc :列出该软件的所有设置文件;
-qd :列出该软件的所有帮助文件;
-qR :列出该软件有关的依赖软件所含的文件;
-qf :由后面接的文件名称找出该文件属于哪一个已安装的软件

七、卸载 RPM 与重建数据库

卸载:
rpm -e 软件名称

重建数据库:
rpm --rebuilddb

八、YUM 在线升级机制

查询功能

如果想要利用 yum 来查询原版 distribution 所提供的软件,或已知某软件的名称,想知道该软件的功能, 可以利用 yum 相关的参数为:

yum [option] [查询工作项目] [相关参数]
参数:
[option]:主要的参数,包括有:
-y :当 yum 要等待用户输入时,这个选项可以自动提供 yes 的响应;
--installroot=/some/path:将该软件安装在/some/path 中而不使用默认路径
[查询工作项目] [相关参数]:这方面的参数有:
search:搜寻某个软件名称或者是描述 (description) 的重要关键字;
list:列出目前 yum 所管理的所有的软件名称与版本,有点类似 rpm -qa;
info:同上,不过有点类似 rpm -qai 的执行结果;
provides:从文件去搜寻软件!类似 rpm -qf 的功能!

范例一:搜寻磁盘阵列 (raid) 相关的软件有哪些? 
[root@www ~]# yum search raid
已加载插件:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
 * epel: mirror01.idc.hinet.net
============================================================ N/S matched: raid =============================================================
dmraid.x86_64 : dmraid (Device-mapper RAID tool and library)
dmraid.i686 : dmraid (Device-mapper RAID tool and library)
dmraid-devel.x86_64 : Development libraries and headers for dmraid.
dmraid-events-logwatch.x86_64 : dmraid logwatch-based email reporting
kmod-redhat-megaraid_sas.x86_64 : megaraid_sas module for Driver Update Program.
libstoragemgmt-megaraid-plugin.noarch : Files for LSI MegaRAID support for libstoragemgmt
dmraid-events.x86_64 : dmevent_tool (Device-mapper event tool) and DSO
iprutils.x86_64 : Utilities for the IBM Power Linux RAID adapters
mdadm.x86_64 : The mdadm program controls Linux md devices (software RAID arrays)
snapraid.x86_64 : Disk array backup for many large rarely-changed files

  名称和简介匹配 only,使用“search all”试试。

# 在冒号 (:) 左边的是软件名称,右边的则是在 RPM 内的 name 设定 (软件名)
# 瞧!上面的结果,这不就是与 RAID 有关的软件吗?如果想了解 mdadm 的软件内容呢?

范例二:找出 mdadm 这个软件的功能为何
[root@www ~]# yum info mdadm
已加载插件:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
 * epel: mirror01.idc.hinet.net
已安装的软件包
名称    :mdadm
架构    :x86_64
版本    :3.3.2
发布    :7.el7_2.1
大小    :928 k
源    :installed
来自源:updates
简介    : The mdadm program controls Linux md devices (software RAID arrays)
网址    :http://www.kernel.org/pub/linux/utils/raid/mdadm/
协议    : GPLv2+
描述    : The mdadm program is used to create, manage, and monitor Linux MD (software
         : RAID) devices.  As such, it provides similar functionality to the raidtools
         : package.  However, mdadm is a single program, and it can perform
         : almost all functions without a configuration file, though a configuration
         : file can be used to help with some common tasks.

可安装的软件包
名称    :mdadm
架构    :x86_64
版本    :3.4
发布    :14.el7_3.1
大小    :415 k
源    :updates/7/x86_64
简介    : The mdadm program controls Linux md devices (software RAID arrays)
网址    :http://www.kernel.org/pub/linux/utils/raid/mdadm/
协议    : GPLv2+
描述    : The mdadm program is used to create, manage, and monitor Linux MD (software
         : RAID) devices.  As such, it provides similar functionality to the raidtools
         : package.  However, mdadm is a single program, and it can perform
         : almost all functions without a configuration file, though a configuration
         : file can be used to help with some common tasks.

范例三:列出 yum 服务器上面提供的所有软件名称
[root@www ~]# yum list

范例四:列出目前服务器上可供本机进行升级的软件有哪些?
[root@www ~]# yum list updates

范例五:列出提供 passwd 这个文件的软件有哪些
[root@www ~]# yum provides passwd

安装/升级功能

yum [option] [安装与升级的工作项目] [相关参数]
选项与参数:
install :后面接要安装的软件!
update :后面接要升级的软件,若要整个系统都升级,就直接 update 即可

移除功能

yum remove 软件名称
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容