设为首页 收藏本站
查看: 277|回复: 0

[经验分享] 创建本地安装库YUM

[复制链接]

尚未签到

发表于 2015-10-23 10:01:28 | 显示全部楼层 |阅读模式
首先简单的比较一下,传统的LINUX下的软件安装,几乎到了令初学者崩溃的地步,很多人是驾驭不了软件安装,最终选择了放弃LINUX,我完全从Windows转到LINUX上来也有2年多的时间,之前也是一直徘徊在双系统和虚拟机之间。
   传统的软件安装需要使用者具有良好的软件或是程序设计基础,有些情况下还要修改内核和编译源代码,结果在安装时就晕了,就算有时同一种编译方法,环境的不同也会使喜欢LINUX的朋友们屡屡失败。
   本文主要讲解的是本地安装库的创建,基于RHEL5,在最后还会涉及一个关于第三方软件库的配置,也是目前我电脑上的配置。
   yum, Yellow dog Update, Modified.它是使用了rpm作为了后端平台,加上自动获取依赖关系而闻名,充分的体验了其在依赖性关系解决方面的优势,也让几个主要的LINUX发行版引以为傲,如red hat, suse, 还有国内的一些发行版,另外一大阵营,则是以debian所带领的使用的dpkg安装方式,这里就不做介绍了。
   首先,我们先来创建本地安装源,然后再介绍yum如何使用.
Part I. 如何创建本地安装源
第一步, 选定一个安装源的存放目录
     因为我的电脑里装有ftp服务器,所以我将安装源的路径指定到ftp的默认目录之下,如
     [iyunv@bruce ~]# mkdir /var/ftp/pub/repo
     然后将RHEL5的安装光盘放入光驱,挂载并将内容全部copy至刚才创建的目录中:
     [iyunv@bruce ~]# mount /dev/cdrom /mnt
     [iyunv@bruce ~]# cp -R /mnt/* /var/ftp/pub/repo
第二步,安装本地源关系创建工具createrepo
     [iyunv@bruce mnt]# cd Server/
     [iyunv@bruce Server]# pwd
     /mnt/Server
     [iyunv@bruce Server]# rpm -ivh createrepo-0.4.11-3.el5
第三步,创建源依赖性关系
     Red Hat 所分发的软件,其中已经针对光盘介质做好了软件包的依赖关系,重新移动位置后,我们需要重新创建这个关系,操作起来差不复杂,因为它集成了相关的文件,我们只需参数文件来创建即可,说的那么复杂,其实所有的动作都是电脑完成,我们只需要打一条命令即可。
     [iyunv@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目录,里面存放了系统大部分的软件包,
[iyunv@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这一个库,下面我们只要以相类似的方法依次创建就好了
    [iyunv@bruce ~]# createrepo -g /var/ftp/pub/repo/VT/repodata/comps-rhel5-vt.xml /var/ftp/pub/repo/VT/
    [iyunv@bruce ~]# createrepo -g /var/ftp/pub/repo/Cluster/repodata/comps-rhel5-cluster.xml /var/ftp/pub/repo/Cluster
    [iyunv@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结尾的文件都会被认为是安装库的配置文件。
[iyunv@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缓存中的信息清除,以防止无法完成更新
[iyunv@bruce ~]# yum clean all
开启ftp服务,否则肯定安装不了软件,当然如果你使用的是http或是其他方式就做相应的动作。
[iyunv@bruce ~]# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
[iyunv@bruce ~]# chkconfig vsftpd on
[iyunv@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使用,网上可以下载得到,我们接下来的文章再介绍.
  

  YUM的配置:
只要把 yum的更新地址改成开源的就行了。
而限定yum更新地址的文件在/etc/yum.repos.d/里,先把它们改成备份文件,即在后面加.bak。
mv  /etc/yum.repos.d/rhel-debuginfo.repo  /etc/yum.repos.d/rhel-debuginfo.repo.bak
mv  /etc/yum.repos.d/rpmforge.repo.rpmnew  /etc/yum.repos.d/rpmforge.repo.rpmnew.bak


建立新的配置文件:
cd  /etc/yum.repos.d
touch  rhel-debuginfo.repo  mirrors-rpmforge  rpmforge.repo


编辑配置文件1:
vi rhel-debuginfo.repo
[base]
name=CentOS-5 - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever5&arch=$basearch&
repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://ftp.sjtu.edu.cn/centos/5/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#released updates
[update]
name=CentOS-5 - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=updates
baseurl=http://ftp.sjtu.edu.cn/centos/5/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#packages used/produced in the build but not released
[addons]
name=CentOS-5 - Addons
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=addons

baseurl=http://ftp.sjtu.edu.cn/centos/5/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#additional packages that may be useful
[extras]
name=CentOS-5 - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=extras

baseurl=http://ftp.sjtu.edu.cn/centos/5/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5 - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=centosplus
baseurl=http://ftp.sjtu.edu.cn/centos/5/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#contrib - packages by Centos Users
[contrib]
name=CentOS-5 - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=contrib
baseurl=http://ftp.sjtu.edu.cn/centos/5/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

# vi dag.repo
[dag]
name=Dag RPM Repository for RHEL5
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el5/en/$basearch/dag/
enabled=1
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt


编辑配置文件2:
vi  mirrors-rpmforge
http://apt.sw.be/redhat/el5/en/$ARCH/dag
http://archive.cs.uu.nl/mirror/dag.wieers/redhat/el5/en/$ARCH/dag
http://ftp2.lcpe.uni-sofia.bg/freshrpms/pub/dag/redhat/el5/en/$ARCH/dag
#http://ftp.heanet.ie/pub/freshrpms/pub/dag/redhat/el5/en/$ARCH/dag
http://ftp-stud.fht-esslingen.de/dag/redhat/el5/en/$ARCH/dag
http://mirror.cpsc.ucalgary.ca/mirror/dag/redhat/el5/en/$ARCH/dag
http://mirrors.ircam.fr/pub/dag/redhat/el5/en/$ARCH/dag
http://rh-mirror.linux.iastate.edu/pub/dag/redhat/el5/en/$ARCH/dag
http://rpmfind.net/linux/dag/redhat/el5/en/$ARCH/dag
http://wftp.tu-chemnitz.de/pub/linux/dag/redhat/el5/en/$ARCH/dag
http://www.mirrorservice.org/sites/apt.sw.be/redhat/el5/en/$ARCH/dag


编辑配置文件3:
vi  rpmforge.repo
# Name: RPMforge RPM Repository for Red Hat Enterprise 5 - dag
# URL: http://rpmforge.net/
[rpmforge]
name = Red Hat Enterprise $releasever - RPMforge.net - dag
#baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1


如果速度慢的话可以通过增加yum的超时时间,这样就不会总是因为超时而退出。
vi  /etc/yum.conf
加上这么一句:timeout=120

还有一个包需要安装:rpmforge-release-0.3.6-1.el5.rf.i386.rpm
如果不安装的话有可能会出现以下错误:GPG key retrieval failed: [Errno 5] OSError: [Errno 2] 没有那个文件或目录: '/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag'

接下来就是输入KEY了。
rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

rpm --import http://mirror.be10.com/centos/RPM-GPG-KEY-CentOS-5


加速yum
yum  install  yum-fastestmirror  yum-presto
指定或去掉软件源的mirror:
可以在baseurl中将比较慢的mirror去掉
你的yum镜像的速度测试记录文件:
/var/cache/yum/timedhosts.txt

yum Existing lock 错误的解决办法
如果系统启动的时候, yum 出现Existing lock /var/run/yum.pid: another copy is running as pid 3380. Aborting. 可以用下面的办法解决:
/etc/init.d/yum-updatesd  stop
也可以用以下方法:
rm  -f  /var/run/yum.pid
主要原因就是yum在自动更新只要关掉它就可以了
  

  

  

  转自:http://bbs.iyunv.com/forum.php?mod=viewthread&tid=1956122
  http://bbs.iyunv.com/forum.php?mod=viewthread&tid=1978985

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-129861-1-1.html 上篇帖子: Linux学习笔记之RedHat Enterprise Linux 6.4 使用 Centos 6 的yum源问题 下篇帖子: 配置本地yum源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表