2019独角兽企业重金招聘Python工程师标准>>>
一、使用iso镜像搭建本地yum仓库;
1、挂载镜像到/mnt目录下:
[root@Dasoncheng ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
2、备份配置文件,并删除原配置文件:
[root@Dasoncheng ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
[root@Dasoncheng ~]# rm -rf /etc/yum.repos.d/*
3、创建并编辑dvd.repo文件
[root@Dasoncheng ~]# vim /etc/yum.repos.d/dvd.repo
[root@Dasoncheng ~]# cat /etc/yum.repos.d/dvd.repo
[dvd]
name=install dvd
baseurl=file:///mnt
enable=1
gpgcheck=0
测试:
##刷新repos生成缓存(或者清除yum缓存亦可:# yum clean all):
[root@Dasoncheng ~]# yum makecache
##列出可用安装包(后面带@的就是已经安装的软件):
[aming@Dasoncheng ~]$ yum list |grep @
GeoIP.x86_64 1.5.0-11.el7 @anaconda
NetworkManager.x86_64 1:1.4.0-12.el7 @anaconda
NetworkManager-libnm.x86_64 1:1.4.0-12.el7 @anaconda
NetworkManager-team.x86_64 1:1.4.0-12.el7 @anaconda
NetworkManager-tui.x86_64 1:1.4.0-12.el7 @anaconda
NetworkManager-wifi.x86_64 1:1.4.0-12.el7 @anaconda
OpenIPMI-libs.x86_64 2.0.19-15.el7 @base
OpenIPMI-modalias.x86_64 2.0.19-15.el7 @base
##这就是没有安装的包:
[aming@Dasoncheng ~]$ yum list |grep dvd
389-ds-base.x86_64 1.3.5.10-11.el7 dvd
389-ds-base-libs.x86_64 1.3.5.10-11.el7 dvd
ElectricFence.x86_64 2.2.2-39.el7 dvd
GConf2.x86_64 3.2.6-8.el7 dvd
ImageMagick.x86_64 6.7.8.9-15.el7_2 dvd
ImageMagick-c++.x86_64 6.7.8.9-15.el7_2 dvd
ImageMagick-perl.x86_64 6.7.8.9-15.el7_2 dvd
二、自定义yum本地仓库
这种方式主要针对我们平时已经收藏了一些RPM软件包,我们想把收集起来的RPM包做成自己的YUM仓库,这样便于离线安装,非常灵活方便。
1、创建本地rpm仓库目录(存放rpm包的地方):
##假如设/usr/local/src/ 为我们下载的rpm包目录;
2、 使用createrepo创建索引:
##安装createrepo包;并创建索引。
[root@Dasoncheng ~]# yum -y install createrepo
[root@Dasoncheng ~]# createrepo /usr/local/src/
3、创建并编辑repo文件:
[root@Dasoncheng ~]# vim /etc/yum.repos.d/src.repo
[root@Dasoncheng ~]# cat /etc/yum.repos.d/src.repo
[src]
name=src Yum
baseurl=file:///usr/local/src/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
测试:
##刷新repos生成缓存(或者清除yum缓存亦可:# yum clean all):
[root@Dasoncheng ~]# yum makecache
##这里就不做测试了;
顺带提一下yum只下载 不安装!
法1:安装插件
yum install yum-downloadonly //6以前需要安装这个,现在自带了;
yum install --downloadonly --downloaddir=/usr/local/src <package-name>
这样,就下载到/usr/local/src目录下面了(不安装);
已经安装这个包了,那就:(这样重新安装下载,但会提示没有重新安装!)
yum reinstall -y --downloadonly --downloaddir=/usr/local/src namepackage
法2:修改yum.conf配置
vim/etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1
debuglevel=2
这样,安装和升级的rpm包 都会保存在/var/cache/yum目录下面哦
拓展:
本地YUN源的配置
在linux上安装软件包的时候当遇到软件包之间的依赖关系时,将是一个头疼的问题。所以配置YUM源,让其自动解决依赖关系,安装必须的相互依赖的包。
System-config-packets 调出安装程序。
1 把源文件的内容拷贝到一个目录中。
2 编辑/etc/yum.repos.d/rhel-debuginfo.repo
在[]中的表示仓库的名称
name :指明对仓库的描述
baseurl:仓库的具体位置
注意:如果是本地yun源的话,前面的ftp必须改成file:///不然会发生你意想不到的错误。
enable :为0关闭yum源 为1时开启
gpbcheck :为1表示开启对软件包的验证。
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
用命令:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
引入
createrepo -vg /yum/repodata/respon.xml /yum/
这条命令的respon.xml就是group了,具体大概就是什么软件对应什么的吧。。。反正必须。
3 编辑/usr/lib/python2.4/site-packages/yum/yumRepo.py 找到remote “remote = url + ‘/’+ relative”把/改为源文件的目录如:/yum 配置好后先清一下缓存:yum clean all
然后测试下:yum list
安装某个包试试:yum install httpd-xxx.rpm~
~利用镜像文件做yum源
1 mkdir /media/iso
2 mkdir /media/yum
3 mount –t iso9660 –o loop /path/image.iso /media/cdrom
4 createrepo -o /media/yum/ -g /media/cdrom/Server/repodata/comps-rhel5-server-core.xml /media/cdrom/Server/
解释下这句话: 主要作用是依据comps-rhel5-server-core.xml组文件创建/media.cdrom/Server软件包依赖关系 输出到/media/yum 中
5 在/etc/yum.repo/ 下建个repo文件
[iso]
name=local yum
baseurl=file:///media/cdrom/Server
enable=1
gpgcheck=0
测试下:
先yum clean all 清下缓存
yum install bind
如果不成功
mount –bind /media/yum/repodata /media/cdrom/Server/repodata
在centos下 repodata目录不是放在rpm包同一个目录下的 如果你在repo文件中指定路径到rpm包 会提示找不到repomd.xml这个文件 解决方法就是将路径直到上一层 即repodata目录所在的目录。yum程序 会自动往下查找的