この記事で学べること
本記事では以下3点について触れています。
・古いOSでのパッケージのインストール方法(カーネルのバージョンアップ方法)
・yumの設定ファイル詳細について
・リポジトリの概要について
概要
今回現在の勤務の中で、Linux上でのリポジトリ操作(設定ファイル変更とインストール)を行う機会があったので、その際に行ったことなどを備忘録として残せればいいかなと思い、まとめてみました。
実際の作業では、最終的にyum操作でインストールは行えなかったのですが、
検証の過程でリポジトリ操作を行い、その中で学んだことの内容となります。
要件と経緯
要件としてはLinuxカーネルのバージョン変更の必要がありました。
その手段としてまずリポジトリ操作(yum)を用いることに。
しかし、今回対象サーバのOSバージョンがかなり古く、有用な情報源に苦戦しました。
以下、構築環境。
構築環境
OS:CentOS3.9
カーネルバージョン:i386 2.4.21-63(変更前) → i386 smp2.4.21-63(変更後)
①現在のrpmデータベース上を確認
以下コマンドでの現在インストールされているカーネルを確認。
# rpm -qa | grep kernel
上記実行で今回変更したいバージョン(本記事だとsmp2.4.21-63)がないのを確認します。
※こちらで検索できたものは実際に現在、使用できるカーネルバージョンとなっており、
設定ファイルを変更(③で記載)や起動時のgrubの設定より選択・変更が可能。
②yumを使用してのインストール
コマンドで実行し、必要なパッケージをインストールを行なっていきます。
なるべく関係ないものはインストールしたくないので、カーネル関係のみで指定。
# yum install kernel*
古いOSのバージョンを参照する場合
最近のOSバージョンの場合であれば、デフォルトで設定されている参照先ミラーサイトで問題ないが、
今回のような古いOSバージョンになると、こちらからは参照できない。
以下のURLのサイトを指定する必要がある。
※vault=保管庫という意味合い
③の手順でURLを設定ファイルに指定していきます。
③設定ファイルyum.confの修正
それでは設定ファイルを修正していきます。
設定ファイルは以下のいずれかを使用。
設定ファイル | 詳細 |
---|---|
/etc/yum.conf | デフォルトで使用されるファイル。ファイル内にmain,update,repositoryなどの セッションが分かれている。 |
/etc/yum.repos.d/<ファイル名> | 設定ファイルをカスタムして、使用することが可能。<ファイル名>は任意。 |
公式では、リポジトリごとに/etc/yum.repos.d/<ファイル名>で設定ファイルを分けることが推奨されているようです。
設定ファイル
設定ファイル例を挙げます。
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
[repository]
name=repository_name
baseurl=repository_url
それぞれの項目の詳細については取り上げませんが、(上記URLに説明あり)
今回の設定において確認が必要になってくるのが 「baseurl=」 の箇所となります。
こちらに②の手順内にあったhttps://vault.centos.org/
を当てはめていくこととなります。
[repository]
baseurl=https://vault.centos.org/$releasever/updates/$besearch/
$releasever,$besearch
は元からサーバ側で定義されている変数となり、
それぞれの環境に沿った値が入ります。
本環境ですと以下のようになります。
$releasever・・・centos3.9
$besearch・・・i386
また今回のようなリポジトリは「リモートリポジトリ」に分類されますが、
リモートがあるように、ローカルリポジトリも存在します。
それぞれどのような環境を意味するのか、
下記に簡単にまとめてみました。
リモートリポジトリ
・・・・今回のようなインタネット上にて、配布されているパッケージをまとめてあるサイトへアクセスし、使用するリポジトリ
ローカルリポジトリ
・・・・あらかじめリポジトリのデータをios形式、圧縮(gzip,tar)などでサーバに配置し、それを参照するリポジトリ。インターネット接続不可の環境でもyum実行が可能になる
※設定ファイルにてbaseurl=file:///[ディレクトリパス]を記載で参照可能になる
④インストールしたカーネルバージョンを選択
無事、インストールが実行できたら再起動し、新しいバージョンへ変更していきます。
①の手順にあるように起動時のgrubの編集画面から手動で選択してもいいですが、
それだと再起動のたびに手動で選択しないと行けません。
「/boot/grub/grub.conf」を編集して、自動で立ち上がるようにします。
以下、参照先。
※ubuntu系は「/boot/grub/menu.lst」
今回は「default」の値を1→0に変更しました。
以上で設定は完了です。
所感
リポジトリ自体はlinuxでも最初の方で学ぶ分野ではあるが、
実際操作してみて、初めて理解ができたような感じでした。
OSが古いので、参照できるような情報があるのかと半信半疑だったが、
意外と同じような取り組みをされている方が多く、
環境によってはやむ得ずに古いバージョン内でやりくりするパターンもあるのだと感じました。