37 openEuler搭建repo服务器-使用repo源
迪丽瓦拉
2024-06-02 23:25:16
0

文章目录

    • 37 openEuler搭建repo服务器-使用repo源
      • 37.1 repo配置为yum源(软件源)
      • 37.2 repo优先级
      • 37.3 dnf相关命令

37 openEuler搭建repo服务器-使用repo源

repo可配置为yum源,yum(全称为 Yellow dog Updater, Modified)是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软j件包,无须繁琐地一次次下载和安装。

37.1 repo配置为yum源(软件源)

构建好的repo可以配置为yum源使用,在/etc/yum.repos.d/目录下使用root权限创建*.repo的配置文件(必须以.repo为扩展名),分为本地和http服务器配置yum源两种方式:

  • 配置本地yum源

在/etc/yum.repos.d目录下创建openEuler.repo文件,使用构建的本地repo源作为yum源,openEuler.repo的内容如下:

[everything]
name=everything
baseurl=file:///home/repo
enabled=1
gpgcheck=1
gpgkey=file:///home/repo/RPM-GPG-KEY-openEuler

image-20221219190513462 说明:

  • [repoid]中的repoid为软件仓库(repository)的ID号,所有.repo配置文件中的各repoid不能重复,必须唯一。示例中repoid设置为everything
  • name为软件仓库描述的字符串。
  • baseurl为软件仓库的地址。
  • enabled为是否启用该软件源仓库,可选值为1和0。默认值为1,表示启用该软件源仓库。
  • gpgcheck可设置为1或0,1表示进行gpg(GNU Private Guard)校验,0表示不进行gpg校验,gpgcheck可以确定rpm包的来源是有效和安全的。
  • gpgkey为验证签名用的公钥。
  • 配置http服务器yum源

在/etc/yum.repos.d目录下创建openEuler.repo文件。

  • 若使用用户部署的http服务端的repo源作为yum源,openEuler.repo的内容如下:
[everything]
name=everything
baseurl=http://192.168.0.24/
enabled=1
gpgcheck=1
gpgkey=http://192.168.0.24/RPM-GPG-KEY-openEuler

image-20221219190513462 说明:
“192.168.0.24”为示例地址,请根据实际情况进行配置。

  • 若使用openEuler提供的openEuler repo源作为yum源,以x86_64架构的OS repo源为例,openEuler.repo的内容如下:
[base]
name=base
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler

37.2 repo优先级

当有多个repo源时,可通过在*.repo文件的priority参数设置repo的优先级(如果不设置,默认优先级是99,当相同优先级的源中存在相同rpm包时,会安装最新的版本)。其中,1为最高优先级,99为最低优先级,如给openEuler.repo配置优先级为2:

[everything]
name=everything
baseurl=http://192.168.0.24/
enabled=1
priority=2
gpgcheck=1
gpgkey=http://192.168.0.24/RPM-GPG-KEY-openEuler

37.3 dnf相关命令

dnf命令在安装升级时能够自动解析包的依赖关系,一般的使用方式如下:

# dnf  

常用的命令如下:

  • 安装,需要在root权限下执行。
# dnf install 

例如示例命令如下:

[root@repo ~]# dnf install lrzsz
everything                                                                                   188 MB/s |  16 MB     00:00    
Last metadata expiration check: 0:00:04 ago on 2022年11月30日 星期三 20时42分22秒.
Dependencies resolved.
=============================================================================================================================Package                  Architecture              Version                              Repository                     Size
=============================================================================================================================
Installing:lrzsz                    x86_64                    0.12.20-46.oe2203                    everything                     83 kTransaction Summary
=============================================================================================================================
Install  1 PackageTotal size: 83 k
Installed size: 201 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                     1/1 Installing       : lrzsz-0.12.20-46.oe2203.x86_64                                                                      1/1 Running scriptlet: lrzsz-0.12.20-46.oe2203.x86_64                                                                      1/1 Verifying        : lrzsz-0.12.20-46.oe2203.x86_64                                                                      1/1 Installed:lrzsz-0.12.20-46.oe2203.x86_64                                                                                             Complete!
[root@repo ~]# 
  • 升级,需要在root权限下执行。
# dnf update 

例如示例命令如下:

[root@repo ~]# dnf update lrzsz
Last metadata expiration check: 0:00:43 ago on 2022年11月30日 星期三 20时42分22秒.
Dependencies resolved.
Nothing to do.
Complete!
[root@repo ~]# 
  • 回退,需要在root权限下执行。
# dnf downgrade 

例如示例命令如下:

[root@repo ~]# dnf downgrade lrzsz
Last metadata expiration check: 0:01:11 ago on 2022年11月30日 星期三 20时42分22秒.
Package lrzsz of lowest version already installed, cannot downgrade it.
Dependencies resolved.
Nothing to do.
Complete!
[root@repo ~]# 
  • 检查更新
# dnf check-update

例如示例命令如下:

[root@repo ~]# dnf check-update
Last metadata expiration check: 0:01:30 ago on 2022年11月30日 星期三 20时42分22秒.
[root@repo ~]# 
  • 卸载,需要在root权限下执行。
# dnf remove 

例如示例命令如下:

[root@repo ~]# dnf remove lrzsz
Dependencies resolved.
=============================================================================================================================Package                 Architecture             Version                                Repository                     Size
=============================================================================================================================
Removing:lrzsz                   x86_64                   0.12.20-46.oe2203                      @everything                   201 kTransaction Summary
=============================================================================================================================
Remove  1 PackageFreed space: 201 k
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                     1/1 Erasing          : lrzsz-0.12.20-46.oe2203.x86_64                                                                      1/1 Running scriptlet: lrzsz-0.12.20-46.oe2203.x86_64                                                                      1/1 Verifying        : lrzsz-0.12.20-46.oe2203.x86_64                                                                      1/1 Removed:lrzsz-0.12.20-46.oe2203.x86_64                                                                                             Complete!
[root@repo ~]# 
  • 查询
# dnf search 

例如示例命令如下:

[root@repo ~]# dnf search lrzsz
Last metadata expiration check: 0:02:58 ago on 2022年11月30日 星期三 20时42分22秒.
================================================ Name Exactly Matched: lrzsz ================================================
lrzsz.x86_64 : Free x/y/zmodem implementation
[root@repo ~]# 
  • 本地安装,需要在root权限下执行。
# dnf localinstall 

例如示例命令如下:

[root@repo ~]# dnf localinstall /home/repo/Packages/lrzsz-0.12.20-46.oe2203.x86_64.rpm 
Last metadata expiration check: 0:03:39 ago on 2022年11月30日 星期三 20时42分22秒.
Dependencies resolved.
=============================================================================================================================Package                 Architecture             Version                               Repository                      Size
=============================================================================================================================
Installing:lrzsz                   x86_64                   0.12.20-46.oe2203                     @commandline                    83 kTransaction Summary
=============================================================================================================================
Install  1 PackageTotal size: 83 k
Installed size: 201 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                     1/1 Installing       : lrzsz-0.12.20-46.oe2203.x86_64                                                                      1/1 Running scriptlet: lrzsz-0.12.20-46.oe2203.x86_64                                                                      1/1 Verifying        : lrzsz-0.12.20-46.oe2203.x86_64                                                                      1/1 Installed:lrzsz-0.12.20-46.oe2203.x86_64                                                                                             Complete!
[root@repo ~]# 
  • 查看历史记录
# dnf history

例如示例命令如下:

[root@repo ~]# dnf history
ID     | Command line                                                           | Date and time    | Action(s)      | Altered
-----------------------------------------------------------------------------------------------------------------------------3 | install -y nginx                                                       | 2022-11-29 21:55 | Install        |   11   2 | install createrepo -y                                                  | 2022-11-29 21:34 | Install        |    2   1 |                                                                        | 2022-11-28 21:29 | Install        |  796 EE
[root@repo ~]# 
  • 清除缓存目录
# dnf clean all

例如示例命令如下:

[root@repo ~]# dnf clean all
5 files removed
[root@repo ~]# 
  • 更新缓存
# dnf makecache

例如示例命令如下:

[root@repo ~]# dnf makecache
everything                                                                                   3.0 MB/s | 3.0 kB     00:00    
Metadata cache created.
[root@repo ~]# 

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230307220630775

相关内容