云网牛站
所在位置:首页 > Linux教程 > openEuler 20.03 LTS中创建/更新本地repo源、部署远端及使用repo源

openEuler 20.03 LTS中创建/更新本地repo源、部署远端及使用repo源

2020-03-30 10:38:10作者:openeuler人稿源:openeuler站

本文以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服务启动成功:

openEuler 20.03 LTS中创建/更新本地repo源、部署远端及使用repo源

若nginx服务启动失败,查看错误信息:

systemctl status nginx.service --full

openEuler 20.03 LTS中创建/更新本地repo源、部署远端及使用repo源

如图所示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直接访问网页,如图:

openEuler 20.03 LTS中创建/更新本地repo源、部署远端及使用repo源

通过下面几种方式将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

 

相关主题

在RedHat Enterprise Linux系统中yum的repo文件详解

精选文章
热门文章