RHEL 8でRPMの保管先からローカルのリポジトリを作成する!

RHEL 8でRPMファイルの保管先からローカルのリポジトリを作成します。

createrepoコマンドをインストールする!

dnfコマンドで、createrepoコマンドをインストールします。

# dnf install createrepo
Updating Subscription Management repositories.
Last metadata expiration check: 0:41:18 ago on Wed 06 Apr 2022 08:50:34 AM JST.
Dependencies resolved.
========================================================================================================================
 Package                     Architecture     Version                  Repository                                  Size
========================================================================================================================
Installing:
 createrepo_c                x86_64           0.17.2-3.el8             rhel-8-for-x86_64-appstream-rpms            89 k
Installing dependencies:
 createrepo_c-libs           x86_64           0.17.2-3.el8             rhel-8-for-x86_64-appstream-rpms           115 k
 drpm                        x86_64           0.4.1-3.el8              rhel-8-for-x86_64-appstream-rpms            68 k

Transaction Summary
========================================================================================================================
Install  3 Packages

Total download size: 271 k
Installed size: 575 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): drpm-0.4.1-3.el8.x86_64.rpm                                                      172 kB/s |  68 kB     00:00    
(2/3): createrepo_c-0.17.2-3.el8.x86_64.rpm                                             216 kB/s |  89 kB     00:00    
(3/3): createrepo_c-libs-0.17.2-3.el8.x86_64.rpm                                        253 kB/s | 115 kB     00:00    
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   591 kB/s | 271 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                1/1 
  Installing       : drpm-0.4.1-3.el8.x86_64                                                                        1/3 
  Installing       : createrepo_c-libs-0.17.2-3.el8.x86_64                                                          2/3 
  Installing       : createrepo_c-0.17.2-3.el8.x86_64                                                               3/3 
  Running scriptlet: createrepo_c-0.17.2-3.el8.x86_64                                                               3/3 
  Verifying        : drpm-0.4.1-3.el8.x86_64                                                                        1/3 
  Verifying        : createrepo_c-0.17.2-3.el8.x86_64                                                               2/3 
  Verifying        : createrepo_c-libs-0.17.2-3.el8.x86_64                                                          3/3 
Installed products updated.

Installed:
  createrepo_c-0.17.2-3.el8.x86_64         createrepo_c-libs-0.17.2-3.el8.x86_64         drpm-0.4.1-3.el8.x86_64        

Complete!

rpmファイルを配置する!

ディレクトリを作成し、リポジトリとするrpmファイルを配置します。ここでは、「/root/rpms/Packages」にrpmを配置します。

ローカルリポジトリを作成する!

ローカルリポジトリを作成します。リポジトリは、rpmを保管したディレクトリの親ディレクトリを指定して作成します。

# # createrepo /root/rpms
Directory walk started
Directory walk done - 551 packages
Temporary output repo path: /root/rpms/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

ローカルリポジトリの定義を作成する!

ローカルリポジトリの定義を作成します。

[Local]
name=Local                          
baseurl=file:///root/rpms
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

リポジトリとして認識していることを確認します。

# dnf repolist
[root@vmsaca02 rpms]# dnf repolist
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Bad id for repo: /code, byte = / 0
repo id                                                   repo name
Local                                           Local

おわりに

本稿では、createrepoコマンドを使用して、rpmファイルからローカルのリポジトリを作成しました。