步骤5、客户端编写yum仓库文件。
[root@192 ~]# cd /etc/yum.repos.d //切换目录 [root@192 yum.repos.d]# ls bak2 CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo [root@192 yum.repos.d]# mkdir bak1 //新建文件夹 [root@192 yum.repos.d]# mv *.repo bak1 //将默认的仓库文件移动到该目录下 [root@192 yum.repos.d]# ls bak1 bak2 [root@192 yum.repos.d]# vim ftp.repo //编写新的仓库文件 [ftp] name=ftp baseurl=ftp://192.168.72.10/centos //路径指向服务端的/var/ftp/centos/目录 enabled=1 gpgcheck=0 复制代码
网络异常,图片无法展示
|
网络异常,图片无法展示
|
步骤6、清理yum缓存,重新建立元数据。并测试使用yum能否成功安装软件包。
[root@192 yum.repos.d]# yum clean all && yum makecache 已加载插件:fastestmirror, langpacks 正在清理软件源: ftp Cleaning up everything Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos Cleaning up list of fastest mirrors 已加载插件:fastestmirror, langpacks ftp | 3.6 kB 00:00:00 (1/4): ftp/group_gz | 156 kB 00:00:00 (2/4): ftp/primary_db | 3.1 MB 00:00:00 (3/4): ftp/other_db | 1.2 MB 00:00:00 (4/4): ftp/filelists_db | 3.1 MB 00:00:00 Determining fastest mirrors 元数据缓存已建立 [root@192 yum.repos.d]# yum install httpd -y //测试yum安装,可以成功安装。 复制代码
网络异常,图片无法展示
|
网络异常,图片无法展示
|
4.5 搭建本地epel源仓库
本地epel源仓库的应用场景:
- 在可以连外网的情况下,可以使用国外源或阿里云仓库等。
- 但实际工作中,公司内网常常无法连接外网,这时可以提前搭建本地epel源仓库,即在一台可连通外网的服务器中提前下载好epel源的所有软件包,编写好仓库文件后,在离线的情况下也可以使用yum安装软件包。
- 之后其他主机可以通过http方式或ftp方式使用服务端的epel源仓库。
操作步骤:
步骤1、安装epel源,并下载epel源的所有软件包。
[root@localhost ~]# yum install epel-release //安装epel源 [root@localhost ~]# mkdir centos7 //新建centos7目录 [root@localhost ~]# reposync -r epel -p /centos7/ & //下载同步epel源软件包,下载到/centos7/目录下,&表示放到后台下载 [root@localhost ~]# ls /centos7 epel 复制代码
步骤2、安装createrepo命令(建立元数据的命令),之后使用createrepo命令建立元数据。
[root@localhost ~]# yum -y install createrepo //安装createrepo命令 [root@localhost ~]# createrepo -v /centos7/epel //建立元数据(软件目录、依赖关系) [root@localhost ~]# cd /centos7/epel //切换到centos7/epel 目录下 [root@localhost epel]# ls //查看软件包和元数据 Packages repodata 复制代码
步骤3、切换到/etc/yum.repos.d目录,移走默认仓库文件,编写新的仓库文件。
[root@localhost ~]# cd /etc/yum.repos.d/ //切换至/etc/yum.repos.d/目录 [root@localhost yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo [root@localhost yum.repos.d]# mkdir aaa //创建一个名为aaa的新目录 [root@localhost yum.repos.d]# mv *.repo aaa //将yum仓库中以.repo结尾的文件移动到aaa中 [root@localhost yum.repos.d]# ls aaa [root@localhost yum.repos.d]# vim epellocal.repo //新建yum仓库文件 [epellocal] name=epellocal #设置名称 baseurl=file:///centos7/epel #设置链接地址,路径指向/centos7/epel目录 enabled=1 #开启此yum源 gpgcheck=0 #无需验证公钥 复制代码
其他主机如果想使用这台机器中的epel仓库,可以在本地使用http或ftp方式搭建:
baseurl=http://192.168.72.10/centos7/epel //http方式 baseurl=ftp://192.168.72.10/centos7/epel //ftp方式 复制代码
5 小贴士
5.1 使用命令方式生成仓库文件
以上四种方式都是都是通过手动编写yum仓库文件来配置,也可以直接通过命令来搭建。
命令的方式配置原理和上面的文件配置原理一样,都是写入/etc/yum.repos.d
中,只是命令行是自动生成仓库文件 。
1、外网环境搭建
命令格式:
wget -O /etc/yum.repos.d/name.repo(自定义以repo结尾的文件名) 源路径 复制代码
wget 命令配置阿里云仓库:
wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo 复制代码
2、内网环境搭建
命令格式:
yum-config-manager --add-repo=file:// yum-config-manager --add-repo=ftp:// 复制代码
示例:
yum-config-manager --add-repo=file:///mnt //使用本地源 yum-config-manager --add-repo=ftp://192.168.72.10/centos7 //ftp方式搭建 复制代码
5.2 下载依赖包到本地(但不安装)
当内网的一台主机安装某个软件包却缺少依赖包时,可以先由一台可连接外网的服务器下载依赖包,之后共享给这台主机。
这时可以使用“yum install --downloadonly”命令,该命令可以仅下载所需软件及其依赖包、而不安装软件,大大减少了无外网安装时找依赖包的问题。命令格式如下:
yum install --downloadonly +软件名称 --downloaddir=指定rpm包存放路径 复制代码
例如,下载nginx所需要的依赖包到/mnt/nginx目录内:
yum install nginx --downloadonly --downloaddir=/mnt/nginx