内部に抱える計算機が多くなるとyum-updateの参照先を内部に抱えたくなる.
ちょうどwindows-updateの配布パッケージを社内に持つように.

ここではそんなリポジトリのミラーを作ってみた(ローカルリポジトリ)

参照先 https://www.server-world.info/query?os=CentOS_7&p=localrepo

RHEL7系+RHEL8系+RHEL9系

RHEL{7,8,9}系のローカルリポジトリを作ってみる.

ローカルリポジトリサイトは 「repository.sybyl.local」 とします.
httpが動いてればOSは何でもいいです.

ここにRHEL{7,8,9}系のパッケージデータを集めてみた. epelも
参照 https://wiki.rockylinux.org/rocky/repo/

(OSがRHEL7系なら)
yum install httpd rsync createrepo
 
(OSがRHEL8,9系なら)
dnf install httpd rsync createrepo_c
 
(RHEL7系CentOS7)
[root@repository ~]# mkdir -p /var/www/html/repos/centos/7/{os,updates,extras}/x86_64   /var/www/html/repos/fedora/epel/7/x86_64
[root@repository ~]# rsync -avz --delete ftp.riken.jp::centos/7/os/x86_64/Packages/      /var/www/html/repos/centos/7/os/x86_64/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::centos/7/updates/x86_64/Packages/ /var/www/html/repos/centos/7/updates/x86_64/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::centos/7/extras/x86_64/Packages/  /var/www/html/repos/centos/7/extras/x86_64/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::fedora/epel/7/x86_64/Packages/    /var/www/html/repos/fedora/epel/7/x86_64/Packages/
[root@repository ~]# cd /var/www/html/repos/centos/7
[root@repository 7]# for i in "os/x86_64" "updates/x86_64" "extras/x86_64" ; do createrepo $i ; done
[root@repository 7]# createrepo /var/www/html/repos/fedora/epel/7/x86_64
 
(RHEL8系RockyLinux8)
[root@repository ~]# mkdir -p   /var/www/html/repos/rocky/8/{AppStream,BaseOS,Devel,extras,PowerTools}/x86_64/os /var/www/html/repos/fedora/epel/8/{Everything,Modular}/x86_64
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/8/AppStream/x86_64/os/Packages/   /var/www/html/repos/rocky/8/AppStream/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/8/BaseOS/x86_64/os/Packages/      /var/www/html/repos/rocky/8/BaseOS/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/8/Devel/x86_64/os/Packages/       /var/www/html/repos/rocky/8/Devel/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/8/extras/x86_64/os/Packages/      /var/www/html/repos/rocky/8/extras/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/8/PowerTools/x86_64/os/Packages/  /var/www/html/repos/rocky/8/PowerTools/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::fedora/epel/8/Everything/x86_64/Packages/ /var/www/html/repos/fedora/epel/8/Everything/x86_64/Packages
[root@repository ~]# rsync -avz --delete ftp.riken.jp::fedora/epel/8/Modular/x86_64/Packages/    /var/www/html/repos/fedora/epel/8/Modular/x86_64/Packages
[root@repository ~]# cd /var/www/html/repos/rocky/8
[root@repository 8]# for i in "AppStream/x86_64/os" "BaseOS/x86_64/os" "Devel/x86_64/os" "extras/x86_64/os" "PowerTools/x86_64/os" ; do createrepo $i ; done
[root@repository 8]# createrepo /var/www/html/repos/fedora/epel/8/Everything/x86_64
[root@repository 8]# createrepo /var/www/html/repos/fedora/epel/8/Modular/x86_64
 
(RHEL9系RockyLinux9)
[root@repository ~]# mkdir -p   /var/www/html/repos/rocky/9/{AppStream,BaseOS,CRB,devel,extras,plus}/x86_64/os /var/www/html/repos/fedora/epel/9/Everything/x86_64
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/9/AppStream/x86_64/os/Packages/   /var/www/html/repos/rocky/9/AppStream/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/9/BaseOS/x86_64/os/Packages/      /var/www/html/repos/rocky/9/BaseOS/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/9/CRB/x86_64/os/Packages/         /var/www/html/repos/rocky/9/CRB/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/9/devel/x86_64/os/Packages/       /var/www/html/repos/rocky/9/devel/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/9/extras/x86_64/os/Packages/      /var/www/html/repos/rocky/9/extras/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::rocky/9/plus/x86_64/os/Packages/        /var/www/html/repos/rocky/9/plus/x86_64/os/Packages/
[root@repository ~]# rsync -avz --delete ftp.riken.jp::fedora/epel/9/Everything/x86_64/Packages/ /var/www/html/repos/fedora/epel/9/Everything/x86_64/Packages/
[root@repository ~]# cd /var/www/html/repos/rocky/9
[root@repository 9]# for i in "AppStream/x86_64/os" "BaseOS/x86_64/os" "CRB/x86_64/os" "devel/x86_64/os" "extras/x86_64/os" "plus/x86_64/os" ; do createrepo $i ; done
[root@repository 9]# createrepo /var/www/html/repos/fedora/epel/9/Everything/x86_64

「reposync」コマンドでより簡単にできそうだけど、rsyncを使ってます

以上で準備は完了です. 次にこの作ったリポジトリを使ってみます. 「/etc/yum.repos.d/*.repo」のリポジトリ参照先を変更します
(RockyLinux9の場合)

これで「yum update/install」らはローカルリポジトリ「repository.sybyl.local」を参照するようになります.
repoファイルの変数ですが、「$contentdir」->「pub/rocky」、「$releasever」->「9」、「$basearch」->「x86_64」と対応するみたい

ubuntuのローカルリポジトリ

使っているノードがubuntuなら「apt-mirror」が便利らしいが、ここではRHEL系の上で行いたい
「debmirror」が簡単に作れるそうな https://github.com/bviktor/debmirror-runner
っがRocky9向けには用意されていない様子..

yum install --enablerepo=epel debmirror

まずkeyが必要. 簡単にubuntu22.04の/usr/share/keyrings/ubuntu-archive-keyring.gpgを持ってくる. っで

mkdir /opt/UbuntuMirror/mirrorkeyring
gpg --no-default-keyring --keyring /opt/UbuntuMirror/mirrorkeyring/trustedkeys.gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg

として「/opt/UbuntuMirror/mirrorkeyring/trustedkeys.gpg」を作る.
あとは/etc/debmirror.confのパラメータを弄る

--- /etc/debmirror.conf.orig    2022-10-03 20:46:52.000000000 +0900
+++ /etc/debmirror.conf 2023-07-30 20:12:26.499895169 +0900
@@ -12,7 +12,7 @@
 # files.
 
 # Location of the local mirror (use with care)
-# $mirrordir="/path/to/mirrordir"
+$mirrordir="/var/www/html/repos/ubuntu";
 
 # Output options
 $verbose=0;
@@ -20,14 +20,14 @@
 $debug=0;
 
 # Download options
-$host="ftp.debian.org";
+$host="ftp.riken.jp";
 $user="anonymous";
 $passwd="anonymous@";
-$remoteroot="debian";
-$download_method="ftp";
-@dists="sid";
-@sections="main,main/debian-installer,contrib,non-free,non-free-firmware";
-@arches="i386";
+$remoteroot="ubuntu";
+$download_method="rsync";
+@dists="jammy,jammy-security,jammy-updates";
+@sections="main,restricted,universe,multiverse";
+@arches="amd64";
 # @ignores="";
 # @excludes="";
 # @includes="";
@@ -36,9 +36,9 @@
 $omit_suite_symlinks=0;
 $skippackages=0;
 # @rsync_extra="doc,tools";
-$i18n=0;
+$i18n=1;
 $getcontents=0;
-$do_source=1;
+$do_source=0;
 $max_batch=0;
 
 # @di_dists="dists";

その後にミラーリポジトリを作らせる

export GNUPGHOME=/opt/UbuntuMirror/mirrorkeyring
debmirror

参照先 https://help.ubuntu.com/community/Debmirror
出来上がったリポジトリのサイズは「203GB」でした.

次に構築したubuntuリポジトリを参照させる.

root@ubuntu22:~# vi /etc/apt/sources.list
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy main restricted
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy-updates main restricted
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy universe
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy-updates universe
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy multiverse
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy-updates multiverse
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy-backports main restricted universe multiverse
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy-security main restricted
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy-security universe
deb [arch=amd64] http://repository.sybyl.local/repos/ubuntu/ jammy-security multiverse
 
root@ubuntu22:~# 
root@ubuntu22:~# apt update

リポジトリを更新したら「apt update」を実施します. これで作ったローカルリポジトリが参照され、閉鎖環境でアプリの更新が可能となる
クライアントの「/etc/hosts」には「repository.sybyl.local」のエントリーを載せる

最新の60件
2024-12-08 2024-12-05 2024-12-04 2024-11-28 2024-11-23 2024-11-22 2024-11-15 2024-11-14 2024-11-12 2024-11-06 2024-11-05 2024-11-04 2024-11-02 2024-11-01 2024-10-29 2024-10-28 2024-10-27 2024-10-23 2024-10-18 2024-10-17 2024-10-15 2024-10-14 2024-10-13 2024-10-11 2024-10-10 2024-10-09 2024-10-08 2024-10-05 2024-10-04 2024-10-03 2024-10-02 2024-10-01 2024-09-30 2024-09-29 2024-09-28 2024-09-27 2024-09-22 2024-09-20 2024-09-17

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-08-07 (月) 01:22:32