额,写下这篇文章记录艰辛历程。
yum 是个好东西,关于它的说法,参照别人或者是官网的说法:
yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http 或ftp 站点,也可以是本地软件池,但必须包含rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。
yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。
yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。
yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。
好了,要使用yum来安装软件,两个条件:联网+软件mirror网站(比较快的有:163、ali等,稍后附上连接)。此前使用linux安装软件,为了学习更多东西,故意不用yum,通过外部windows下载好rpm软件包或者tar格式的源码来安装。就是进行离线安装。
这两种安装方式,第一种rpm的,找软件很麻烦,要考虑依赖关系,若依赖复杂的,还是使用yum吧。第二种根据源码,那么就需要一点linux编程一点小小知识就好(其实来个人给你讲解一下步骤也没问题了),需要查看解压后的源码文件,是否有Makefile文件等。若没有,就需要根据configure命令来执行生成Makefile文件,这里需要配置软件的安装路劲等信息,不了解的还真不知道该如何配置。有了Makefile,就可以执行make & make install进行安装了。
使用yum安装,就会很方便。
但是由于redhat版本有点低,显示没有注册RHN,就把redhat自带的yum卸载了
卸载命令如下:
rpm -qa|grep yum|xargs rpm -e --nodeps
然后由于linux版本是redhat 5.3版本,各大仓库,如163,centos,ali等都不能直接通过版本号找到安装yum的三个基本软件:
yum-fastestmirror
yum-metadata-parser
yum
【以上也是安装顺序】
小提示:Centos是RedHat的社区免费版,所以软件基本是通用的。
那么,找遍了很多方法,各大前辈的方法都试过,就是我的情况不行。不能直接上网通过wget命令找到Centos5版本的软件。找到Centos6软件时,yum依赖的其它软件版本又不够高,不可能把它依赖的其它软件重装一遍,如python这一系就有很多。所以方法不行
这里放下方法链接,可能以后有用,或者对其他人有用的其它linux系统版本有用:
RedHat5配置yum源
还一种方法是通过yum的源码安装,比较复杂,难度较大,当下载yum源码后,解压,打开INSTALL文件时,有条官方推荐是说尽量使用rpm软件包安装。最后通过源码安装也因为依赖问题安装失败
。。。。。。。。。
还很多,思路都差不多了。需要注意的是,如果使用wget 去下载软件,那么先自己进一下这个网站,如果自己都打不开这个网站,wget肯定是找不到这个软件的,就会404 not found。有时候由于仓库软件升级更新,更换一下链接上的版本数字就可以,或者从网站主页开始找对应版本就不会有问题
最后几近无望时,想到了此前离线安装gcc时的方法,想到虚拟机软件的老祖宗,就是光驱镜像,镜像中有很多随系统的软件,有些安装了,有些没有安装,那么,yum肯定也是有的。如果你的桌面没有显示cd光驱,就设置一下VM:
然后在linux系统桌面可以看到镜像,打开找到有软件的文件夹,如我的是:
在这个目录下,想办法把需要安装的三个文件:
yum-fastestmirror
yum-metadata-parser
yum
找到并复制到其他文件夹,进行备份到其他文件准备安装,千万不要直接在镜像中安装,防止意外
执行命令
rpm -ivh yum*
安装好后,查看安装软件版本信息,命令:
rpm -qa yum
[root@localhost ~]# rpm -qa yum
yum-3.2.19-18.el5
网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。
将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。
首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份)
运行以下命令生成缓存
yum clean all
yum makecache
除了网易之外,国内还有其他不错的yum源,比如中科大和搜狐。
中科大的yum源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
sohu的yum源安装方法查看: http://mirrors.sohu.com/help/centos.html
参考:
/etc/yum.repos.d/目录下新建一个文件:rhel-debuginfo.repo <------这是此前yum默认的源的文件名称,然后把下面配置复制到文件中即可:
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://vault.centos.org/5.11/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://vault.centos.org/5.11/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://vault.centos.org/5.11/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://vault.centos.org/5.11/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
baseurl=http://vault.centos.org/5.11/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
然后再次yum clean all
yum makecache 应该没有问题了
至此就可以去安装软件了,我的安装yum问题也解决了。
这是redhat5.3版本的情况。高版本的linux可能就不需要这么复杂,可以直接wget正确的地址下载yum的rpm包即可