openEuler建立内部局域网yum、dnf仓库
准备空间
添加一块硬盘,挂载到/data分区
lsblk
mkfs -t ext4 /dev/sdb
mkdir /data
mount /dev/sdb /data
vim /etc/fstab #添加一行 /dev/sdb /data ext4 defaults 0 0
reboot 启服务器
df -h #查看分区空间
建立本地yum仓库
- 使用 yum-utils 中的 createrepo 工具或者 dnf-plugins-core 中的 dnf-plugins-core 工具来创建和管理 YUM 或 DNF 仓库。
sudo dnf install createrepo_c
sudo dnf install -y dnf-plugins-core
- 下载 RPM 包:
你可以从官方源或其他可信任的源下载 RPM 包,并将它们放到一个目录中。例如,你可以创建一个名为 /data/yum/Packages 的目录来存放这些包。
mkdir /data/yum && mkdir /data/yum/Packages
dnf reposync -p /data/yum/Packages
下载rpm包是需要时间的100多G的样子,这还只是本机型本版本的rpm包,可以用screen这个工具来后台运行
yum -y install screen #安装screen工具
screen -S repo #创建名为repo的后台
dnf reposync -p /data/yum/Packages #在一个后台执行命令
# 按键 ctrl+A 然后按下D后台运行,进入前台
screen -list #后台list
screen -r XXX #进入ID号XXX的后台
- 创建仓库元数据:
切换到存放 RPM 包的目录,并使用 createrepo_c 命令生成仓库的元数据。
cd /data/yum/Packages
createrepo_c .
- 配置 Web 服务器:
如果你还没有安装 Web 服务器,你可以安装 Nginx 来提供仓库的访问。
安装ngixn(liunx源码包安装),发布本地yum/dnf仓库
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
使用源码包安装Nginx的步骤如下:
源码包及官方网址:http://nginx.org/ Nginx是一个高性能的HTTP和反向代理服务器,也是一款优秀的Web服务器软件。
mkdir /home/download
rz
tar -xzvf /home/download/nginx-1.24.0.tar.gz
cd /home/download/nginx-1.24.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make && make install
cd /usr/lcoal/nginx/
tree -L 2 #查看目录结构
Nginx的网站目录默认为/usr/local/nginx/html
nginx默认80端口,添加到防火墙,永久生效
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
浏览器访问IP,如下说明成功了
把Nginx加入systemctl和开机启动
进入/etc/systemd/system文件夹,新增文件 nginx.service,
vim /etc/systemd/system/nginx.service
粘贴文件内容如下:
[Unit]
Description=nginx service
After=network.target
[Service]
User=root
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecStartPre=/bin/sleep 10
[Install]
WantedBy=multi-user.target
开启开机启动
systemctl enable nginx
systemctl start nginx #启动nginx
搭建mirrors 内部局域网yum源服务器在】需要开启nginx目录浏览功能。(!!!除非服务器用于这个用途,否则不要开启)。
Nginx默认不开放目录浏览,我们可以修改 nginx 配置文件来启用它的目录浏览功能。方法->修改配置文件:vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
root /data/yum/Packages; #修改根目录
location / {
#root hmtl;
#index index.html index.htm;
allow all;
autoindex on;#开启目录浏览
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8,gbk;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /.html {
root html;
}
nginx -t #测试配置文件是否正确
访问一下:
备注:如遇到403
按3个方向排查:一是Selinux; 二是目录权限; 三是文件所有者
- Selinux
修改SELinux的状态
vim /etc/sysconfig/selinux
状态分为以下三种:
SELINUX=enforcing #selinux开启,级别为强制(华为openEuler系统选择服务server方式安装时默认为开启)
SELINUX=permissive #selinux开启,级别为警告
SELINUX=disabled #selinux关闭
在Linux系统中永久关闭SELinux的方法是修改SELINUX的配置文件,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出并重启系
- 目录权限(R必须大写)
chown -R nginx:nginx 这里写目录
- 文件所有者
chmod -R 755 这里写目录
客户端配置-测试是否搭建成功
在需要从这个镜像仓库获取包的客户端上,你可以将仓库的 URL 添加到 YUM 或 DNF 的配置文件中。例如,对于 YUM,你可以在本地创建一个openEuler.repo 文件,并添加以下内容:
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[all]
name=all
baseurl=http://192.168.41.145/
#metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/OS&arch=Packages
metadata_expire=1h
enabled=1
gpgcheck=0
#gpgkey=http://192.148.41.144/OS/Packages/RPM-GPG-KEY-openEuler
将本地openEuler.repo上传服务器,替换原来的/etc/yum.repos.d/openEuler.repo
完成上述步骤后,你的 openEular 服务器现在应该能够作为一个基本的 YUM 仓库镜像来使用了。记得定期更新你的镜像内容,以保持与官方仓库的同步。
创建或更新完仓库配置文件后,您需要清除yum的缓存并重新加载仓库:
sudo dnf clean all
sudo dnf makecache