解决内网搭建本地yum仓库。

一、使用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程序 会自动往下查找的

转载于:https://my.oschina.net/u/3651233/blog/1616114

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值