dnf install するときに時間がかかることがある
これは対象のプログラムをオンラインで相手側からダウンロードしてくることが主なボトルネックとなっているから
余談だがボトルネックは日本語の同意語で「隘路(あいろ)」というらしい
予めローカルにすべて持っておいて、dnf installするときにそのサーバーを見れば早い
そのためのサーバーを組む
スペック
createrepoする際にCPUを使うこともあるので、早くリポジトリを組みたいならCPUは多め
ただ毎日の更新をしてもそんなに大量に更新があるわけではないので、下記がおすすめ
ディスクは 60GBもあれば十分
記事投稿時点では利用量は19GBとなっていた
・構築時/リポジトリの初期作成
CPU:8 ※搭載スペックに合わせて最大
・運用中
CPU:1
リポジトリ確保
dnf reposync
対象プログラムの入手はdnfコマンドのreposyncで行える
パラメータなしだと現在のディレクトリでダウンロードが始まる
リポジトリの作成
dnf -y install createrepo createrepo [リポジトリを作成するプログラムがあるディレクトリ] -o [リポジトリ情報の出力先]
dnf reposync した後に、それによってダウンロードされているディレクトリに対してcreaterepoコマンドを用いることでリポジトリを作る
公開webサーバー導入
nginxでもapacheでもlighttpdでもお好みで、ここは省略
ルートディレクトリはリポジトリ情報があるところにする
repoファイルを書く
[xxxx] name=[リポジトリ名/任意で指定] baseurl=[公開しているサーバー] gpgcheck=0 sslverify=0 ... (複数ある場合は同様に列挙する)
gpgcheckとsslverifyは0にする
リポジトリを信用するための情報を認証するパラメータだが、ローカルで作っているのでここは無視する
実際に利用する
repoファイルを /etc/yum.repos.d に格納する
ローカルリポジトリ以外を利用しないようにする場合、/etc/yum.repos.d の中身をすべてどこかに退避する
トラブルシューティングなど
リポジトリの更新をしたい
dnf reposyncとcreaterepoを再度行う
手でやるのは面倒なので、バッチ書いてcronにでも投げ込んでおくと良い
いつの日か標準リポジトリも同時に見るようになった
coreの更新で起こる (※CentOSの場合、Almaでも同様なのかは今後要確認)
yum.repos.d の内容がもとに戻ることが原因
再度、yum.repos.dの内容を退避してローカルリポジトリのrepoファイルのみにする