RPMForge是CentOS系统下的软件仓库,拥有4000多种的软件包,被CentOS社区认为是最安全也是最稳定的一个软件仓库。默认的CentOS源,软件太少了,可以添加额外的RpmForge。
安装RPMForge,实验环境 CentOS 6 32bit
1、确认系统是否安装了priority这个yum的插件,这个插件用来保证安装软件时候软件仓库先后次序,一般是默认先从官方base或者镜像安装,然 后从社区用户contribute的软件中安装,再从第三方软件仓库中安装。当然这个次序可以自己更改,为了安全和稳定还是依照这个次序吧….
因为官方提供的软件源,都是比较稳定和被推荐使用的。因此,官方源的顺序要高于第三方源的顺序。
yum install yum-priorities
安装完以后查看 /etc/yum/pluginconf.d/priorities.conf 文件,确认文件中有这一行
[main]
enabled=1
2.编辑/etc/yum.repos.d/ 内的CentOS-Base.repo 档 并加入 下列行: priority=N 建议设定:
[centosplus],[contrib]几行中 ... priority=2
可以手动编辑 /etc/yum.repos.d/ 目录中后缀为.repos的文件来设置软件仓库的先后次序
3、现在开始安装rpmforge的软件仓库
wget -c http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
# 不知道什么架构的用 uname -i 或 getconf LONG_BIT 命令查看
较老版本 86-686 不是64位的
http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
下载最新版本地址和各个版本的地址 : http://repoforge.org/use/
[root@wubolu-centos installation]# rpm -K rpmforge-release-0.5.3-1.el6.rf.i686.rpm
rpmforge-release-0.5.2-2.el6.rf.i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#6b8d79e6)
安装DAG的PGP Key
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# centos 5\6 是使用这个GPL KEY
验证下载包的完整性
[root@wubolu-centos installation]# rpm -K rpmforge-release-0.5.3-1.el6.rf.i686.rpm
rpmforge-release-0.5.2-2.el6.rf.i686.rpm: (sha1) dsa sha1 md5 gpg OK
安装rpmforge
rpm -i rpmforge-release-0.5.3-1.el6.rf.i686.rpm
二,如果既想获得 RHEL 的高质量、高性能、高可靠性,又需要方便易用(关键是免费)的软件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好适合你。这个软件仓库里有很多非常常用的软件,而且是专门针对RHEL设计的,对RHEL标准yum源是一个很好的补充,完全免费使用,由Fedora项目维护,所以如果你使用的是RHEL,或者CentOS,Scientific等RHEL系的linux,可以非常放心的使用EPEL的yum源
EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL,就像在 Fedora 上一样,可以通过 yum install package-name,随意安装软件。
[root@test ~]# rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm(被更新)
[root@test ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
[root@test ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/4/i386/epel-release-4-10.noarch.rpm
/etc/yum.repos.d/epel.repo 正式版,所有的软件都是稳定可以信赖的
/etc/yum.repos.d/epel-testing.repo 测试版
导入key:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel]
name=Extra Packages for Enterprise Linux 6 �C $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 �C $basearch �C Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 6 �C $basearch �C Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[leconte@localhost soft]$ sudo rpm -ivh enca-1.9-4.el5.rf.i386.rpm
warning: enca-1.9-4.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
1:enca ########################################### [100%]
安装时常用的参数如下:
--test 测试安装,并不真实安装而仅仅是测试能否安装。
--nodeps 忽略依赖关系强行安装
--force 强制替换现有版本
--noscripts 仅安装文件不执行附加脚本
[leconte@localhost soft]$ sudo rpm -ivh awstats-6.9-1.noarch.rpm
perl(LWP::UserAgent) is needed by awstats-6.9-1.noarch
[leconte@localhost soft]$ sudo rpm -ivh awstats-6.9-1.noarch.rpm --nodeps
1:awstats ########################################### [100%]
[leconte@localhost rpm]$ file/var/lib/rpm/Packages
/var/lib/rpm/Packages: Berkeley DB (Hash, version 8, native byte-order)
下面我就简单罗列一下rpm最常用的几个查询功能
1.rpm -qa 用来查询系统安装的所有包,a代表all
2.rpm -ql [包名] 用来查询某个包里的文件列表,例如查询包passwd里包含的内容
[leconte@localhost rpm]$ rpm -ql passwd
3.rpm -qi [包名] 用来查询包信息,其中包含包的介绍,作者,打包日期等重要信息。
4.rpm -qf [文件名] 用来查询一个文件所属的rpm包,例如:
[leconte@localhost rpm]$ rpm -qf /etc/passwd
系统配置文件/etc/passwd是属于setup这个包的。
5.rpm -qV [包名] 用来验证某个包中安装的各文件的状态,如果当前文件的大小、md5和安装时数据库里保存的信息不一致,该命令则会将不一致的文件列出来。该命令对于系统出问题的情况下的故障排查很有帮助。
[leconte@localhost soft]$ rpm -qip perl-Git-1.5.5.6-4.el5.i386.rpm
warning: perl-Git-1.5.5.6-4.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
Name: perl-GitRelocations: (not relocatable)
Version: 1.5.5.6Vendor: Fedora Project
Release: 4.el5Build Date: 2009年06月19日 星期五 21时28分05秒
Install Date: (not installed) Build Host: xenbuilder2.fedora.redhat.com
Group: Development/LibrariesSource RPM: git-1.5.5.6-4.el5.src.rpm
Size: 24878License: GPL
Signature: DSA/SHA1, 2009年06月20日 星期六 04时07分18秒, Key ID 119cc036217521f6
Packager: Fedora Project
URL: http://kernel.org/pub/software/scm/git/
Summary: Perl interface to Git
在看具体的例子之前先介绍几个指令:
rpm -qR [包名] 可以用来查询指定包所依赖的内容
rpm -q �Cprovides [包名] 可以用来查询指定包所提供的内容
rpm -q �Cwhatprovides [内容] 可以用来查询哪个包提供了指定内容
rpm -q �Cwhatrequires [内容] 可以用来查看哪些包依赖于指定内容
[leconte@localhost soft]$ rpm -qR time
rpmlib(CompressedFileNames)<= 3.0.4-1
rpmlib(PayloadFilesHavePrefix)<= 4.0-1
[leconte@localhost soft]$ rpm -q --whatprovides "/bin/sh"
很明显,bash这个包提供了/bin/sh,正是由于bash的安装才满足了time的安装需求。
time依赖于bash等包,同时它也提供了一些内容,有可能被别的包依赖:
[leconte@localhost soft]$ rpm -q --provides time
[leconte@localhost soft]$ rpm -q --whatrequires 'time'
[leconte@localhost soft]$ rpm -q --whatrequires '/bin/sh'
和上节类似,rpm -qR和rpm -q �Cprovides这两个查询指令同样可以加上-p参数应用到一个未安装的rpm包,例如
[leconte@localhost soft]$ rpm -qp --provides enca-1.9-4.el5.rf.i386.rpm
warning: enca-1.9-4.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
rpm -e [包名] 用来卸载一个rpm包
rpm -U [包文件] 用来升级一个现有的rpm
[leconte@localhost ~]$ rpm -e php-common
php-common = 5.2.9-4 is needed by (installed) php-pdo-5.2.9-4.i386
php-common = 5.2.9-4 is needed by (installed) php-bcmath-5.2.9-4.i386
php-common = 5.2.9-4 is needed by (installed) php-curl-5.2.9-4.i386
php-common = 5.2.9-4 is needed by (installed) php-dba-5.2.9-4.i386
[leconte@localhost ~]$ rpm -qR php-pdo
[leconte@localhost ~]$ rpm -q --whatrequires php-common