yum建本地源

学习笔记,转自:http://blog.youkuaiyun.com/priestmoon/article/details/7798897

 

默认情况下yum走的是互联网,这里说的是建立一个本地的光盘镜像源。

 

1) 挂载rhel的安装iso

mount /dev/cdrom /mnt/cdrom

 

2) vi /etc/yum.repos.d/rhel-source.repo (可为任意文件名,但后缀须是.repo)

添加以下内容:

[dvdiso]

name=dvdiso

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=0

 

这样使用yum install <cmd>时就会使用本地源了。

<think> 首先,用户的问题是关于自己搭yum的方法,我参考了提供的站内引用信息,以下是搭私有yum的步骤总结: ### 一、搭私有yum的核心步骤 1. **创仓库目录** 在服务器上创存放RPM包的目录,例如: ```bash mkdir -p /data/yum/centos7/x86_64/ ``` 2. **安装并初始化仓库** 安装`createrepo`工具,并使用它生成元数据: ```bash yum install -y createrepo createrepo -pdo /data/yum/centos7/x86_64/ /data/yum/centos7/x86_64/ ``` 3. **提供HTTP访问服务** 可选择以下任一方式: - **Python简易HTTP服务**(临时测试): ```bash cd /data/yum/centos7/x86_64/ python -m SimpleHTTPServer 8000 & # CentOS 7 python3 -m http.server 8000 & # CentOS 8+ ``` - **Nginx配置(推荐生产环境)**: 安装Nginx并配置虚拟主机指向仓库目录: ```nginx server { listen 80; server_name yum.example.com; root /data/yum/centos7/x86_64/; autoindex on; # 启用目录列表显示 location / { allow all; } } ``` 4. **客户端配置** 在客户端机器创`.repo`文件(例如`/etc/yum.repos.d/local.repo`),内容如下: ```ini [local-yum] name=Local Yum Repository baseurl=http://<服务器IP>:8000/ # 若使用Python HTTP服务 # 或 baseurl=http://yum.example.com/ # 若使用Nginx enabled=1 gpgcheck=0 # 若未配置GPG签名可跳过验证 ``` ### 二、进阶操作(参考引用[2][3][5]) 1. **离线环境搭** - 下载所需RPM包(如`epel-release`)并放入仓库目录 - 使用`reposync`工具同步远程仓库(需联网机器预先操作): ```bash reposync -n --repoid=epel --download-path=/data/yum/centos7/x86_64/ ``` - 更新元数据: ```bash createrepo --update /data/yum/centos7/x86_64/ ``` 2. **定时同步更新**(引用[5]) 添加cron任务(每周六1点同步): ```bash # 编辑crontab -e 0 1 * * 6 reposync -n --repoid=epel -p /data/yum/centos7/x86_64/ 30 1 * * 6 createrepo --update /data/yum/centos7/x86_64/epel ``` 3. **ISO镜像作为**(引用[1][4]) - 挂载ISO文件: ```bash mount -o loop /path/to/centos.iso /mnt ``` - 客户端配置`.repo`文件指向`file:///mnt` ### 三、验证步骤 1. **服务端** ```bash yum clean all yum repolist # 检查仓库是否加载 ``` 2. **客户端** 执行相同命令,确认可见`local-yum`仓库及包列表。 §§相关问题§§ 1. 如何解决`createrepo`生成的元数据兼容性问题? 2. 如何为私有yum配置GPG签名验证? 3. 在内网多版本CentOS混合环境下如何组织仓库目录结构? [^1]: [centos离线搭yum](参考链接1) [^2]: [搭私有yum](参考链接2) [^3]: [内网搭yum](参考链接3) [^4]: [搭本地yum](参考链接4) [^5]: [搭yum并定时同步](参考链接5) > **注意**:实际部署时需替换`<服务器IP>`、仓库路径及端口。生产环境议使用Nginx替代Python HTTP服务以提高稳定性。 --- ### 搭私有yum的详细方法 根据引用内容,搭私有yum的核心步骤如下(以CentOS 7为例): #### 一、服务端配置 1. **创仓库目录** ```bash mkdir -p /data/yum/centos7/x86_64/ # 推荐按系统版本和架构分级存储[^2][^4] ``` 2. **安装createrepo工具** ```bash yum install -y createrepo # 用于生成RPM仓库元数据[^2][^3] ``` 3. **初始化仓库元数据** ```bash cd /data/yum/centos7/x86_64/ createrepo -pdo ./ ./ # -pdo表示创初始元数据并包含目录结构[^2][^3] ``` 4. **提供HTTP访问服务(两种方式)** - **简易Python HTTP服务(临时测试)** ```bash cd /data/yum/centos7/x86_64/ python -m SimpleHTTPServer 8000 & # CentOS 7[^2] # 或 python3 -m http.server 8000 & # CentOS 8+[^3] ``` - **Nginx生产级服务(推荐)** 1. 安装Nginx:`yum install nginx -y` 2. 配置仓库路径(/etc/nginx/conf.d/yum.conf): ```nginx server { listen 80; server_name localhost; root /data/yum/centos7/x86_64/; autoindex on; # 启用目录浏览 location / { allow all; } } ``` 3. 重启Nginx:`systemctl restart nginx`[^3][^4] 5. **添加RPM包并更新仓库** - 将所需RPM包放入`/data/yum/centos7/x86_64/`目录 - 更新元数据: ```bash createrepo --update /data/yum/centos7/x86_64/ # 增量更新[^2][^5] ``` #### 二、客户端配置 1. 创`.repo`文件(如`/etc/yum.repos.d/local.repo`): ```ini [local-yum] name=Local Yum Repository baseurl=http://<服务器IP>:8000/ # Python服务端口 # 或 baseurl=http://<服务器IP>/ # 若使用Nginx默认80端口 enabled=1 gpgcheck=0 # 若未配置GPG签名需关闭验证 ``` 2. 刷新缓存: ```bash yum clean all && yum repolist ``` #### 三、进阶操作 1. **离线同步远程仓库**(需联网机器) ```bash reposync -n --repoid=base --download-path=/data/yum/centos7/x86_64/ # --repoid指定ID[^5] ``` 2. **定时同步与更新** 编辑crontab(示例为每周六1点同步): ```bash 0 1 * * 6 reposync -n --repoid=base -p /data/yum/centos7/x86_64/ 30 1 * * 6 createrepo --update /data/yum/centos7/x86_64/ # 增量更新元数据[^5] ``` 3. **使用ISO镜像作为** - 挂载ISO:`mount -o loop /path/to/CentOS-7-x86_64-Everything.iso /mnt` - 客户端配置`.repo`文件: ```ini [local-iso] name=CentOS ISO Mirror baseurl=file:///mnt # 本地路径 enabled=1 gpgcheck=0 ``` > **关键点说明**: > 1. **元数据生成**:必须用`createrepo`生成`repodata/`目录,否则yum无法识别仓库[^2][^3]。 > 2. **服务选择**: > - 测试环境可用Python HTTP服务(临时) > - 生产环境推荐Nginx,需配置`autoindex on`支持目录浏览[^3][^4]。 > 3. **客户端配置**: > - `baseurl`指向服务端IP或域名 > - `gpgcheck=0`跳过签名验证(若需安全验证需配置GPG密钥)[^4]。 §§相关问题§§ 1. 如何为私有yum配置GPG签名验证? 2. 如何解决多版本CentOS(如7和8)混合仓库的兼容性问题? 3. `reposync`同步时报错"无法找到repoid"该如何处理? [^1]: [centos离线搭yum](参考链接1) [^2]: [搭私有yum](参考链接2) [^3]: [内网搭yum](参考链接3) [^4]: [搭本地yum](参考链接4) [^5]: [搭yum并定时同步](参考链接5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值