rpm,yum及源码安装详解

RPM:包统一命名规则,RPM 二进制包的命名需遵守统一的命名规则,用户通过名称就可以直接获取这类包的版本、适用平台等信息。
RPM 二进制包命名的一般格式如下:

包名-版本号-发布次数-发行商-Linux平台-适合的硬件平台-包扩展名

例如,RPM 包的名称是httpd-2.2.15-15.el6.centos.1.i686.rpm,其中:

  1. httped:软件包名。这里需要注意,httped 是包名,而httpd-2.2.15-115.el6.centos.1.i686.rpm 通常称为包全名,包名和包全名是不同的,在某些 Linux 命令中,有些命令(如包的安装和升级)使用的是包全名,而有些命令(包的查询和卸载)使用的是包名,一不小心就会弄错;
  2. 2.2.15:包的版本号,版本号的格式通常为主版本号.次版本号.修正号;
  3. 15:二进制包发布的次数,表示此 RPM 包是第几次编程生成的;
  4. el*:软件发行商,el6 表示此包是由 Red Hat 公司发布,适合在 RHEL 6.x(Red Hat Enterprise Unux) 和 CentOS 6.x 上使用;
  5. centos:表示此包适用于 CentOS系统;
  6. i686:表示此包使用的硬件平台;

目前的 RPM 包支持的平台如表 1 所示:

表 1 RPM 包适用的硬件平台

平台名称

适用平台信息

i386

386 以上的计算机都可以安装

i586

686 以上的计算机都可以安装

i686

奔腾 II 以上的计算机都可以安装,目前所有的 CPU 是奔腾 II 以上的,所以这个软件版本居多

x86_64

64 位 CPU 可以安装

noarch

没有硬件限制

语法:

 

rpm (选项) 包名

参数:

-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或--erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;-vv:详细显示指令执行过程,便于排错。
--help  在线帮助。
--httpproxy<主机名称或IP地址>  指定HTTP代理服务器。
--httpport<通信端口>  设置HTTP服务器或代理服务器使用的通信端口。
--ignorearch 不验证套件档的结构正确性。
--ignoreos  不验证套件档的结构正确性。
--ignoresize 安装前不检查磁盘空间是否足够。
--includedocs 安装套件时,一并安装文件。
--initdb  确认有正确的数据库可以使用。
--justdb  更新数据库,当不变动任何文件。
--nobulid  不执行任何完成阶段。
--nodeps  不验证套件档的相互关联性。
--nofiles  不验证文件的属性。
--nogpg  略过所有GPG的签名认证。
--nomd5  不使用MD5编码演算确认文件的大小与正确性。
--nopgp  略过所有PGP的签名认证。
--noorder  不重新编排套件的安装顺序,以便满足其彼此间的关联性。
--noscripts 不执行任何安装Script文件。
--notriggers 不执行该套件包装内的任何Script文件。
--oldpackage 升级成旧版本的套件。
--percent  安装套件时显示完成度百分比。
--pipe<执行指令>  建立管道,把输出结果转为该执行指令的输入数据。
--prefix<目的目录>  若重新配置文件,就把文件放到指定的目录下。
--provides  查询该套件所提供的兼容度。

 

使用实例

实例1:安装包

命令:

 

rpm -ivh 需安装的包名.rpm

说明:

RPM包默认安装路径

通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到表 2所示的目录中。

安装路径

 

/etc/

配置文件安装目录

/usr/bin/

可执行的命令安装目录

/usr/lib/

程序所使用的函数库保存位置

/usr/share/doc/

基本的软件使用手册保存位置

/usr/share/man/

帮助文件保存位置

实例2:升级包

命令:

rpm -Uvh 包全名

实例3:卸载包

命令:

rpm -e 包全名

说明:

RPM 软件包的卸载要考虑包之间的依赖性。例如,我们先安装的 httpd 软件包,后安装 httpd 的功能模块 mod_ssl 包,那么在卸载时,就必须先卸载 mod_ssl,然后卸载httpd,否则会报错。如果卸载 RPM 软件不考虑依赖性,执行卸载命令会包依赖性错误。

RPM 软件包的卸载命令支持使用“-nocteps”选项,即可以不检测依赖性直接卸载,但此方式不推荐大家使用,因为此操作很可能导致其他软件也无法征程使用。

如:rpm -e –nocteps 包全名

实例4:包查询

命令:

rpm -q 包全名

rpm -qa           #查找系统里的所有包

rpm -qi 包名    #查询软件包的详细信息

rpm -ql 包名    #列出软件包所有文件的安装目录

 

yum,全称“Yellow dog Updater,Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像Windows 系统上可以通过360 软件管家实现软件的一键安装、升级和卸载,Linux redhad系统也提供有这样的工具,就是yum

RPM 二进制包安装软件,这两种方法都比较繁琐,需要手动解决包之间具有依赖性的问题,尤其是库文件依赖

语法

yum [options][command][package...]

options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
command:要进行的操作。
package:操作的对象。

常用命令command

1.列出所有可更新的软件清单命令:yumcheck-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install<package_name>
4.仅更新指定的软件命令:yum update<package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove<package_name>
7.查找软件包命令:yum search <keyword>
8.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum cleanoldheaders) :清除缓存目录下的软件包及旧的headers

 

实例

实例5:安装 pam-devel

命令:yuminstall pam-devel

实例6:移除 pam-devel

命令:yumremove pam-devel

说明:

使用 yum 卸载软件包时,会同时卸载所有与该包有依赖关系的其他软件包,即便有依赖包属于系统运行必备文件,也会被 yum 无情卸载,带来的直接后果就是使系统崩溃。除非你能确定卸载此包以及它的所有依赖包不会对系统产生影响,否则不要使用 yum 卸载软件包。

实例7:利用 yum 的功能,找出以 pam 为开头的软件包的安装情况

yum list pam*

实例8:从 yum 源服务器上查找与关键字相关的所有软件包samba

yum search samba

 

linux下从源代码编译安装软件的一般步骤

1.下载并解压文件

如果下的压缩文件的后缀是

tar.gz 解压用  tar-xzvf xxx.tar.gz

tar.b2 解压用  tar-xjvf xxx.tar.b2

tar 解压用  tar -xvfxxx.tar

2.配置安装路径

在/usr/local/下创建放置将要安装的软件目录

 

mkdir /usr/local/newApp

cd 到源代码所在的文件夹,配置安装路径

 

./configure --prefix=/usr/local/newApp

(./configure--prefix=/usr/local/指定安装根目录 .--with指的是安装本文件所依赖的库文件。/configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,生成makefile文件)

3.编译源代码

make

如果是多核cpu可以用 make -j来加快编译速度

4.安装

make install

这个过程可能需要root权限

5.删除源代码以节省磁盘空间

rm -rf xxx

第3和第4步可以组合成  make&&makeinstall

当然你也可以把1到4步用一组合命令来执行

一般来说时间花费最长的是在make阶段,比如我从源代码安装boost用了10+分钟,从源代码make gcc4.8的源代码用好几个小时,当然这make的时间也要看机子的配置而定。

观注快乐程序员公众号,每日分享一点小知识。爱编程,爱生活!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值