Linux软件安装,RPM与YUM
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。
http://www.cnblogs.com/shijiaqi1066/p/3843955.html
1 Linux软件安装概述
安装程序的方式:
- 通用二进制格式:直接解压压缩文件,就可以使用。但一定要注意安装平台。
- 软件包管理器:如RPM。
- 软件包管理器的前端工具:如YUM。
- 源代码编译。
1.1 软件包概述
软件包的组成部分:
- 二进制程序,位于 /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin 等目录中。
- 库文件,位于 /lib, /usr/lib, /usr/local/lib 等目录中。Linux中库文件以 .so(动态链接库)或 .a(静态链接库)作为文件后缀名。
- 配置文件,位于 /etc 目录中。
- 帮助文件:手册, README, INSTALL (/usr/share/doc/)
在没有软件包管理器之前,安装程序,卸载程序是非常繁杂的。
软件包管理工具的特性:
- 文件清单
- 文件放置路径
- 提供的功能说明
- 依赖关系
软件包管理器内部有一个数据库,其中记载着程序的基本信息,校验信息,程序路径信息等。
2 RPM
RPM早期被称为RedHat Package Manager,但由于目前RPM非常流行,且已经成为Linux工业标准。所以RPM现在又被称为RPM is Package Manager。
RPM管理支持事务机制。增强了程序安装卸载的管理。
RPM的功能:打包、安装、查询、升级、卸载、校验、数据库管理。
2.1 RPM的缺点
由于Linux中的程序大多是小程序。程序与程序之间存在非常复杂的依赖关系。RPM无法解决软件包的依赖关系。
2.2 RPM包
用RPM工具可以将二进制程序进行打包,包被称为RPM包。RPM包并不是跨平台的。RedHat的RPM包与SUSE的RPM包不能混用。实际上RedHat的安装,初始软件也都是使用RPM包进行安装的。
源程序的命名规范:name-version.tar.{gz|bz2|xz}
版本号:major.minor.release
例:bash-4.3.1.tar.xz
RPM包的命名规范:name-version-release.os.arch.rpm
name:程序名称。
version:程序版本号。
release(发行号):用于标识RPM包本身的发行号,与源程序的release号无关。
os:即说明RPM包支持的操作系统版本。如el6(即rhel6)、centos6、el5、suse11。
arch:主机平台。如i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)
例:bash-4.3.2-5.el6.x86_64.rpm
RPM分包
在把二进制文件打包时,将主要功能打入主包。将辅助功能打入分包。分包在需要的情况下安装,若不需要就可以不安装。
- 主包:核心包。
- 分包:又称为支包。
获取需要的RPM包
互联网中RPM常用站点:
http://mirrors.sohu.com
http://rpmfind.net
http://rpm.pbone.net/
epel
epel是为RedHat提供扩展的RPM包。这些包是Linux安装盘中没有的。该项目目前由Fedora维护。
例:使用网易镜像站查看epel。
点击进入可以看到不同RedHat版本的目录。选定版本,在目录中去寻找需要的RPM。
注意:优先使用Linux光盘中的包。其次考虑epel中的包。尽量不要使用来路不明的RPM包。
RPM包的验正机制
RPM可以验证来源的合法性、软件包的完整性。
2.3 RPM命令的使用
RPM常用选项:
-i:表示安装。
-v, -vv, -vvv:表示详细信息。
-h:以"#"号显示安装进度。
-q:查询指定包名。
-e:卸载指定包名。
-U:升级软件,若未软件尚未安装,则安装软件。
-F:升级软件。
-V:对RPM包进行验证。
--nodeps:忽略依赖关系。
--query:查询指定包名。同-q选项。
--hash:同-h。
--install:表示安装,同-i选项。
--test:仅作测试,不真正执行,可用于测试安装,测试卸载。
--replacepkgs:重新安装。替换原有的安装。
--force:忽略软件包及文件的冲突。
--initdb:新建RPM的数据库。
--r