前言:
yum作为一个软件包管理工具,集成了网络下载和本地包管理两个功能,可以说集成了 ftp 和 rpm 的特性,同样功能的软件还有 dnf,目前yum不再有人维护了,但是目前已有功能已经足够使用,因此很多人都不考虑使用dnf ,毕竟用习惯了。
用法:
使用本地ISO镜像作为yum源:
1)首先,将作为源的iso的挂载到系统上
mount -o loop /dev/cdrom /mnt/iso/
或者
mount -o loop /xxx/xxx.iso /mnt/iso/
2)然后将文件iso.repo拷入文件夹/etc/yum.repos.d,如果文件夹/etc/yum.repos.d中有其他*.repo的文件,请备份后删除
iso.repo的内容如下:
[iso]
baseurl=file:///mnt/iso
gpgkey=file:///mnt/iso/RPM-GPG-KEY-redhat-beta
failovermethod=priority
enabled=1
gpgcheck=0
如何确定写入repo文件的url地址?
找到yum源地址,会发现有os,updates,extras等等,os是系统默认软件包,updates是升级软件所使用的包,extras是扩展包,这些标签如果需要都可以配置到repo文件中。
例如,进入os目录,向下找,一直到发现repodata这个目录,那么repodata所在的目录就可以作为写入repo文件的url地址了。该目录就是分析 RPM 软件后所产生的软件属性相依数据放置处!因此,当你要找容器所在网址时, 最重要的就是该网址底下一定要有个名为 repodata 的目录存在!那就是容器的网址了!
repo文件中个字段的含义
[base]:代表容器的名字!中刮号一定要存在,里面的名称则可以随意取。但是丌能有两个相同的容器名称, 否则 yum 会不知道该到哪里去找容器相关软件列表档案。
name:只是说明一下这个容器的意义而已,重要性不高!
mirrorlist=:列出这个容器可以使用的映射站台,如果不想使用,可以批注到这行;
baseurl=:这个最重要,因为后面接的就是容器的实际网址! mirrorlist 是由 yum 程序自行去捉映像站台, baseurl 则是指定固定的一个容器网址!我们刚刚找到的网址放到这里来啦!
enable=1:就是让这个容器被启动。如果不想启动可以使用 enable=0 喔!
gpgcheck=1:还记得 RPM 的数字签名吗?这就是指定是否需要查阅 RPM 档案内的数字签名!
gpgkey=:就是数字签名的公钥文件所在位置!使用默认值即可
一个问题
yum会缓冲yum源上的数据库到本地的/var/cache/yum文件中,如果在缓冲完成后,手动修改yum源的地址,那么就可能造成远程源的数据库和本地文件中的数据库内容不匹配,这样就会造成yum错误,此时只需要yum clean,便可修复
[root@www ~]# yum clean [packages|headers|all]
选项与参数:
packages:将已下载的软件档案删除
headers :将下载的软件文件头删除
all :将所有容器数据都删除!
范例一:删除已下载过的所有容器的相关数据 (含软件本身与列表)
[root@www ~]# yum clean all
一些命令:
罗列所有yum源
yum repolist all
指定从哪个repo下载
yum install gdb --enablerepo=xxx (xxx是repo文件中的repo名字)
yumdownloader --source kernel --enablerepo=xxx (xxx是repo文件中的repo名字)