apt-get upgradeとapt-get dist-upgradeとapt upgradeとapt full-upgradeの違い

Debian系のLinuxで使われている、パッケージ管理システム「apt」には

  • apt-get upgrade
  • apt-get dist-upgrade
  • apt upgrade
  • apt full-upgrade

という感じで、パッケージをアップグレードするための「コマンド・サブコマンド」が主に4種類あるらしい。

(厳密に言うとaptitude コマンドもあるらしいけどこの記事では割愛します)

 

この4つの違いについて調べた結果メモ。

 

以下、man apt-getより引用です。

apt-get upgrade
upgrade は、現在システムにインストールされている全パッケージの最新バージョンを、/etc/apt/sources.list に列挙した取得元からインストールするのに使用します。現在インストール中のパッケージに新しいバージョンがあれば更新しますが、いかなる時も現在インストール中のパッケージの削除は行いませんし、インストールしていないパッケージの取得・インストールは行いません。

対象のパッケージが、他のパッケージのインストール状態を変更せずに更新できない場合は、現在のバージョンのままとなります。最初に update を実行しておき、apt-get にパッケージの新しいバージョンがあることを知らせる必要があります。

 

apt-get dist-upgrade
dist-upgrade は、upgrade の機能に加え、新バージョンのパッケージに対する依存関係の変更を知的に操作します。apt-get は「洗練された」競合解決システムを持ち、必要とあらば比較的重要でないパッケージを犠牲にして、最重要パッケージの更新を試みます。そのため dist-upgrade は、いくつかのパッケージを削除する可能性があります。

/etc/apt/sources.list ファイルには、必要なパッケージファイルを検索する場所のリストが含まれています。特定のパッケージ向けに、一般的な設定を上書きする機構については、apt_preferences(5) をご覧ください。

 

以下、man aptより引用です。

apt upgrade
upgrade は、sources.list(5) で設定された取得元からシステムに現在インストール済みのすべてのパッケージで利用可能なアップグレードをインストールするために使用されます。

依存関係を満たすために必要な場合は新しいパッケージがインストールされますが、既存のパッケージが削除されることはありません。パッケージのアップグレードにインストール済みパッケージの削除が必要な場合、そのパッケージのアップグレードは行われません。

 

apt full-upgrade 
full-upgrade はアップグレードの機能を実行しますが、システム全体をアップグレードするために必要とされる場合には、現在インストール済みのパッケージを削除することができます。

 

ふむふむ・・・。

書いていることを表にまとめるとこんな感じ↓・・・?

項目 apt-get upgrade apt-get dist-upgrade apt upgrade apt full-upgrade
追加パッケージのインストール しない する する する
不要なパッケージの削除 しない する しない する
プログレスバーが表示されて進捗状況が分かりやすい?

 

とりあえず

  • apt-get dist-upgrade
  • apt full-upgrade

の2つはまったく同じ機能らしい・・・。

まとめ

・一般ユーザーはapt upgradeを使っておけばいい。これが推奨されてるので。

・スクリプトとか書く人はapt-get upgradeを使ったほうが出力が安定しているので良いらしい(?)。

・カーネルとか重要なやつとかを色々アップグレードしたい場合はapt-get dist-upgradeapt full-upgradeを使えばいいっぽい(?)。

 

雑な記事ですみません・・・。

 

おわり

Linux
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。WEBエンジニア。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

フォローする
フォローする

コメント

  1. take より:

    コメント失礼します。
    apt updateはパッケージのインストールではなく、パッケージリストを更新するコマンドではないでしょうか…?
    apt upgradeとapt updateを少し混同されているように感じました。

    • penpen penpen より:

      ご指摘の通り、apt upgradeapt updateを混同して書いておりました・・・。
      正しくはすべてapt upgradeです。(修正しました)

      ご指摘ありがとうございました

タイトルとURLをコピーしました