Linux講座にようこそ。このページは「Linuxの使い方 - 第7章 システム管理」です。
システムのインストール後に、使用しているソフトウェアにセキュリティホール等の不具合が見つかることがよく有ります。この様な時には対策済みのバージョンに更新する必要が有ります。Fedora等の多くのディストリビューションではソフトウェアはRPMパッケージと呼ばれる形式のファイルで提供されていますので、ソフトウェアの更新は最新のRPMパッケージを入手して、それをインストールするということになります。
RPMパッケージの管理ツールはいくつか有りますが、ここではFedoraの標準パッケージ管理のdnfコマンドをご紹介します。
パッケージ管理ツールにはGUIツールもありますので、デスクトップ環境の場合はGUIツールを使うと良いでしょう。
図7-3はKDEデスクトップ環境のapperというパッケージ管理ツールですが、このようなGUIツールを使えばパッケージの検索、インストール、削除、最新パッケージへの更新、等が行えます。
dnfコマンドはRPMパッケージのインストールや削除(アンインストール)はもちろん、パッケージの検索等も行えます。
パッケージには他のパッケージとの依存関係がありますが、dnfコマンドは依存関係にあるパッケージをチェックして、インストールされていなければ自動的にインストールします。
RPMパッケージはyumレポジトリサーバーと呼ぶサーバーで管理されており、通常はFedoraプロジェクトの公式レポジトリからダウンロードしてインストールを行います。レポジトリの設定は/etc/yum.repos.d/以下に用意してあります。公式レポジトリだけを利用するのであれば、設定を追加・修正する必要はありません。しかし、非公式レポジトリを使用する場合は、設定ファイルを取得してインストールする必要があります。例えば、ウェブブラウザのFlash Playerプラグインはアドビ・システムズ株式会社のダウンロードサイトに用意されているyumの設定ファイルをあらかじめインストールしておき、それからFlashをインストールすることになります。
dnfコマンドはインターネット上のレポジトリにアクセスしますので、インターネットにアクセスできる環境が必要です。また、パッケージの新規インストール、更新、削除はシステム管理者(root)の権限が必要ですが、検索・表示は一般ユーザの権限で行えます。
使用目的別にオプションを説明します。
オプション | 意味 |
---|---|
-y, --assumeyes | 問い合わせのメッセージに対して、全て「y(yes)」で答えます。 |
nkfパッケージを検索し、パッケージの情報を表示ます。
$ dnf search 'nkf' ← 検索キーとしてnkfを指定します メタデータの期限切れの確認は、1 day, 1:56:18 時間前の Fri Mar 24 09:27:40 2017 に実施しました。 =================================== N/S Matched: nkf =================================== nkf.x86_64 : A Kanji code conversion filter perl-NKF.x86_64 : Perl extension for Network Kanji Filter thinkfan.x86_64 : A simple fan control program $ $ dnf list nkf ← nkfパッケージのインストール状況を表示します メタデータの期限切れの確認は、1 day, 2:10:00 時間前の Fri Mar 24 09:27:40 2017 に実施しました。 利用可能なパッケージ ← 未インストールですが、インストール可能なパッケージを表します nkf.x86_64 1:2.1.4-3.fc25 fedora $ $ dnf info nkf ← nkfパッケージの情報を表示します メタデータの期限切れの確認は、1 day, 2:10:42 時間前の Fri Mar 24 09:27:40 2017 に実施しました。 利用可能なパッケージ 名前 : nkf アーキテク : x86_64 エポック : 1 バージョン : 2.1.4 リリース : 3.fc25 容量 : 141 k リポジトリ : fedora 概要 : A Kanji code conversion filter URL : http://nkf.osdn.jp/ ライセンス : BSD 説明 : Nkf is a Kanji code converter for terminals, hosts, and networks. Nkf : converts input Kanji code to 7-bit JIS, MS-kanji (shifted-JIS) or : EUC. $
nkfパッケージを新規インストールします。
# dnf install nkf メタデータの期限切れの確認は、0:49:51 時間前の Sat Mar 25 10:50:54 2017 に実施しました。 依存性が解決されました。 ======================================================================================== Package アーキテクチャ バージョン リポジトリ 容量 ======================================================================================== インストール: nkf x86_64 1:2.1.4-3.fc25 fedora 141 k トランザクションの要約 ======================================================================================== インストール 1 パッケージ 総ダウンロード容量: 141 k インストールされる容量: 293 k これでいいですか? [y/N]: y ← 「y」を応答します パッケージをダウンロードしています: nkf-2.1.4-3.fc25.x86_64.rpm 809 kB/s | 141 kB 00:00 ---------------------------------------------------------------------------------------- 合計 87 kB/s | 141 kB 00:01 トランザクションの確認を実行中... トランザクションの確認に成功しました。 トランザクションのテストを実行中... トランザクションのテストに成功しました。 トランザクションを実行中... インストール : nkf-1:2.1.4-3.fc25.x86_64 1/1 検証中 : nkf-1:2.1.4-3.fc25.x86_64 1/1 インストール済み: nkf.x86_64 1:2.1.4-3.fc25 完了しました! #
上記実行例でインストールしたnkfパッケージを削除します。
# dnf remove nkf 依存性が解決されました。 ======================================================================================== Package アーキテクチャ バージョン リポジトリ 容量 ======================================================================================== 削除: nkf x86_64 1:2.1.4-3.fc25 @fedora 293 k トランザクションの要約 ======================================================================================== 削除 1 パッケージ インストールされる容量: 293 k これでいいですか? [y/N]: y ← 「y」を応答します トランザクションの確認を実行中... トランザクションの確認に成功しました。 トランザクションのテストを実行中... トランザクションのテストに成功しました。 トランザクションを実行中... 削除中 : nkf-1:2.1.4-3.fc25.x86_64 1/1 検証中 : nkf-1:2.1.4-3.fc25.x86_64 1/1 削除しました: nkf.x86_64 1:2.1.4-3.fc25 完了しました! #
インストール済の全パッケージに対して更新状況を確認します。
$ dnf check-update ← 更新パッケージが有るかを確認します Fedora 25 - x86_64 - Updates 6.9 MB/s | 21 MB 00:03 メタデータの期限切れの確認は、0:00:08 時間前の Fri Mar 24 09:27:40 2017 に実施しました。 apper.x86_64 0.9.3-0.7.20170226.fc25 updates iproute.x86_64 4.10.0-1.fc25 updates iproute-tc.x86_64 4.10.0-1.fc25 updates $
最新パッケージへの更新を行います。
# dnf upgrade -y ← -yオプションにより、全て「y」を応答します メタデータの期限切れの確認は、0:20:10 時間前の Fri Mar 24 09:08:21 2017 に実施しました。 依存性が解決されました。 ======================================================================================== Package アーキテクチャ バージョン リポジトリ 容量 ======================================================================================== アップグレード: apper x86_64 0.9.3-0.7.20170226.fc25 updates 598 k iproute x86_64 4.10.0-1.fc25 updates 472 k iproute-tc x86_64 4.10.0-1.fc25 updates 357 k トランザクションの要約 ======================================================================================== アップグレード 3 パッケージ 総ダウンロード容量: 1.4 M パッケージをダウンロードしています: (1/3): apper-0.9.3-0.5.20161109.fc25_0.9.3-0.7.20170226 1.4 MB/s | 227 kB 00:00 (2/3): iproute-tc-4.10.0-1.fc25.x86_64.rpm 2.1 MB/s | 357 kB 00:00 (3/3): iproute-4.10.0-1.fc25.x86_64.rpm 2.1 MB/s | 472 kB 00:00 [DRPM] apper-0.9.3-0.5.20161109.fc25_0.9.3-0.7.20170226.fc25.x86_64.drpm: done ---------------------------------------------------------------------------------------- 合計 558 kB/s | 1.0 MB 00:01 Delta RPMs reduced 1.4 MB of updates to 1.0 MB (26.1% saved) トランザクションの確認を実行中... トランザクションの確認に成功しました。 トランザクションのテストを実行中... トランザクションのテストに成功しました。 トランザクションを実行中... アップグレード: iproute-4.10.0-1.fc25.x86_64 1/6 アップグレード: iproute-tc-4.10.0-1.fc25.x86_64 2/6 アップグレード: apper-0.9.3-0.7.20170226.fc25.x86_64 3/6 整理中 : iproute-tc-4.6.0-6.fc25.x86_64 4/6 整理中 : iproute-4.6.0-6.fc25.x86_64 5/6 整理中 : apper-0.9.3-0.5.20161109.fc25.x86_64 6/6 検証中 : apper-0.9.3-0.7.20170226.fc25.x86_64 1/6 検証中 : iproute-4.10.0-1.fc25.x86_64 2/6 検証中 : iproute-tc-4.10.0-1.fc25.x86_64 3/6 検証中 : iproute-4.6.0-6.fc25.x86_64 4/6 検証中 : iproute-tc-4.6.0-6.fc25.x86_64 5/6 検証中 : apper-0.9.3-0.5.20161109.fc25.x86_64 6/6 アップグレード済み: apper.x86_64 0.9.3-0.7.20170226.fc25 iproute.x86_64 4.10.0-1.fc25 iproute-tc.x86_64 4.10.0-1.fc25 完了しました! #
ダウンロードしたパッケージのキャッシュは/var/cache/dnf/以下にありますので、現在の容量を表示後削除します。
# du -sh /var/cache/dnf ← キャッシュの容量を表示します 164M /var/cache/dnf # # dnf clean all ← キャッシュの内容を削除します 52 files removed # # du -sh /var/cache/dnf ← 削除後の容量を表示します 7.0M /var/cache/dnf #