ソフトウェアリポジトリは通常インターネット経由で使用され、世界中の複数のユーザーがアクセスできます。ただし、ローカルサーバー上に独自のローカルリポジトリを作成してシングルユーザーとして使用することも、WebサーバーまたはFTPを使用してLAN上の他のマシンへのアクセスを許可することもできます。
ローカルリポジトリを作成する利点は、ソフトウェアパッケージやアップデートをインストールするためにインターネット接続を必要としないことです。もちろん、もう1つの利点はダウンロード速度です。パッケージはローカルネットワーク経由でダウンロードされるため、更新は迅速に実行されます。
Yellowdog Updater、Modified(YUM)、またはDandified YUM(DNF)は、RPMベースのLinuxディストリビューションを管理するソフトウェアパッケージマネージャーです。 YUMまたはDNFを使用すると、各RPMを手動で更新しなくても、コンピューターのグループをインストールおよび更新できます。
この記事では、インストールDVDまたはISOファイルを使用して、Red Hat Enterprise Linux(RHEL)8でローカルのApacheベースのYUM/DNFリポジトリをセットアップする方法について説明します。また、Apacheウェブサーバーを使用してクライアントRHEL8マシンでソフトウェアパッケージを検索してインストールする方法についても説明します。 NGINXとFTPの同じプロセスについては、今後の記事で取り上げます。
[Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。]
2つのRedHatEnterprise Linux 8システムをセットアップする必要があります。1つはローカルリポジトリサーバーで、もう1つはローカルサーバーのローカルリポジトリを使用するクライアントマシンです。結果は次のようになります:
-
ローカルリポジトリサーバー:RHEL 8 [10.0.0.10]
-
ローカルクライアントマシン:RHEL 8 [10.0.0.11]
-
RHEL8インストールDVD
-
ApacheWebサーバー
リポジトリの作成には、いくつかの手順が含まれます。それらを見ていきましょう。
ステップ1:Red Hat EnterpriseLinux8メディアをマウントする
まず、Red Hat Enterprise Linux 8を含むローカルメディア(DVD、USBスティックなど)をマウントします。インストールDVDを使用します。
$ sudo mount /dev/cdrom /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
または、ISOイメージをマウントします:
$ sudo mount -o loop rhel-8.0-x86_64-dvd.iso /mnt
ステップ2:マウントされたメディアからローカルYUMリポジトリを作成します
/etc/yum.repos.d
にある既存のリポジトリファイルを移動します :
$ sudo mv /etc/yum.repos.d/*.repo /tmp/
この時点から、rootユーザーとして継続する方がよいでしょう。 su
でスーパーユーザーに切り替えます コマンド。
次に、リポジトリのディレクトリを作成します:
# mkdir /local_repo
LAN経由でファイルを提供するには、このディレクトリをNginxまたはApacheで使用します。
新しいローカルリポジトリの構成ファイルlocal-dvdrom.repo
を作成します 、/etc/yum.repos.d
の下 ディレクトリ:
# touch /etc/yum.repos.d/local-dvdrom.repo
# chmod u+rw,g+r,o+r /etc/yum.repos.d/local-dvdrom.repo
ステップ3:メディアコンテンツをローカルディレクトリにコピーします
/local_repo
の下でISOファイルをローカルにコピーします ディレクトリ:
# cd /mnt
# tar cvf - . | (cd /local_repo/; tar xvf -)
ファイルがコピーされるまで待ってから、次を使用してファイルがコピーされたことを確認します。
# ls -l /local_repo/
total 56
dr-xr-xr-x. 4 root root 38 Apr 4 2019 AppStream
dr-xr-xr-x. 4 root root 38 Apr 4 2019 BaseOS
dr-xr-xr-x. 3 root root 18 Apr 4 2019 EFI
-r--r--r--. 1 root root 8266 Mar 1 2019 EULA
-r--r--r--. 1 root root 1455 Apr 4 2019 extra_files.json
-r--r--r--. 1 root root 18092 Mar 1 2019 GPL
dr-xr-xr-x. 3 root root 76 Apr 4 2019 images
dr-xr-xr-x. 2 root root 256 Apr 4 2019 isolinux
-r--r--r--. 1 root root 103 Apr 4 2019 media.repo
-r--r--r--. 1 root root 1669 Mar 1 2019 RPM-GPG-KEY-redhat-beta
-r--r--r--. 1 root root 5134 Mar 1 2019 RPM-GPG-KEY-redhat-release
-r--r--r--. 1 root root 1796 Apr 4 2019 TRANS.TBL
ステップ4:ローカルYUM/DNFリポジトリを構成する
以前に作成したリポジトリ構成ファイルを編集します:
# vim /etc/yum.repos.d/local-dvdrom.repo
この構成を貼り付けます:
[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///local_repo/BaseOS/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LocalRepo_AppStream]
name=LocalRepo_AppStream
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///local_repo/AppStream/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
ローカルリポジトリの作成、構成、および管理に必要なパッケージをインストールします。
# yum 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.
LocalRepo_AppStream 94 MB/s | 5.3 MB 00:00
LocalRepo_BaseOS 97 MB/s | 2.2 MB 00:00
repo id repo name status
LocalRepo_AppStream LocalRepo_AppStream 4,672
LocalRepo_BaseOS LocalRepo_BaseOS 1,658
# yum install createrepo yum-utils
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.
Last metadata expiration check: 0:02:33 ago on Sat 05 Oct 2019 09:52:46 PM UTC.
Package dnf-utils-4.0.2.2-3.el8.noarch is already installed.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
createrepo_c x86_64 0.11.0-1.el8 LocalRepo_AppStream 76 k
Installing dependencies:
createrepo_c-libs x86_64 0.11.0-1.el8 LocalRepo_AppStream 101 k
drpm x86_64 0.3.0-14.el8 LocalRepo_AppStream 71 k
Transaction Summary
================================================================================
Install 3 Packages
Total size: 249 k
Installed size: 556 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : drpm-0.3.0-14.el8.x86_64 1/3
Installing : createrepo_c-libs-0.11.0-1.el8.x86_64 2/3
Installing : createrepo_c-0.11.0-1.el8.x86_64 3/3
Running scriptlet: createrepo_c-0.11.0-1.el8.x86_64 3/3
Verifying : createrepo_c-0.11.0-1.el8.x86_64 1/3
Verifying : createrepo_c-libs-0.11.0-1.el8.x86_64 2/3
Verifying : drpm-0.3.0-14.el8.x86_64 3/3
Installed products updated.
Installed:
createrepo_c-0.11.0-1.el8.x86_64 createrepo_c-libs-0.11.0-1.el8.x86_64
drpm-0.3.0-14.el8.x86_64
Complete!
最後に、createrepo
を実行します コマンド:
# createrepo /local_repo/
Directory walk started
Directory walk done - 6647 packages
Temporary output repo path: /local_repo/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
ステップ5:ローカルリポジトリをテストおよび検証する
この手順では、一時リポジトリファイルをクリーンアップし、ローカルリポジトリが有効になっていることを確認します。
# yum clean all
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.
12 files removed
# yum 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.
LocalRepo_AppStream 120 MB/s | 5.3 MB 00:00
LocalRepo_BaseOS 103 MB/s | 2.2 MB 00:00
repo id repo name status
LocalRepo_AppStream LocalRepo_AppStream 4,672
LocalRepo_BaseOS LocalRepo_BaseOS 1,658
ローカルリポジトリが作成されたことを確認します:
<前>の# ls /local_repo/repodata/
26617821a5263fb13c7a49cc5e2d0b979b926eb17b9b4ed0b7df624e04c272f2-other.sqlite.bz2
5626e6dd41648dc6395def6889f4cc0e7f1006bb7d7eca748c9abd4c67fa5b9b-other.xml.gz
6290a72e46a90f98896c14f7664440de10c798d158ce0afe5f15a9f3896b7824-primary.xml.gz
a5c265589796231ed91b8b25a0473d05915bf62496495a004d321d042b26360c-filelists.sqlite.bz2
c8b51f43bdaa4f14cd5b083851cef1068e9284fa6557eb4552ba2ae22e7f72d5-primary.sqlite.bz2
ed21f77d28e263df02739a4bd55eb7247ffd0531c871bfe677d4b205dbffd5e8-filelists.xml.gz
repomd.xml
ローカルリポジトリがファイルを生成したことがわかるので、この時点ではすべて問題ありません。
上記のコマンド出力を注意深く読むと、警告メッセージThis system is not registered to Red Hat Subscription Management. You can use subscription-manager to register
。 dnf
の実行中にこのメッセージを抑制または防止する場合 またはyum
コマンドを実行してから、ファイル/etc/yum/pluginconf.d/subscription-manager.conf
を編集します。 :
# vim /etc/yum/pluginconf.d/subscription-manager.conf
パラメータenabled=1
を変更します enabled=0
に :
[main]
enabled=0
ApacheWebサーバーをセットアップします
前述したように、この記事では、ApacheWebサーバーを使用した独自のリポジトリーのセットアップについて説明します。リポジトリにサービスを提供するためのApacheのインストールと構成を見ていきましょう。
httpd
をインストールするには (Apache)YUMを使用したパッケージ:
# yum install httpd
Last metadata expiration check: 3:38:03 ago on Sun 06 Oct 2019 09:51:22 AM UTC.
Dependencies resolved.
=========================================================================================
Package Arch Version Repository Size
=========================================================================================
Installing:
httpd x86_64 2.4.37-10.module+el8+2764+7127e69e LocalRepo_AppStream 1.4 M
Installing dependencies:
apr x86_64 1.6.3-9.el8 LocalRepo_AppStream 125 k
apr-util x86_64 1.6.1-6.el8 LocalRepo_AppStream 105 k
httpd-filesystem noarch 2.4.37-10.module+el8+2764+7127e69e LocalRepo_AppStream 34 k
httpd-tools x86_64 2.4.37-10.module+el8+2764+7127e69e LocalRepo_AppStream 101 k
mod_http2 x86_64 1.11.3-1.module+el8+2443+605475b7 LocalRepo_AppStream 156 k
mailcap noarch 2.1.48-3.el8 LocalRepo_BaseOS 39 k
redhat-logos-httpd noarch 80.7-1.el8 LocalRepo_BaseOS 25 k
Installing weak dependencies:
apr-util-bdb x86_64 1.6.1-6.el8 LocalRepo_AppStream 25 k
apr-util-openssl x86_64 1.6.1-6.el8 LocalRepo_AppStream 27 k
Enabling module streams:
httpd 2.4
Transaction Summary
=========================================================================================
Install 10 Packages
Total download size: 2.0 M
Installed size: 5.5 M
Is this ok [y/N]:
Apacheがインストールされたら、httpd
を起動して有効にします 起動時に自動起動し、次のコマンドを使用してそのステータスを確認するサービス:
# systemctl start httpd
# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disa>
Active: active (running) since Sun 2019-10-06 10:15:47 UTC; 22s ago
Main PID: 16880 (httpd)
Tasks: 213 (limit: 2348)
Memory: 7.6M
CGroup: /system.slice/httpd.service
├─16880 /usr/sbin/httpd -DFOREGROUND
├─16881 /usr/sbin/httpd -DFOREGROUND
├─16883 /usr/sbin/httpd -DFOREGROUND
├─16884 /usr/sbin/httpd -DFOREGROUND
└─16885 /usr/sbin/httpd -DFOREGROUND
Oct 06 10:15:47 server systemd[1]: Starting Apache HTTP Server...
Oct 06 10:15:47 httpd[16880]: AH00558: httpd: Could not reliably determine the>
Oct 06 10:15:47 server httpd[16880]: Server configured, listening on: port 80
Oct 06 10:15:47 server systemd[1]: Started The Apache HTTP Server.
次に、Apacheに到達できるようにファイアウォールを構成します。
# firewall-cmd --zone=public --permanent --add-service=http
success
# firewall-cmd --zone=public --permanent --add-service=https
success
# firewall-cmd --reload
success
Apacheが稼働中であることを確認します
これで、localhost
に移動して、Apacheサーバーが稼働していることを確認できます。 WebブラウザのURL。デフォルトのApacheWebページhttp://localhost/
表示する必要があります。
Apacheを構成するには、構成ファイルを開きます。
# vim /etc/httpd/conf/httpd.conf
開いたら、DocumentRoot
を見つけます 行を変更して次のように変更します:
DocumentRoot "/local_repo"
次に、/var/www/http
を変更します ディレクトリセクション:
<Directory "/local_repo">
Options All Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ここで、Apacheサービスを再度開始し、そのステータスをテストします。
# systemctl start httpd
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disab>
Active: active (running) since Sun 2019-10-06 14:06:34 UTC; 7s ago
Docs: man:httpd.service(8)
Main PID: 5402 (httpd)
Status: "Started, listening on: port 80"
Tasks: 213 (limit: 11528)
Memory: 39.3M
CGroup: /system.slice/httpd.service
├─5402 /usr/sbin/httpd -DFOREGROUND
├─5403 /usr/sbin/httpd -DFOREGROUND
├─5404 /usr/sbin/httpd -DFOREGROUND
├─5405 /usr/sbin/httpd -DFOREGROUND
└─5406 /usr/sbin/httpd -DFOREGROUND
Oct 06 14:06:34 server systemd[1]: Starting The Apache HTTP Server...
Oct 06 14:06:34 server httpd[5402]: AH00558: httpd: Could not reliably determine the ser>
Oct 06 14:06:34 server httpd[5402]: Server configured, listening on: port 80
Oct 06 14:06:34 server systemd[1]: Started The Apache HTTP Server.
すべてが良いです。ウェルカムページを削除して、リポジトリファイルを提供できるようにします:
# rm -rf /etc/httpd/conf.d/welcome.conf
次に、httpd
をテストします Apacheを再起動します:
# httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
# systemctl restart httpd
local_repo
の権限を変更して、セキュリティ構成を続行します ディレクトリとSELinuxの設定。権限を変更するには:
# setfacl -R -m u:httpd:rwx /local_repo/
次に、SELinuxが施行されているかどうかを確認します:
# getenforce
Enforcing
Enforcing
の場合 、タイプ:
# chcon -Rt httpd_sys_content_t /local_repo/
SELinuxがEnforcingに設定されていない場合、ファイルはリポジトリから提供されません。
# setenforce enforcing
また、/ etc / sysconfig / selinuxファイルを編集して変更を永続的にし、次の値を設定します。
SELINUX=enforcing
次に、Red Hat EnterpriseLinux8クライアントマシンのリポジトリを設定します。
クライアントマシンで、サーバーからクライアントのYUM構成にローカルリポジトリを追加します。
$ sudo vim /etc/yum.repos.d/local-rhel8.repo
次に、次の構成を貼り付けます(セットアップに応じてサーバーのIPアドレスを変更してください):
[LocalServerRepo]
name=LocalServerRepo
enabled=1
gpgcheck=0
baseurl=[http://](http://10.0.0.10/)[**10.0.0.10**](http://10.0.0.10/)[/](http://10.0.0.10/)
LocalServerRepo
をテストします パッケージをインストールする。例:
$ sudo yum install mc
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.
Last metadata expiration check: 0:01:42 ago on Sun 06 Oct 2019 02:14:03 PM UTC.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mc x86_64 1:4.8.19-9.el8 LocalServerRepo 1.9 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 1.9 M
Installed size: 6.8 M
Is this ok [y/N]: y
Downloading Packages:
mc-4.8.19-9.el8.x86_64.rpm 34 MB/s | 1.9 MB 00:00
--------------------------------------------------------------------------------
Total 32 MB/s | 1.9 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : mc-1:4.8.19-9.el8.x86_64 1/1
Running scriptlet: mc-1:4.8.19-9.el8.x86_64 1/1
Verifying : mc-1:4.8.19-9.el8.x86_64 1/1
Installed products updated.
Installed:
mc-1:4.8.19-9.el8.x86_64
Complete!
それは素晴らしい!すべてが期待どおりに機能します。これで、インストールDVDまたはISOファイルを使用して、Red Hat EnterpriseLinux8にApacheベースのローカルYUM/DNFリポジトリが作成されました。