本文主要是介绍关于Yum的种种事项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
话题1: 安装yum
在RH7环境下,yum是系统自带的软件。但是这个软件是需要花钱才能用的。所以要想使用免费的yum,就必须把原来的删掉,然后换新的。具体步骤如下:
1. 卸载原有的 Yum
rpm -qa | grep yum | xargs -e --nodreps
2. 下载五个包
国内的镜像在这里:
http://mirrors.163.com/centos/7/os/x86_64/Packages/
yum-3.4.3-158.el7.centos.noarch.rpm
yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm
python-iniparse-0.4-9.el7.noarch.rpm
python-urlgrabber-3.10-8.el7.noarch.rpm
具体的命令是:
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-158.el7.centos.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-8.el7.noarch.rpm
注意,上面的文件可能会因为网站上的原文件更新而找不到。所以在执行wget命令之前最好先去目标网站上看一下,核对文件名
然后cd到 /root/Downloads/ 执行下面的命令就可以安装上面的文件
rpm -ivh python-urlgrabber-3.10-8.el7.noarch.rpm
rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm
注意,最后一个命令是将两个包同时安装否则会因为这两个包互相依赖性而出错
如果没有 python-urlgrabber-3.10-8.el7.noarch.rpm 那么也需要安装一下
3. 下载和配置163的repo文件
配置文件的地址在:
http://mirrors.163.com/.help/CentOS6-Base-163.repo
可以使用wget命令下载
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
这个文件下来之后要修改一下:将里面的变量 $releasever 全部替换为你的linux的版本。比如你是linux7.5的那么就把这个 $releasever 替换为 7 就可以了。
然后把这文件复制到 /etc/yum.repos.d 文件夹内。如果原文件夹里有别的 .repo 文件,就先备份一下
改名的命令是 :mv file_current file_back ,然后应该可以正常使用yum了。
需要说明的是:
即使你已经配置好了这个163的yum源,当你使用yum 安装软件的时候,其实你还会看到有报错说:This system is not registered, 这个没关系的
话题 2 关于yum源的几个问题
1.如果机器不认手写的yum源,那么需要检查两个问题:1,你手写yum源是否以 .repo 结尾。 2, 你手写的yum源的repo id,即开头以中括号 [] 包裹的那个参数是不是与现有的yum源的某个repo id重名。
2.在使用本地光盘作为yum源中的一个时,如果在yum makecache命令时报错说"Couldn't open file /mnt/cdrom_01/Packages/repodata/repomd.xml",那么往往是你把yum源设置成了光盘的Packages 文件夹。
解决这个问题,需要把yum源的路径设置为Packages的上一层即光盘的根目录才行。/repodata/repomd.xml这个文件是存放在光盘的根目录下的。
repomd.xml这个文件就是安装源的索引库文件,而/repodata必定是一个与/Packages平行的文件夹。所以每次必须把/Packages文件夹的上一级路径作为yum源的baseurl。
所以应该把 baseurl=file:///mt/cdrom_01/Packages
改为:光盘的根目录即:baseurl=file:///mnt/cdrom_01/
或者,你也可以把光盘的Packages文件考到你的机器里,比如:/tmp
然后你需要执行 createrepo /tmp ,这个时候就会在 /tmp 目录下生成一个 /repodata/repomd.xml 的文件,然后你就可以使用 tmp目录作为yum源了。注意:这个命令不可以写成 createrepo /tmp/,否则就会报错
需要注意的是:如果使用的cdrom做的yum源,那么每次重启机器之后都要重新挂载光驱,不然yum命令会报错。
3将本地的rpm安装包做成ftp的yum源的方法
yum install -y vsftpd
systemctl restart vsftpd
cp /mnt/cdrom/Package/* /var/ftp
createrepo /var/ftp #这个命令用于生成一个Packages文件夹下的所有rpm文件的索引
然后在另一台机器上可以执行
yum-config-manager --add-repo=ftp://192.168.100.1
echo gpgcheck=0 >> /etc/yum.repos.d/192.168.100.1.repo
或者在/etc/yum.repos.d/路径下vim一个新的repo文件,比如cd.repo
然后写入以下代码:
[FtpSource]
name=FtpSource
baseurl=ftp://192.168.100.1
echo gpgcheck=0
enabled=1
然后保存退出,这样就可以服务器上的yum源了
4.关于gpgkey
开启gpgcheck后,通过gpgkey来指定,相应的gpg文件
如果不指定gpgkey文件,那么就必须手动的导入相应的gpg文件,
比如:rpm --import http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-7
必须手动的敲入这条命令。
有两台机器都是用RH7的光盘做的yum源,配置文件里都有 gpgcheck=1 的代码。比如,第一台机器里除了光盘的yum源还有163的yum源,这个163的yum源里也有gpgcheck=1的代码和gpgkey的网址,第二台机器只有光盘的 yum 源。这时执行 yum makecache 命令,第二台机器会报错说gpgkey 找不到,第一台不会报错。
这个情况估计是因为yum源里只要有一个带gpgkey的系统就会使用这个gpgkey去检验到其他yum源了。
5. 一个完整的yum源包含两个要素。首先是rpm软件包 二是索引数据库文件 如果你只是把一堆rpm的软件包都放到一个文件夹里 比如 /var/ftp 那么这个文件还不能做为yum源,要使用createrepo /var/ftp 生产这些软件包的索引数据库和依赖性关系的repodata文件夹,里面有个repodb.xml就是数据库文件,然后就可以做为yum源来用了。
createrepo 这个命令是针对含有软件安装包的那个文件夹进行的,如果是RHEL的光盘,就以Packages文件夹作为操作对象来生成这些安装包的repodb.xml文件。
查询一个命令的来源: yum provides rz,这个命令就可以查询到一个命令为rz的来源程序。如果这个程序没有安装,也可以查出来再安装。
6. yum-config-manger命令找不到的解决方法
出现这个问题是因为系统默认没有安装yum-utils软件要使用yum -y install yum-utils手动安装一下,然后就可以正常使用yum-config-manager这个命令
常用命令:
yum makecache:生成本地缓存用于存放yum源的信息这个
yum repolist:用于查询本地都有哪些yum源
yum createrepo /path : 当path目录下还有另一个含有rpm文件包的文件夹时,比如光盘里的/Packages,生成一个与/Packages平行的文件夹/repodata存放创建该yum源所需的repomd.xml文件
yum-config-manager --add-repo=path :用于生成一个yum源的.repo文件。这个文件将被创建于/etc/yum.repos.d/目录下,名字就是path的最后一位路径名。创建好了之后需要修改这个文件,增加gpgkey=0或1的选项。
yum provides app_name:查找名为app_name的安装包在哪个源里
7 关于createrepo命令
如果要把 /var/ftp/pub/y um_repo 这个文件夹变成一个yum源,
那么需要首先执行 createrepo /var/ftp/pub/yum_repo 命令,来生成一个依赖性关系数据库
但是这个命令不能写作createrepo /var/ftp/pub/yum_repo/
另外 RHEL6的Linux里没有createrepo命令需要自己安装
这篇关于关于Yum的种种事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!