はじめに
- LPIC試験対策のためにパッケージ管理を理解したいと思った。
- RedHat系はrpm,yumパッケージという二種類のパッケージ管理コマンドがある。
- Macはbrewコマンド、Debian系のOS(Ubuntu, Kali Linuxなど)はaptコマンド、、、他のOSだと1OSにつき1パッケージ管理コマンドがデフォルトで用意されている(*Macはちょっと異なる。。。)
- なぜ、、RedHat系だけ二種類のコマンドがデフォルトで用意されているのだろうか???
ふたつの共通点
- Red Hat(CentOS)のパッケージマネージャ。
- パッケージのインストール、アンインストール更新が可能。
RPMパッケージマネージャ
由来
RPM(RedHat Package Manager)
特徴
- 依存関係を管理してくれる ≒ 依存関係を指定してくれる
- 解決はしてくれない。ただ教えてくれるだけ。
rpmコマンドの使い方
パッケージのインストール
shell
rpm -ivh package_filename
```
例: rpm -ivh firefox-78.4.1-1.el7.centos.x86_64.rpm // rpm
yum install firebox // yum
```
オプション | 長いオプション | 意味 |
---|---|---|
-i | --install | パッケージをインストール |
-v | 情報表示を増やす | |
-h | --hash (#) | インストール時の経過を#(ハッシューマーク)で表示する |
パッケージのアップデート
shell
rpm -Uvh package_filename
オプション | 名称 | 意味 |
---|---|---|
-U | --upgrade | パッケージをアップグレードする(なければインストール) |
パッケージのアンインストール
shell
rpm -evh package_name
オプション | 長いオプション | 意味 |
---|---|---|
-e | --erase | パッケージをアンインストールする |
その他オプション
オプション | 長いオプション | 意味 | -ql | --query --list | パッケージに含まれるファイルを表示する |
---|---|---|
-qa | --list -all | インストール済みのすべてのrpmパッケージの一覧を表示する |
YUMパッケージマネージャ
由来
Yellowdog Updater Modified(イエロードッグアップデーターの修正版)
=> 元々はYellow Dog Linuxのパッケージ管理システムであるYUP(Yellowdog Updater)というもののが前身にあった。YUPをRedHat Version にしたのがYum
!!!
このようなことから
YuModified(修正)と呼ばれている。特徴
- 自動で依存関係を解決してくれる。
yumコマンドの使い方
更新の確認
- 使用しているシステムに利用可能な更新があるインストール済みのパッケージを確認する。
例: Appstoreを開いてアップデート可能なアプリを確認する行為。(*この時点ではアップデートボタンはクリックしていない。)

shell
yum check-update
パッケージのインストール
shell
yum install package_name
パッケージの更新
- 一度に更新するパッケージ数を1つ、複数、または全てのパッケージから選択できる。
- 単一パッケージの更新
- 2. 全てのパッケージとそれらの依存関係の更新
- パッケージとその依存関係をすべて更新するには、引数なし。
- 3. パッケージの削除
- パッケージのインストールと同様に、yum を使用するとパッケージのアンインストールができます。
- ある作成したプログラムを動作させる際に、動作させるために必要な別のプログラムがある場合、作成したプログラムは、必要なプログラムに依存しているまたは依存関係にあると言います。
- yumコマンドは廃止されるらしい。。。
=> 後継ツールはdnfコマンド!!

例: 画像でいうとNumbersアプリのアップデートボタンをクリックする。 == `yum update Numbers`
shell
yum update package_name

例: 右上のすべてをアップデートボタンをクリックする。
shell
yum update
yum remove package_name
依存関係とは。。。
python(簡単な依存関係)
1. a = 1+2
2. b = a +3
マルチスレッド(同時実行)が不可能 => 依存関係がある
yumはもう古い?
yum はpython2系なのでいつまでも使い続けられない。。。(現在はpython3系が主流)
dnfはpython3系で動くためdnfコマンドが後継ツールになった!!!