助け合いフォーラム

LPIC

LPIC Lv1-101(Ver5.0)
問題ID : 34632
問題を開く
apt-getコマンドを使用して、パッケージの削除を行わずに、インストール済みの全パッケージを対象として更新を実行したい。適切なコマンドは次のうちどれか。

正解

apt-get upgrade

解説

apt-getコマンドは、インターネット上ないしはメディア上のパッケージ情報のデータベースを使い、依存関係を調整しながら、パッケージのインストール・アンインストールなどを行えるコマンドです。

apt-getコマンドの書式および主なサブコマンドは以下のとおりです。

apt-get [オプション] サブコマンド


以下で、パッケージの更新方法であるupgradeとdist-upgradeの違いを説明します。

更新作業では、パッケージを個々に更新するだけでなく、新バージョンに伴う新しい依存関係の構築が必要な場合もあります。これは新しいバージョンのパッケージで機能が追加されたり仕様が変更された場合、他のパッケージとの依存関係が変わることがあるからです。このような状況下でパッケージを更新する場合、upgradeとdist-upgradeでは異なるアプローチをとり、結果も変わります。

upgrade:現行の依存関係を優先して維持します。新たな依存関係が必要な更新は避け、既存パッケージの削除や新パッケージの追加は行いません。その結果、一部のパッケージが更新されないこともありますが、これはシステムに予期せぬ問題が発生するリスクを低減するためです。なお、カーネルについては更新しません。

dist-upgrade:ディストリビューション全体、つまりシステム内の全パッケージとカーネルを最新の状態に保つことを優先します。新しい依存関係の必要性がある更新も進め、必要に応じて既存パッケージの削除や新パッケージの追加も行います。これにより最新の機能を取り入れることが可能になります。

本問のように、パッケージの削除を行わずに、全パッケージを対象として更新を試みる方法は、upgradeが最適な選択となります。

したがって正解は
・apt-get upgrade
です。

以下は実行例です。


その他の選択肢については以下のとおりです。
・apt-get update
updateはパッケージや取得元(リポジトリ)のバージョン情報を管理するデータベースを更新しますので、誤りです。
このデータベースは「/etc/apt/sources.list」というファイルによって定義されます。
updateは定期的に実行する事が推奨されています。特に、upgradeやdist-upgradeを行う前には実行するべきです。

・apt-get install
installによる更新は特定のパッケージが対象ですので、誤りです。
installは、指定したパッケージがインストールされていない場合はインストールを行い、パッケージが既にインストールされている場合は最新版に更新します。

・apt-get dist-upgrade
dist-upgradeは全パッケージの更新を行いますが、その際必要に応じて削除も行いますので、誤りです。
dist-upgradeは、システム内の全パッケージを最新の状態に保つ目的にもとづき、新しい依存関係を満たすために既存パッケージの削除や新パッケージの追加も行う仕様になっています。

・apt-get -u
存在しないサブコマンドですので、誤りです。
上に戻る

apt-get dist-upgradeのカーネル更新有無

投稿日 2023/07/17

この問題の解説に、以下の記載があります。
①このような状況下でパッケージを更新する場合、upgradeとdist-upgradeでは異なるアプローチをとり、結果も変わります。なお、カーネルについては更新しません。
②dist-upgrade:ディストリビューション全体、つまりシステム内の全パッケージとカーネルを最新の状態に保つことを優先します。

②の見ると、dist-upgradeでは、カーネルを更新すると言っている様に見えます。
このことから、①の「なお、カーネルについては更新しません。」は、upgradeだけにあてはまり
upgrade:カーネルを更新しない
dist-upgrade:カーネルを更新する
と理解したのですが、正しいでしょうか。

ご存じの方がおられたら、教えて下さい。
宜しくお願いします。

2023/07/18 13:16

staff_ueda様
ご回答いただき、ありがとうございます。承知いたしました。


コメント

この返信に対して
コメントを記入できます

スタッフからの返信

s staff_ueda

2023/07/18 10:55

kz5835 様 >「なお、カーネルについては更新しません。」は、upgradeだけにあてはまり >upgrade:カーネルを更新しない >dist-upgrade:カーネルを更新する >と理解したのですが、正しいでしょうか。 その通りでございます。 ご指摘の文「なお、カーネルについては更新しません。」を適切な位置(upgrade)に移動いたしました。 ご報告いただきまして、誠にありがとうございます。

この投稿に対して返信しませんか?