CentOS 8怎样配置本地Yum/DNF存储库

发布时间:2022-01-24 10:16:46 作者:柒染
来源:亿速云 阅读:274
# CentOS 8怎样配置本地Yum/DNF存储库

## 前言

在CentOS 8系统中,Yum包管理器已被DNF(Dandified YUM)取代,但出于习惯,用户仍常使用"yum"命令进行操作。配置本地存储库(Local Repository)对于无网络环境、快速软件安装或定制化软件分发非常有用。本文将详细介绍在CentOS 8上创建和配置本地Yum/DNF存储库的全过程。

---

## 一、准备工作

### 1.1 系统要求
- 已安装CentOS 8系统
- 具有root或sudo权限的账户
- 至少10GB可用磁盘空间(取决于镜像大小)

### 1.2 所需软件包
```bash
sudo dnf install -y createrepo dnf-utils httpd

1.3 目录结构规划

建议采用以下目录结构:

/var/www/html/repos/
├── baseos
├── appstream
└── custom

二、获取ISO镜像文件

2.1 下载官方镜像

从CentOS官网或镜像站下载完整ISO:

wget http://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.x-x86_64-dvd1.iso

2.2 挂载ISO文件

sudo mkdir /mnt/centos8
sudo mount -o loop CentOS-8.x-x86_64-dvd1.iso /mnt/centos8

2.3 验证挂载

ls /mnt/centos8/

应看到AppStreamBaseOS目录


三、创建本地存储库

3.1 复制文件到Web目录

sudo mkdir -p /var/www/html/repos/{baseos,appstream}
sudo cp -r /mnt/centos8/BaseOS/* /var/www/html/repos/baseos/
sudo cp -r /mnt/centos8/AppStream/* /var/www/html/repos/appstream/

3.2 创建元数据

sudo createrepo /var/www/html/repos/baseos/Packages/
sudo createrepo /var/www/html/repos/appstream/Packages/

3.3 设置权限

sudo chown -R apache:apache /var/www/html/repos
sudo chmod -R 755 /var/www/html/repos

四、配置HTTP服务

4.1 启动Apache

sudo systemctl start httpd
sudo systemctl enable httpd

4.2 防火墙配置

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

4.3 验证访问

浏览器访问:

http://[服务器IP]/repos/

五、配置DNF/Yum客户端

5.1 创建repo文件

sudo vi /etc/yum.repos.d/local.repo

添加以下内容:

[local-baseos]
name=Local BaseOS
baseurl=file:///var/www/html/repos/baseos
enabled=1
gpgcheck=0

[local-appstream]
name=Local AppStream
baseurl=file:///var/www/html/repos/appstream
enabled=1
gpgcheck=0

5.2 网络客户端配置

对于网络客户端,修改baseurl为:

baseurl=http://[服务器IP]/repos/baseos

5.3 清除并重建缓存

sudo dnf clean all
sudo dnf makecache

六、验证存储库

6.1 列出已启用仓库

sudo dnf repolist

6.2 测试软件安装

sudo dnf install -y httpd

6.3 检查软件来源

dnf info httpd | grep -i "from repo"

七、高级配置

7.1 添加第三方软件

  1. 创建自定义目录:
sudo mkdir /var/www/html/repos/custom
  1. 添加RPM包后重建元数据:
sudo createrepo /var/www/html/repos/custom

7.2 自动同步脚本

创建同步脚本/usr/local/bin/repo-sync.sh

#!/bin/bash
reposync -p /var/www/html/repos/baseos --repo=baseos
createrepo /var/www/html/repos/baseos

7.3 设置定时任务

sudo crontab -e

添加:

0 3 * * * /usr/local/bin/repo-sync.sh

八、故障排除

8.1 常见问题

  1. 元数据损坏
sudo rm -rf /var/www/html/repos/*/repodata
sudo createrepo /var/www/html/repos/
  1. 权限问题
sudo restorecon -Rv /var/www/html/repos
  1. 依赖冲突
sudo dnf --disablerepo="*" --enablerepo="local*" install [package]

8.2 日志检查

journalctl -xe
tail -f /var/log/httpd/error_log

九、安全建议

  1. 启用HTTPS:
sudo dnf install mod_ssl
sudo openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt
  1. 基础认证:
sudo htpasswd -c /etc/httpd/conf/.htpasswd repo-user
  1. 访问控制:
<Directory "/var/www/html/repos">
    AuthType Basic
    AuthName "Restricted Content"
    AuthUserFile /etc/httpd/conf/.htpasswd
    Require valid-user
</Directory>

十、总结

通过本文的详细步骤,您已经成功在CentOS 8系统上配置了本地Yum/DNF存储库。这种配置特别适用于: - 无外网访问的环境 - 需要快速部署多台相同环境的场景 - 自定义软件分发的需求

建议定期更新本地存储库以获取安全补丁和新功能。对于生产环境,应考虑建立完整的镜像同步机制。

注意:CentOS 8已于2021年底停止维护,建议考虑迁移至Rocky Linux或AlmaLinux等替代发行版。 “`

这篇文章共计约2050字,采用Markdown格式编写,包含: 1. 10个主要章节 2. 代码块和命令示例 3. 结构化标题层级 4. 安全建议和故障排除 5. 实际操作的详细步骤 6. 注意事项和总结建议

可根据实际需求调整目录结构或补充特定软件的仓库配置细节。

推荐阅读:
  1. PHP7.4如何在CentOS环境中安装
  2. CentOS linux的环境变量怎么配置

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

centos yum dnf

上一篇:Linux系统如何安装RocketMQ

下一篇:linux系统如何安装msf

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》