yum仓库的创建

本文详细介绍如何在CentOS 6环境下搭建FTP服务,并将其配置为CentOS 7的yum仓库,实现通过FTP协议访问本地软件包进行安装升级。文章包括环境准备、禁用SELinux、关闭防火墙等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇博客是yum仓库的配置过程,如果是yum客户端配置请参考 http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_002.html

1 环境介绍

这里我有2个环境,一个centos7,一个centos6环境, 打算使用centos6作为yum仓库,然后使用centos7作为客户端。

2 环境准备

我们知道配置yum的时候我们需要指定baseurl的,只有三种协议支持的,分别是http,ftp,file。这里我们我们选择ftp方式,在centos6机器上安装ftp软件并提供服务。

2.1 安装ftp服务端软件

[root@centos6 ~]# yum install vsftpd -y                #安装vsftpd软件,没有yum配置的话,可以使用rpm安装
[root@centos6 ~]# chkconfig  vsftpd   on               #开机启动
[root@centos6 ~]# service vsftpd start                 #启动ftp服务
Starting vsftpd for vsftpd:                                [  OK  ]

2.2 禁用selinux

[root@centos6 ~]# getenforce                            #查看当前的selinux状态
Enforcing
[root@centos6 ~]# setenforce 0                          #禁用
[root@centos6 ~]# sed -i 's@SELINUX=enforcing@SELINUX=permissive@' /etc/sysconfig/selinux  #修改配置文件

2.3 关闭防火墙

[root@centos6 ~]# service iptables status                      #查看当前的防火墙设置
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

[root@centos6 ~]# service iptables stop                                #关闭防火墙
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[root@centos6 ~]# chkconfig  iptables off                              #开机不启动ftp

2 提供yum仓库文件

2.1 把centos7的包复制到centos6的机器上

[root@centos6 os]# mkdir -pv /var/ftp/pub/yum/centos/7/os/x86_64            #创建对应目录, 这个目录是仿照aliyun的那个目录组织的,清晰,这样客户端可以使用$basearch,$releasevel变量
[root@centos6 os]# mount /dev/sr1 -r /var/ftp/pub/yum/centos/7/os/x86_64    #我这里就直接挂载个光盘,建议使用硬盘文件,而不是光盘
[root@centos6 os]# ll /var/ftp/pub/yum/centos/7/os/x86_64                   

3 测试ftp服务是否正常

由于我们的centos7没有ftp的软件,所以这里使用wget测试下

[root@centos7 yum.repos.d]$wget ftp://172.18.1.159/                          #下载下ftp页面
[root@centos7 yum.repos.d]$ cat index.html  |grep pub                        #查看是否有pub,如果有那就是ftp服务是正常的了
  2017 Nov 21 07:20  Directory   <a href="ftp://172.18.1.159:21/pub/">pub/</a> 

测试发现,我们的centos6提供的ftp一切正常, 可以供centos7使用的。

4 centos7配置测试yum

4.1 配置yum配置文件

[root@centos7 yum.repos.d]$ vim network.repo      #编写repo文件
[root@centos7 yum.repos.d]$ cat network.repo 
[network]
name=network
baseurl=ftp://172.18.1.159/pub/yum/centos/$releasever/os/$basearch/
gpgcheck=0

4.2测试yum配置

[root@centos7 yum.repos.d]$ yum clean all                          #清空缓存
Loaded plugins: fastestmirror, langpacks
Cleaning repos: network
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

[root@centos7 yum.repos.d]$ yum -y install lftp                    #测试安装软件

5 如何给特定的rpm包生成仓库

[root@centos6 test]# yum install createrepo -y                   #创建仓库需要createrepo命令,有createrepo这个包提供
#copy一些rpm包到test目录中。 [root@centos6 test]# createrepo . #在rpm文件里面执行,就可以创建一个仓库

剩下的工作就是把这个目录作为baseurl提供出去了。

 

<think>好的,我现在需要帮助用户解决如何创建和配置Yum本地仓库的问题。首先,我得回忆一下Yum的基本知识,Yum是基于RPM的包管理器,用于Red Hat系列的Linux系统,比如CentOS、Fedora等。用户可能是在使用这些系统,想要在本地建立一个仓库,方便在没有网络的情况下安装软件包,或者加快安装速度。 接下来,我需要整理创建本地仓库的步骤。根据之前学过的知识,大概需要以下几个步骤:挂载ISO镜像或准备RPM包目录,安装必要的工具,生成仓库元数据,配置Yum仓库文件,然后测试验证。我需要确保每一步都正确无误,并且用简单易懂的中文解释清楚。 首先,挂载ISO镜像。用户可能需要从安装介质中获取软件包,这时候需要挂载ISO文件到某个目录,比如/mnt/cdrom。如果用户已经有现成的RPM包目录,可以直接使用,不需要挂载。这里要提醒用户注意挂载命令的使用,比如mount -o loop,以及如何设置开机自动挂载,比如修改/etc/fstab文件。 然后是安装createrepo工具,这个工具用于生成仓库的元数据。如果系统没有安装这个工具,需要用yum install来安装。不过这里可能有个问题,如果用户还没有配置任何仓库,可能需要先挂载ISO才能安装createrepo。这时候可能需要用户先挂载ISO,然后通过rpm命令手动安装createrepo的RPM包,或者配置一个临时的仓库源。但用户的问题是关于创建本地仓库,所以假设用户已经有办法安装createrepo,比如通过ISO中的包。 生成元数据是关键步骤,使用createrepo命令在RPM包目录下执行,这会创建repodata目录,里面包含必要的元数据文件。需要确保用户正确执行这个命令,并且目录路径正确。 接下来是配置Yum仓库文件。Yum仓库配置文件在/etc/yum.repos.d/目录下,通常以.repo结尾。需要指导用户创建一个新的.repo文件,比如local.repo,并正确填写baseurl,指向本地目录。这里需要注意文件系统路径的写法,比如使用file://协议,以及gpgcheck的设置,如果用户不需要GPG验证,可以设为0,但生产环境可能需要启用。 测试部分,用户需要清理Yum缓存,然后列出仓库,确认本地仓库已经启用,并且可以搜索或安装软件包。可能需要提醒用户如果遇到问题,检查路径是否正确,权限是否足够,以及元数据是否生成成功。 另外,引用部分需要正确对应。用户提供的引用中有提到仓库配置文件的位置,比如引用[2]和[4]都提到了/etc/yum.repos.d/目录,所以在步骤中需要提到这一点,并正确标注引用。引用[1]提到的安全性和稳定性,比如GPG验证,也需要在配置文件中提到相关选项,比如gpgcheck=0或1,并建议生产环境启用。 可能还需要考虑用户的环境,比如是否使用Red Hat系统,可能需要订阅,但用户的问题可能更倾向于CentOS或其他免费系统。此外,权限问题,比如用户是否有权限创建目录和写入文件,可能需要提醒使用sudo。 最后,生成相关问题,需要围绕创建Yum仓库的扩展问题,比如如何自动化同步、处理依赖关系、排除冲突等,或者如何将本地仓库共享给其他机器,使用HTTP或FTP服务器,或者如何排除某些软件包。 总结步骤,确保逻辑清晰,没有遗漏关键点,并且语言简洁,用户容易跟随操作。</think>### 如何创建和配置Yum本地仓库 #### 1. 准备RPM包目录或挂载ISO镜像 - **本地RPM包目录**:将需要纳入仓库的RPM包统一存放到一个目录中,例如 `/opt/local_repo`。 - **挂载ISO镜像**(可选): 如果使用系统安装镜像作为本地仓库源,需挂载ISO文件到指定目录: ```bash mkdir /mnt/cdrom mount -o loop /path/to/your.iso /mnt/cdrom # 临时挂载 ``` 若需永久挂载,可编辑 `/etc/fstab` 并添加: ```bash /path/to/your.iso /mnt/cdrom iso9660 loop 0 0 ``` #### 2. 安装生成仓库元数据的工具 安装 `createrepo` 工具来创建仓库元数据: ```bash yum install -y createrepo # 需要已有可用Yum源[^3] ``` #### 3. 生成仓库元数据 在RPM包目录或挂载点中执行: ```bash createrepo /opt/local_repo # 自定义目录 # 或 createrepo /mnt/cdrom # 挂载的ISO目录 ``` 此命令会生成 `repodata` 目录,包含仓库所需的元数据文件[^1]。 #### 4. 配置Yum仓库文件 在 `/etc/yum.repos.d/` 目录下新建配置文件(例如 `local.repo`): ```bash vi /etc/yum.repos.d/local.repo ``` 添加以下内容(根据实际路径修改): ```ini [local-repo] name=Local Yum Repository baseurl=file:///opt/local_repo # 或 file:///mnt/cdrom enabled=1 gpgcheck=0 # 生产环境建议启用GPG验证 ``` #### 5. 测试仓库可用性 - 清理Yum缓存并更新: ```bash yum clean all yum makecache ``` - 验证仓库列表: ```bash yum repolist ``` - 搜索或安装软件包: ```bash yum search <package-name> yum install <package-name> ``` #### 6. 扩展配置(可选) - **网络共享仓库**:将仓库目录通过Nginx或FTP共享,并将 `baseurl` 改为 `http://<IP>/repo`。 - **自动同步**:使用 `rsync` 或定时任务同步远程仓库到本地。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值