首先简单的比较一下,传统的LINUX下的软件安装,几乎到了令初学者崩溃的地步,很多人是驾驭不了软件安装,最终选择了放弃LINUX,我完全从Windows转到LINUX上来也有2年多的时间,之前也是一直徘徊在双系统和虚拟机之间。
传统的软件安装需要使用者具有良好的软件或是程序设计基础,有些情况下还要修改内核和编译源代码,结果在安装时就晕了,就算有时同一种编译方法,环境的不同也会使喜欢LINUX的朋友们屡屡失败。
本文主要讲解的是本地安装库的创建,基于RHEL5,在最后还会涉及一个关于第三方软件库的配置,也是目前我电脑上的配置。
yum, Yellow dog Update, Modified.它是使用了rpm作为了后端平台,加上自动获取依赖关系而闻名,充分的体验了其在依赖性关系解决方面的优势,也让几个主要的LINUX发行版引以为傲,如red hat, suse, 还有国内的一些发行版,另外一大阵营,则是以debian所带领的使用的dpkg安装方式,这里就不做介绍了。
首先,我们先来创建本地安装源,然后再介绍yum如何使用.
Part I. 如何创建本地安装源
第一步, 选定一个安装源的存放目录
因为我的电脑里装有ftp服务器,所以我将安装源的路径指定到ftp的默认目录之下,如
[root@bruce ~]# mkdir /var/ftp/pub/repo
然后将RHEL5的安装光盘放入光驱,挂载并将内容全部copy至刚才创建的目录中:
[root@bruce ~]# mount /dev/cdrom /mnt
[root@bruce ~]# cp -R /mnt/* /var/ftp/pub/repo
第二步,安装本地源关系创建工具createrepo
[root@bruce mnt]# cd Server/
[root@bruce Server]# pwd
/mnt/Server
[root@bruce Server]# rpm -ivh createrepo-0.4.11-3.el5
第三步,创建源依赖性关系
Red Hat 所分发的软件,其中已经针对光盘介质做好了软件包的依赖关系,重新移动位置后,我们需要重新创建这个关系,操作起来差不复杂,因为它集成了相关的文件,我们只需参数文件来创建即可,说的那么复杂,其实所有的动作都是电脑完成,我们只需要打一条命令即可。
[root@bruce ~]# createrepo -g /var/ftp/pub/repo/Server/repodata/comps-rhel5- server-core.xml /var/ftp/pub/repo/Server/
这句话就是说,按照comps-rhel5-server-core.xml文件中指定的依赖关系来处理我们复制过去的文件,大家可以看到这个Server目录,里面存放了系统大部分的软件包,
[root@bruce mnt]# ls
Cluster RELEASE-NOTES-ko.html RELEASE-NOTES-U4-kn.html
ClusterStorage RELEASE-NOTES-ml.html RELEASE-NOTES-U4-ko.html
EULA RELEASE-NOTES-mr.html RELEASE-NOTES-U4-ml.html
eula.en_US RELEASE-NOTES-or.html RELEASE-NOTES-U4-mr.html
GPL RELEASE-NOTES-pa.html RELEASE-NOTES-U4-or.html
images RELEASE-NOTES-pt_BR.html RELEASE-NOTES-U4-pa.html
isolinux RELEASE-NOTES-ru.html RELEASE-NOTES-U4-pt_BR.html
README-en RELEASE-NOTES-si.html RELEASE-NOTES-U4-ru.html
README-en.html RELEASE-NOTES-ta.html RELEASE-NOTES-U4-si.html
RELEASE-NOTES-as.html RELEASE-NOTES-te.html RELEASE-NOTES-U4-ta.html
RELEASE-NOTES-bn.html RELEASE-NOTES-U4-as.html RELEASE-NOTES-U4-te.html
RELEASE-NOTES-de.html RELEASE-NOTES-U4-bn.html RELEASE-NOTES-U4-zh_CN.html
RELEASE-NOTES-en RELEASE-NOTES-U4-de.html RELEASE-NOTES-U4-zh_TW.html
RELEASE-NOTES-en.html RELEASE-NOTES-U4-en RELEASE-NOTES-zh_CN.html
RELEASE-NOTES-es.html RELEASE-NOTES-U4-en.html RELEASE-NOTES-zh_TW.html
RELEASE-NOTES-fr.html RELEASE-NOTES-U4-es.html RPM-GPG-KEY-redhat-beta
RELEASE-NOTES-gu.html RELEASE-NOTES-U4-fr.html RPM-GPG-KEY-redhat-release
RELEASE-NOTES-hi.html RELEASE-NOTES-U4-gu.html Server
RELEASE-NOTES-it.html RELEASE-NOTES-U4-hi.html TRANS.TBL
RELEASE-NOTES-ja.html RELEASE-NOTES-U4-it.html VT
RELEASE-NOTES-kn.html RELEASE-NOTES-U4-ja.html
我们进入到RHEL5的镜像中可以看到以上标有蓝色字体的文件夹,这些就是RHEL5系列所存放软件包的库了, 下面来个简单的说明:
Server: 系统中大部分的应用软件和工具都存在这里
VT:LINUX虚拟化,就是我们常说的XEN工具库
Cluster:供群集使用的工具库
ClusterStorage:供群集存储使用的工具库
我们上面创建了Server这一个库,下面我们只要以相类似的方法依次创建就好了
[root@bruce ~]# createrepo -g /var/ftp/pub/repo/VT/repodata/comps-rhel5-vt.xml /var/ftp/pub/repo/VT/
[root@bruce ~]# createrepo -g /var/ftp/pub/repo/Cluster/repodata/comps-rhel5-cluster.xml /var/ftp/pub/repo/Cluster
[root@bruce ~]# createrepo -g /var/ftp/pub/repo/ClusterStorage/repodata/comps-rhel5-cluster-st.xml /var/ftp/pub/repo/ClusterStorage/
如果你是RHEL5.1的系统,那么你在每创建一个库时,它就会产生一个错误,以我这个例子来说,应该是已经存在/var/ftp/pub/repo/Server/.olddata这个目录,只要将其删除再重新创建一下就可以了,这个问题在RHEL5.1之后的版本不会出现了。
第四步,选择更新软件时的传输服务
本例中,使用了vsftpd创建的ftp服务器目录存放的更新库,那么我就出于简便,直接使用了ftp的传输服务了。
第五步,更改客户端YUM更新配置文件。
我们先把rhel5中自带的一个repo文件复制成另外一个叫做server.repo,我不建议直接修改原文件,这也是LINUX中很多服务配置时所要做到了。在yum库的创建时,只要是存放在yum.repos.d目录下的以.repo结尾的文件都会被认为是安装库的配置文件。
[root@bruce ~]#cp /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/server.repo
[Server]
name=Red Hat EnterPrise Linux Server
baseurl=ftp://bruce.marsux.net/pub/repo/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[VT]
name=Red Hat EnterPrise Linux VT
baseurl=ftp://bruce.marsux.net/pub/repo/VT
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[Cluster]
name=Red Hat Enterprise Linux Cluster
baseurl=ftp://bruce.marsux.net/pub/repo/Cluster
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ClusterStorage]
name=Red Hat EnterPrise Linux ClusterStorage
baseurl=ftp://bruce.marsux.net/pub/repo/ClusterStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
这样子一个配置文件就完成了,可能大家初次接触的话,看不出来为什么这样写,我们来解释一下:
[....] 代表这个库的名字,必须是唯一的,不可以重复。
name= 是这个库的说明,没有太大的实际意义,只是一个字段说明。
baseurl= 说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file://,ftp://,http://等
enabled=1 说明启用这个更新库,0表示不启用。
gpgcheck=1 表示使用gpg文件来检查软件包的签名
gpgkey= 表示gpg文件所存放的位置,此处也可以有http方式的位置。
然后保存退出。
第六步,安装软件
先将yum缓存中的信息清除,以防止无法完成更新
[root@bruce ~]# yum clean all
开启ftp服务,否则肯定安装不了软件,当然如果你使用的是http或是其他方式就做相应的动作。
[root@bruce ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@bruce ~]# chkconfig vsftpd on
[root@bruce ~]# yum -y install vnc
根据提示进行安装,是不是感觉比rpm以及编译安装方便很多呀?
其实还有很多的参数可供使用,如下:
yum install 软件名1 [软件名2] [...]
yum update [软件名1][软件名2] [...]
yum check-update
yum upgrade [软件1] [软件2] [...]
yum remove | erase 软件名1 [软件名2] [...]
yum list [...]
yum info [...]
yum provides | whatprovides feature1 [feature2] [...]
yum clean [ packages | headers | metadata | dbcache | all ]
yum makecache
yum groupinstall 软件组1 [软件组2] [...]
yum groupupdate 软件组1 [软件组2] [...]
yum grouplist [hidden] [groupwildcard] [...]
yum groupremove group1 [group2] [...]
yum groupinfo 软件组名 [...]
yum search 字符串1 [字符串2] [...]
yum shell [文件名]
yum resolvedep 依赖关系1 [依赖关系2] [...]
yum localinstall rpm包1 [rpm包2] [...]
yum localupdate rpm包1 [rpm包2] [...]
yum reinstall 软件包1 [软件包2] [...]
yum downgrade 软件包1 [软件包2] [...]
yum deplist 软件包1 [软件包2] [...]
yum repolist [all|enabled|disabled]
yum help [command]
以上就是yum全部的可用参数了,自动分析依赖性关系是它最好的一个特点,也是目前最方便的安装方法,但有些时候大家发现这么一个问题,好多软件找不着,这是为什么呢,主要是因为,在企业版的操作系统中,实际部署时不可能会出现那么多的娱乐,影音软件等,当然如果你只是在桌面平台使用,那么,我们只需加上一个第三方的库,或是让Centos的库加入给RHEL5使用,网上可以下载得到,我们接下来的文章再介绍.