Linux—软件包管理器yum安装详解
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum本质上也是属于python的一个模块,打开/usr/bin/yum,我们可以看到其实它执行的是python,并且导入了yum模块。
linux安装软件能够使用yum安装依赖包是一件非常简单而幸福的事情,所以这里介绍一下linux安装yum源流程和操作。
yum 语法
yum [options] [command] [package ...]
- options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
- command:要进行的操作。
- package操作的对象。
yum常用命令
- 1.列出所有可更新的软件清单命令:yum check-update
- 2.更新所有软件命令:yum update
- 3.仅安装指定的软件命令:yum install <package_name>
- 4.仅更新指定的软件命令:yum update <package_name>
- 5.列出所有可安裝的软件清单命令:yum list
-
利用 yum 的功能,找出以 pam 为开头的软件名称有哪些?
[root@www ~]# yum list pam* Installed Packages pam.i386 0.99.6.2-3.27.el5 installed pam_ccreds.i386 3-5 installed pam_krb5.i386 2.2.14-1 installed pam_passwdqc.i386 1.0.2-1.2.2 installed pam_pkcs11.i386 0.5.3-23 installed pam_smb.i386 1.1.7-7.2.1 installed Available Packages <==底下则是『可升级』的或『未安装』的 pam.i386 0.99.6.2-4.el5 base pam-devel.i386 0.99.6.2-4.el5 base pam_krb5.i386 2.2.14-10 base
- 6.删除软件包命令:yum remove <package_name>
- 7.查找软件包 命令:yum search <keyword>
- 8.清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
国内 yum 源
网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。
将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。
安装步骤
1.查看、卸载已安装的yum包
查看已安装的yum包
#rpm –qa|grep yum
[root@zf-test-web01-4 ~]# rpm -e yum-plugin-fastestmirror-1.1.31-34.el7.noarch --nodeps
warning: /etc/yum/pluginconf.d/fastestmirror.conf saved as /etc/yum/pluginconf.d/fastestmirror.conf.rpmsave
[root@zf-test-web01-4 ~]# rpm -e yum-metadata-parser-1.1.4-10.el7.x86_64 --nodeps
[root@zf-test-web01-4 ~]# rpm -e yum-3.4.3-132.el7.centos.0.1.noarch --nodeps
2.进入centos镜像网站找到自己对应系统需要的yum包
查看系统的命令:
[root@zf-test-web01-4 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
查看系统的位数:
[root@zf-test-web01-4 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped
3.下载安装依赖包python、python-iniparse和下载安装yum依赖包
下载安装依赖包python python-iniparse
下载地址http://centos.ustc.edu.cn/centos/6.5/os/x86_64/Packages/
http://mirrors.163.com/centos/6/os/x86_64/Packages/
找到对应包如:python-2.6.6-51.el6.x86_64.rpm python-iniparse-0.3.1-2.1.el6.noarch.rpm
源地址可以从网上找一些速度比较快的,自身测试这两个地址速度还不错。包的名字可能跟上面不同,主要是版本和操作系统位数的不同,建议不要在页面搜索全部,如第一个包只搜索python,第二个包搜索python-iniparse。
安装
#rpm –ivh python-2.6.6-51.el6.x86_64.rpm python-iniparse-0.3.1-2.1.el6.noarch.rpm
下载安装yum包
下载地址http://centos.ustc.edu.cn/centos/6.5/os/x86_64/Packages/
http://mirrors.163.com/centos/6/os/x86_64/Packages/
找到对应包如:http://centos.ustc.edu.cn/centos/6.5/os/x86_64/Packages/
yum- plugin-fastestmirror-1.1.30-14.el6.noarch.rpm
yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
yum-3.2.29-40.el6.centos.noarch.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-3.4.3-132.el7.centos.0.1.noarch.rpm
安装
[root@zf-test-web01-4 ~]# rpm -ivh yum-*
Preparing... ################################# [100%]
Updating / installing...
1:yum-metadata-parser-1.1.4-10.el7 ################################# [ 33%]
2:yum-plugin-fastestmirror-1.1.31-3################################# [ 67%]
3:yum-3.4.3-132.el7.centos.0.1 ################################# [100%]
若安装失败可重新输入此命令并加参数--nodeps –force
rpm -ivh yum-*发现报以下错
error: Failed dependencies:
python-urlgrabber >= 3.10-8 is needed by yum-3.4.3-163.el7.centos.noarch
rpm >= 0:4.11.3-22 is needed by yum-3.4.3-163.el7.centos.noarch
是说python-urlgrabbe的版本必须大于3.10-8
卸载原有python-urlgrabbe安装新的python-urlgrabbe
可以直接进行更新这个软件包
去rpm.pbone.net搜索这个包 python-urlgrabber-3.10-8.el7.noarch.rpm
然后去下载下来 wget ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/7.4/x86_64/os/Packages/python-urlgrabber-3.10-8.el7.noarch.rpm
卸载原来的包 rpm -e --nodeps python-urgrabber-*
安装包 rpm -ivh --nodeps python-urlgrabber-3.10-8.el7.noarch.rpm
查看有没有安装上:[root@localhost ~]# rpm -qa |grep python-url
python-urlgrabber-3.10-8.el7.noarch
说明:此过程报别的错,说几个包相互缺失,就要下载好软件包,然后,rpm -ivh 软件包1 软件包2 ...软件包3(需要并列放置,达到完整安装)
4.更改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/ (操作前请做好相应备份)
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo CentOS-Base.repo
说明:以上还可以参考此链接:https://blog.csdn.net/homewm/article/details/80642851 有一定借鉴意义
以上会遇到:
CentOS 7 报错: "Repository base is listed more than once in the configuration"和"没有可用软件包 XXX"的问题
具体参看:https://blog.csdn.net/wy_bk/article/details/89648052
运行以下命令生成缓存
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
安装过程报错1——“yum clean all之坑”
在Centos7系统中执行yum clean all 之后,发现yum的其他执行都报错了;
要解决,关键在这里:
把/var/cache/yum/ 下面的文件删除了
接下来,如果执行yum repolist all,结果为0;
执行yum list正常的话,那就是/etc/yum.repos.d/*.repo 这货有问题啦,解决这货的问题
接着执行 yum makecache 然后再执行yum update
这样就O啦!