- 熟悉centos的同学都知道有网的时候可以使用yum解决依赖问题,但是万一企业里服务器不让连外网呢?有童鞋想到了说,我挂系统镜像,一俩台可以手动挂,10多台的时候,你还手动挂吗,而且系统完全镜像这个东西,动不动5G往上,比较浪费磁盘空间,所以这里决定搭建一个ftp服务器,当做yum源
- ftp服务器挂载镜像
mkdir /mnt/cdrom
mount -o loop /opt/rhel-server-5.7-x86_64-dvd.iso /mnt/cdrom/
#看到下面类似的提示说明成功了
#mount: block device /dev/sr0 is write-protected, mounting read-only
#在/mnt/cdrom 目录下就有iso文件里的所有内容,而不是iso文件。需要时也可以加上参数iso9660
#mount -t iso9660 -o loop xxx.iso /some/path
- 打包备份所有默认配置的yum源,
tar -czvf repo.tar.gz /etc/yum.repos.d/CentOS-*
,删除所有的reporm -f /etc/yum.repos.d/*.repo
- 编辑ftp服务器yum源配置
# iso.repo 是自定义的名称,随便取
# vi /etc/yum.repos.d/iso.repo
# 名称,自定义
[iso]
name=iso
# yum 软件包路径
baseurl=file:///mnt/cdrom
# 启用这个仓库
enabled=1
# 不启用包检查
gpgckeck=0
# 这个去/mnt/cdrom/目录下去找GPG-KEY的文件的文件名
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
yum clean all
yum install vsftpd
mkdir /yum
-
vi /etc/vsftpd/vsftpd.conf
并增加匿名用户root目录(默认已经启用匿名访问)anon_root=/yum/
- 关闭selinux,
vi /etc/selinux/config
,设置SELINUX=disabled
,保存退出,执行setenforce 0
使改变的内容生效,这一步不执行的话会导致使用浏览器打开ftp服务器看不到文件
iptables -F
如果不想把所有防火墙的过滤规则都去掉,可以执行netstat -tunpl | grep ftp
如果显示netstat:command not found
yum install net-tools 就好
查看ftp占用的端口,并给ftp端口开启iptables白名单
vi /etc/sysconfig/iptables
添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
保存退出
重启iptables:service iptables restart
- 启动ftp服务,service vsftpd start
- 现在,同网段的机器可以通过ftp://ftp服务器ip地址可以访问到ftp服务器的目录:/yum/
- 安装repo创建工具:
yum -y install createrepo
- 拷贝镜像里的rpm包到/yum/目录:
cp -r /mnt/cdrom/Packages/ /yum
,也就是ftp目录,这里你可以去爬163,阿里或者其他yum源的软件包到你本地
- 创建自定义repo:
createrepo /yum/
,创建完成后会在/yum/
目录下生成一个repodata
的文件夹:
[root@localhost yum]# ls /yum/
Packages repodata
- 在另一台内网机器上打包备份所有默认配置的yum源,
tar -czvf repo.tar.gz /etc/yum.repos.d/CentOS-*
,删除所有的reporm -f /etc/yum.repos.d/*.repo
编辑其repo文件
# vi /etc/yum.repos.d/ftp.repo
[ftp]
name=ftp
# yum 软件包路径
baseurl=ftp://ftp服务器ip地址/
# 启用这个仓库
enabled=1
# 不启用包检查
gpgckeck=0
# GPG KEY 文件
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
-
yum clean all
,然后就可以用yum 继续愉快的装软件了
- 卸载镜像
umount /mnt/cdrom
,卸载之后,你的ftp服务器上的repo文件对应的baseurl也要修改成ftp地址
- 详细的关于yum源的信息可参考linux yum源配置