在CentOS 8上设置本地Yum/DNF存储库,可以帮助用户在没有互联网连接或者需要控制软件包版本环境中进行软件包管理。下面让我们一起来完成在CentOS 8上设置本地Yum/DNF存储库。
先要保证有一个CentOS 8系统,且有足够磁盘空间和存储软件包。先安装用于创建和管理本地存储的工具:
sudo dnf install -y createrepo yum-utils
再创建一个目录来存放本地存储库:
sudo mkdir -p /var/www/html/localrepo
再从CentOS 8镜像或其他源下载所需的软件包,如使用reposync命令从官方仓库同步软件包:
sudo reposync --repo=baseos --repo=appstream --repo=extras --download-path=/var/www/html/localrepo
以上命令可以从官方仓库下载软件包到/var/www/html/localrepo 目录。
就像创建存储库元素,使用createrepo命令在存储库目录中生成元数据:
sudo createrepo /var/www/html/localrepo
创建一个新的.repo文件来配置本地存储库:
sudo tee /etc/yum.repos.d/localrepo.repo <<EOF
[localrepo]
name=Local Repository
baseurl=file:///var/www/html/localrepo
enabled=1
gpgcheck=0
EOF
验证本地存储库,清楚缓存并重新生成缓存,来保证本地存储库配置正确:
sudo dnf clean all
sudo dnf makecache
再尝试从本地存储库安装一个软件包来验证配置:
sudo dnf install <package_name>
如果想通过HTTP访问本地存储库,可以配置一个简单的HTTP服务器,如使用Apache HTTP服务器。安装Apache HTTP服务器:
sudo dnf install -y httpd
配置Apache HTTP服务器,创建一个符号链接使存储库目录能通过HTTP访问:
sudo ln -s /var/www/html/localrepo /var/www/html/repo
修改Apache配置文件,/etc/httpd/conf/httpd.conf,确保包含以下内容:
<Directory "/var/www/html/repo">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
启动并启用Apache HTTP服务器:
sudo systemctl start httpd
sudo systemctl enable httpd
配置DNF使用HTTP访问本地存储库,修改 /etc/yum.repos.d/localrepo.repo 文件,将 baseurl 更改为 HTTP URL:
[localrepo]
name=Local Repository
baseurl=http://<your_server_ip>/repo
enabled=1
gpgcheck=0
清除缓存并重新生成缓存,然后尝试安装软件包以确保配置正确:
sudo dnf clean all
sudo dnf makecache
sudo dnf install <package_name>
通过以上步骤来设置本地Yum/DNF存储库,可以帮助用户在CentOS8系统中离线状态下管理软件包,可以通过文件系统直接访问存储库,也可以配置HTTP服务器提供远程访问。使用本地存储库,能更好控制软件包版本和依赖项,来适应不同使用场景。