GUIの代わりにapt-get update && apt-get upgrade
を使用して、更新とアップグレードを実行します。これは、GUIがより高速に実行されるようだからです。
しかし、最近、アップグレードの1つが保留されたというメッセージが頻繁に表示されることに気付きました。その後、通常dist-upgrade
を実行して実行し、正常に動作します。 この質問 とその回答を読んだ後にわかる限り、dist-upgrade
はすべて同じことをしてから、いくつかのことを行います。
だから、私の質問は:なぜapt-get upgrade
を使用するのですか?常にapt-get dist-upgrade
を使用しないのはなぜですか? apt-get upgrade
が存在するのはなぜですか?
通常、マシンを次のようにアップグレードします。
Sudo apt-get update && time Sudo apt-get dist-upgrade
以下は、man apt-get
からの抜粋です。 アップグレードを使用すると、ルールが維持されます:現在インストールされているパッケージは削除されないか、まだインストールされていないパッケージは取得およびインストールされます。それが重要な場合は、 apt-get upgrade
。物事を「ただ動作させる」場合は、おそらくapt-get dist-upgrade
を使用して依存関係が確実に解決されるようにする必要があります。
システム管理者である場合、dist-upgradeではなくupgradeが必要な理由を拡張するには、予測可能性が必要です。 apt pinning のような高度な機能を使用するか、 PPAs (おそらく社内PPAを持っている)のコレクションから引き出して、システムを検査するためのさまざまな自動化を使用している可能性がありますすべての利用可能なパッケージを常に熱心にアップグレードする代わりに、利用可能なアップグレードを行います。 aptがスクリプト化されていない動作を実行すると、特に本番サービスのダウンタイムにつながる場合は、非常にイライラします。
upgrade
upgrade is used to install the newest versions of all packages
currently installed on the system from the sources enumerated in
/etc/apt/sources.list. Packages currently installed with new
versions available are retrieved and upgraded; under no
circumstances are currently installed packages removed, or packages
not already installed retrieved and installed. New versions of
currently installed packages that cannot be upgraded without
changing the install status of another package will be left at
their current version. An update must be performed first so that
apt-get knows that new versions of packages are available.
dist-upgrade
dist-upgrade in addition to performing the function of upgrade,
also intelligently handles changing dependencies with new versions
of packages; apt-get has a "smart" conflict resolution system, and
it will attempt to upgrade the most important packages at the
expense of less important ones if necessary. So, dist-upgrade
command may remove some packages. The /etc/apt/sources.list file
contains a list of locations from which to retrieve desired package
files. See also apt_preferences(5) for a mechanism for overriding
the general settings for individual packages.
この質問に答えられてから1年が経ちましたが、これを言う必要があると感じています。 Ubuntu 14.04以降(およびGoogleからこれを見つけた人はDebian Jessie以降)はAPT 1.0を使用し、apt-get
およびapt-cache
の代わりにapt
コマンドを使用できます一部の操作では。
apt-get upgrade
はインストールされているものを変更しません(バージョンのみ)、apt-get dist-upgrade
は、アップグレードを完了するために必要に応じてパッケージをインストールまたは削除します。apt upgrade
は自動的にインストールされますが、パッケージは削除されません。apt full-upgrade
は、apt-get dist-upgrade
と同じ機能を実行します。upgrade
オプションは、システムにすでにインストールされている新しいバージョンのパッケージのみをインストールします(そして、はい、カーネルの更新はそれらに属します)。
ただし、更新によって依存関係が変更される場合があります。たとえば、パッケージの新しいバージョンは、インストールしたライブラリに依存しなくなったり、追加のライブラリのインストールが必要になります。 upgrade
オプションは、実際に不要になったインストール済みパッケージを削除しません。
ただし、dist-upgrade
オプションは、依存関係システムの変更を「インテリジェントに」処理できます。これには、不要になったパッケージの削除や、依存関係の変更により生じたパッケージ間の競合の解決が含まれます。
ユーザーは、他の(明示的にインストールされた)パッケージの依存関係により、暗黙的にインストールされたパッケージに依存するようになった可能性があります。したがって、パッケージシステムは、dist-upgradeによって削除される可能性のある特定の機能を保持したいというユーザー/管理者の要望を認識できません。