找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 20441|回复: 0

服务器本地yum源搭建与离线安装方案

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-11 05:53:45 | 显示全部楼层 |阅读模式
服务器本地YUM源搭建与离线安装方案

一、本地YUM源搭建方案

1. 准备工作

  • 准备一台已连接互联网的服务器(用于下载RPM包)
  • 准备目标离线服务器(需要安装软件)
  • 足够存储空间的磁盘或U盘/移动硬盘


2. 搭建步骤

方案1:使用本地目录作为YUM源
  1. # 1. 创建本地仓库目录
  2. mkdir -p /local_repo/{base,updates,extras}
  3. # 2. 从网络源同步RPM包(在联网机器上执行)
  4. # 示例:同步base仓库
  5. reposync -p /local_repo/base -r base  # 需要安装yum-utils
  6. # 3. 创建仓库元数据
  7. createrepo /local_repo/base
  8. # 对其他仓库重复上述操作
  9. # 4. 配置本地YUM源
  10. cd /etc/yum.repos.d/
  11. mkdir bak
  12. mv *.repo bak/  # 备份原有源
  13. # 创建本地源配置文件
  14. cat > /etc/yum.repos.d/local.repo <<EOF
  15. [local-base]
  16. name=Local Base Repository
  17. baseurl=file:///local_repo/base
  18. enabled=1
  19. gpgcheck=0
  20. [local-updates]
  21. name=Local Updates Repository
  22. baseurl=file:///local_repo/updates
  23. enabled=1
  24. gpgcheck=0
  25. EOF
  26. # 5. 清理并重建YUM缓存
  27. yum clean all
  28. yum makecache
复制代码

方案2:使用HTTP服务共享本地仓库
  1. # 1. 安装HTTP服务器
  2. yum install httpd -y
  3. # 2. 将仓库目录放到HTTP服务目录下
  4. mv /local_repo /var/www/html/
  5. # 3. 配置HTTP仓库(客户端配置)
  6. cat > /etc/yum.repos.d/http_local.repo <<EOF
  7. [http-local]
  8. name=HTTP Local Repository
  9. baseurl=http://<服务器IP>/local_repo  # 根据实际目录调整
  10. enabled=1
  11. gpgcheck=0
  12. EOF
  13. # 4. 启动HTTP服务
  14. systemctl start httpd
  15. systemctl enable httpd
复制代码

二、离线安装方案

1. 手动RPM包安装
  1. # 1. 从联网机器下载所需RPM包及其依赖
  2. yum install --downloadonly --downloaddir=/path/to/save/rpm package_name
  3. # 2. 将下载的RPM包复制到离线服务器
  4. # 3. 使用rpm命令安装
  5. cd /path/to/rpm/files
  6. rpm -Uvh *.rpm  # 或指定具体包名
复制代码

2. 使用yum的本地安装功能
  1. # 1. 创建本地仓库目录结构(同上)
  2. # 2. 使用yum本地安装命令
  3. yum --disablerepo=* --enablerepo=local-base install package_name
  4. # 或者直接指定本地路径
  5. yum localinstall /path/to/package.rpm
复制代码

3. 使用createrepo创建本地仓库后安装
  1. # 1. 确保已创建本地仓库并配置了.repo文件
  2. # 2. 正常使用yum安装
  3. yum install package_name
复制代码

三、离线环境维护建议

  • 定期更新本地仓库
  • 在联网环境中定期同步仓库
  • 使用
    1. reposync
    复制代码
    更新本地仓库内容
  • 重新生成仓库元数据:
    1. createrepo --update /path/to/repo
    复制代码
  • 多版本管理
  • 为不同系统版本创建单独的仓库目录
  • 例如:/localrepo/centos7, /localrepo/centos8
  • 依赖管理
  • 使用
    1. yumdownloader
    复制代码
    下载包及其所有依赖
  • 考虑使用
    1. yum-plugin-downloadonly
    复制代码
    插件
  • 自动化脚本

  
  1. #!/bin/bash
  2.    # 同步指定仓库到本地
  3.    REPO_NAME=$1
  4.    TARGET_DIR="/local_repo/$REPO_NAME"
  5.    
  6.    mkdir -p $TARGET_DIR
  7.    reposync -p $TARGET_DIR -r $REPO_NAME
  8.    createrepo $TARGET_DIR
复制代码

四、注意事项

  • 确保本地仓库的GPG检查已禁用或配置了正确的GPG密钥
  • 考虑仓库大小,确保有足够的存储空间
  • 对于生产环境,建议使用HTTP/HTTPS方式提供仓库,而非直接文件访问
  • 定期验证本地仓库的完整性


通过以上方案,您可以在离线环境中高效地管理软件包安装和更新。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 19:51 , Processed in 0.067114 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表