1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Linux】パッケージ管理についての備忘録~yumの操作とリポジトリについて~

Posted at

この記事で学べること

本記事では以下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の設定より選択・変更が可能。

grub設定画面)
スクリーンショット 2023-11-07 10.44.21.png

②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が古いので、参照できるような情報があるのかと半信半疑だったが、
意外と同じような取り組みをされている方が多く、
環境によってはやむ得ずに古いバージョン内でやりくりするパターンもあるのだと感じました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?