本文以openEuler-20.03-LTS-aarch64-dvd.iso镜像文件为例,内容有:创建/更新本地repo源、部署远端repo源、使用repo源。将openEuler提供的镜像openEuler-20.03-LTS-aarch64-dvd.iso创建为repo源,如下以使用nginx进行repo源部署,提供http服务为例进行说明。
创建/更新本地repo源 使用mount挂载,将openEuler的镜像openEuler-20.03-LTS-aarch64-dvd.iso创建为repo源,并能够对repo源进行更新。 1、获取ISO镜像 请看:下载openEuler 20.03 LTS目录里都放了些什么?以下为你解释。 2、挂载ISO创建repo源 使用mount命令挂载镜像文件。 示例如下: mount /home/openEuler/openEuler-20.03-LTS-aarch64-dvd.iso /mnt/ 挂载好的mnt目录如下: . │── boot.catalog │── docs │── EFI │── images │── Packages │── repodata │── TRANS.TBL └── RPM-GPG-KEY-openEuler 其中,Packages为rpm包所在的目录,repodata为repo源元数据所在的目录,RPM-GPG-KEY-openEuler为openEuler的签名公钥。 3、创建本地repo源 可以拷贝镜像中相关文件至本地目录以创建本地repo源,示例如下: mount /home/openEuler/openEuler-20.03-LTS-aarch64-dvd.iso /mnt/ mkdir -p /srv/repo/ cp -r /mnt/Packages /srv/repo/ cp -r /mnt/repodata /srv/repo/ cp -r /mnt/RPM-GPG-KEY-openEuler /srv/repo/ 从而本地repo目录如下: . │── Packages │── repodata └── RPM-GPG-KEY-openEuler Packages为rpm包所在的目录,repodata为repo源元数据所在的目录,RPM-GPG-KEY-openEuler为openEuler的签名公钥。 4、更新repo源 更新repo源有两种方式: 1]、通过新版本的ISO更新已有的repo源,与创建repo源的方式相同,即挂载镜像或者重新拷贝镜像至本地目录。 2]、在repo源的Packages目录下添加rpm包,然后更新repo源,可通过createrepo命令更新repo源: dnf install createrepo createrepo --update --workers=10 /srv/repo 其中,–update表示更新,–workers表示线程数,可自定义。
部署远端repo源 安装openEuler操作系统,在openEuler上通过nginx部署repo源。 1、nginx安装与配置 请自行下载nginx工具并安装nginx。 安装nginx之后,配置/etc/nginx/nginx.conf。 说明: 配置内容仅供参考,请用户根据实际情况(例如安全加固需要)进行配置。 user root; worker_processes auto; # 建议设置为core-1 error_log /var/log/nginx/error.log warn; # log存放位置 pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; # 服务器名(url) client_max_body_size 4G; root /srv/repo; # 服务默认目录 location / { autoindex on; # 开启访问目录下层文件 autoindex_exact_size on; autoindex_localtime on; } } } 2、启动nginx服务 通过systemd启动nginx服务: systemctl enable nginx systemctl start nginx nginx是否启动成功可通过下面命令查看: systemctl status nginx 如果看到类似下图表示nginx服务启动成功:
若nginx服务启动失败,查看错误信息: systemctl status nginx.service --full
如图所示nginx服务创建失败,是由于目录/var/spool/nginx/tmp/client_body创建失败,手动进行创建,类似的问题也这样处理: mkdir -p /var/spool/nginx/tmp/client_body mkdir -p /var/spool/nginx/tmp/proxy mkdir -p /var/spool/nginx/tmp/fastcgi mkdir -p /usr/share/nginx/uwsgi_temp mkdir -p /usr/share/nginx/scgi_temp 3、repo源部署 创建nginx配置文件/etc/nginx/nginx.conf中指定的目录/srv/repo: mkdir -p /srv/repo SELinux设置为宽容模式: setenforce permissive 说明: repo server重启后,需要重新设置。 设置防火墙规则,开启nginx设置的端口(此处为80端口),通过firewall设置端口开启: firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload 查询80端口是否开启成功,输出为yes则表示80端口开启成功: firewall-cmd --query-port=80/tcp 也可通过iptables来设置80端口开启: iptables -I INPUT -p tcp --dport 80 -j ACCEPT nginx服务设置好之后,即可通过ip直接访问网页,如图:
通过下面几种方式将repo源放入到/srv/repo下: 拷贝镜像中相关文件至在/srv/repo下: mount /home/openEuler/openEuler-20.03-LTS-aarch64-dvd.iso /mnt/ cp -r /mnt/Packages /srv/repo/ cp -r /mnt/repodata /srv/repo/ cp -r /mnt/RPM-GPG-KEY-openEuler /srv/repo/ openEuler-20.03-LTS-aarch64-dvd.iso存放在/home/openEuler目录下。 在/srv/repo下创建repo源的软链接: ln -s /home/openEuler/os /srv/repo/os /home/openEuler/os为已经创建好的repo源,/srv/repo/os将指向/home/openEuler/os。
使用repo源 repo可配置为yum源,yum(全称为 Yellow dog Updater, Modified)是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载和安装。 1、repo配置为yum源 构建好的repo可以配置为yum源使用,在/etc/yum.repos.d/目录下创建***.repo的配置文件(必须以.repo为扩展名),分为本地和http服务器配置yum源两种方式: 1]、配置本地yum源: 在/etc/yum.repos.d目录下创建openEuler.repo文件,使用构建的本地repo作为yum源,openEuler.repo的内容如下: [base] name=base baseurl=file:///srv/repo enabled=1 gpgcheck=1 gpgkey=file:///srv/repo/RPM-GPG-KEY-openEuler 说明: gpgcheck可设置为1或0,1表示进行gpg(GNU Private Guard)校验,0表示不进行gpg校验,gpgcheck可以确定rpm包的来源是有效和安全的。 gpgkey为签名公钥的存放路径。 2]、配置http服务器yum源: 在/etc/yum.repos.d目录下创建openEuler.repo文件,使用http服务端的repo作为yum源,openEuler.repo的内容如下: [base] name=base baseurl=http://192.168.1.2/ enabled=1 gpgcheck=1 gpgkey=http://192.168.1.2/RPM-GPG-KEY-openEuler 说明: “192.168.1.2”为示例地址,请用户根据实际情况进行配置。 2、repo优先级 当有多个repo源时,可通过在.repo文件的priority参数设置repo的优先级(如果不设置,默认优先级是99,当相同优先级的源中存在相同rpm包时,会安装最新的版本)。其中,1为最高优先级,99为最低优先级,如给openEuler.repo配置优先级为2: [base] name=base baseurl=http://192.168.1.2/ enabled=1 priority=2 gpgcheck=1 gpgkey=http://192.168.1.2/RPM-GPG-KEY-openEuler 说明: gpgcheck可设置为1或0,1表示进行gpg(GNU Private Guard)校验,0表示不进行gpg校验,gpgcheck可以确定rpm 包的来源是有效和安全的。 gpgkey为签名公钥的存放路径。 3、附:dnf相关命令 dnf命令在安装升级时能够自动解析包的依赖关系,一般的使用方式如下: dnf <command> <packages name> 常用的命令如下: 安装: dnf install <packages name> 升级: dnf update <packages name> 回退: dnf downgrade <packages name> 检查更新: dnf check-update 卸载: dnf remove <packages name> 查询: dnf search <packages name> 本地安装: dnf localinstall <absolute path to package name> 查看历史记录: dnf history 清除缓存目录: dnf clean all 更新缓存: dnf makecache
相关主题 |