今回は、CentOSのバージョンを固定しようと思い立ったので調べたこと・わかったことを共有します。
前提条件
今回は、CentOS8.0.1905を使用していて、このバージョンで固定しました!
CentOS8.1.1911(最新版)でも検証を行いましたが、調べた結果どのメジャーバージョンでも最新版で固定はできないようでした。(CentOS6.10とか、7.8など)
理由としては、“yum(dnf) update”を参照する先のリポジトリが最新版と旧バージョンで保管場所が変わるからです。
↓ここから先は少し踏み込みます。
CentOSのリポジトリは、
新バージョンがhttp://mirror.centos.org/
旧バージョンがhttp://vault.centos.org/
というパスになります。
したがって旧バージョンはパスを固定できますが、新バージョンを使っている場合はさらに新しいバージョンが出た際に最新版を参照してしまいます。
なので、1段階マイナーバージョンを落とすか、次のバージョンが出るのを待つかになりそうです。例えば、mirrorでバージョンを直書きし、固定しても新バージョンが出たらパスが無くなり、エラーが出てしまいます。
自分で調べた範囲なので、もしこうすればできるよ!などあれば教えていただければ嬉しいです。
設定方法
先ほども説明しましたが、今回は、CentOS8.0.1905にて試していますので適宜自分の固定したいOSに読み替えていただければと思います。
固定するバージョンを確認
私の場合、8.0.1905ですが一応参照先のリポジトリサーバのURLとパスを調べておきます。
今回指定するリポジトリはこんな感じの階層になっている↓
1 2 |
#バージョンを確認するコマンド cat /etc/redhat-release |
でも確認できます。
デフォルトのリポジトリサーバを変更する
CentOSでyumやdnfコマンドを実行した際は、/etc/yum.repos.d/配下に作成されたファイルに書かれているリポジトリサーバにアクセスしてパッケージ情報を取りに行っているわけですが、そのファイルを変更します。
編集するファイルは3つ
-
/etc/yum.repos.d/CentOS-AppStream.repo
-
/etc/yum.repos.d/CentOS-Base.repo
-
/etc/yum.repos.d/CentOS-Extras.repo
です。
CentOS7以前は、CentOS-Base.repoだけだったと思います。(たぶん…)
そして、下の3行をコピペしましょう!と言いたいところですが、バージョンのところ(8.0.1905)だけは、適宜変更してくださいね。。。CentOS7以前の方は2つ目のBase.repoだけでOKです。
1 2 3 4 5 6 7 8 |
#AppStream.repoを変更 sed -i".ORG" -e "s/^mirrorlist/#mirrorlist/g" -e "s/^#baseurl/baseurl/" -e "s/mirror.centos/vault.centos/g" -e "s/\$releasever/8.0.1905/g" /etc/yum.repos.d/CentOS-AppStream.repo #Base.repoを変更 sed -i".ORG" -e "s/^mirrorlist/#mirrorlist/g" -e "s/^#baseurl/baseurl/" -e "s/mirror.centos/vault.centos/g" -e "s/\$releasever/8.0.1905/g" /etc/yum.repos.d/CentOS-Base.repo #Extras.repoを変更 sed -i".ORG" -e "s/^mirrorlist/#mirrorlist/g" -e "s/^#baseurl/baseurl/" -e "s/mirror.centos/vault.centos/g" -e "s/\$releasever/8.0.1905/g" /etc/yum.repos.d/CentOS-Extras.repo |
コマンドの解説—————
- iオプション:CentOS-XXXX.repo.ORGというファイルを作成(バックアップ)
- eオプション:mirrorlistをコメントアウト
- eオプション:baseurlのコメントアウトを外す←リポジトリをmirrorlistからbaseurlに変更
- eオプション:baseurlが参照しているリポジトリサーバをmirror.centos.orgからvault.centos.jpへ変更する
- eオプション:releasever変数を強制的に指定したバージョンへ書き換える
OSの固定ができているかを確認
dnf(yum)のキャッシュを削除してアップデートをかけてみましょう!!
1 2 3 4 5 6 7 8 9 10 11 12 |
#キャッシュの削除 dnf clean all または yum clean all #アップデートを行う dnf -y update または yum -y update #アップデート後にOSが指定したものに固定されているかを確認する cat /etc/redhat-release |
これでバージョンが確認ができれば完了です。
というわけで今回はCentOSのバージョンを固定する方法をご紹介しました。
他にもCentOSに関する記事を多数書いていますので是非ご覧ください。



では〜〜〜
コメント