適切なフルアップグレードと適切なアップグレードの冗長性

適切なフルアップグレードと適切なアップグレードの冗長性

これはバグかもしれませんが、数日間私を悩ませました。

apt-get upgradeとの違いはapt-get dist-upgrade今よく知られ、よく確立されています。アップグレードdist-upgrade可能な限りインストール/アップグレードインストール/削除/アップグレード他のパッケージをインストールまたはアップグレードするには、そのパッケージを削除する必要があります。パッケージの違いは、次のように簡単に見つけることができます。

(次は、コピー&ペーストのために端末にsudoパスワードを入力する必要がある迅速で汚い方法です。そして、複数のパッケージとドライバを直接パッチしたため、実装に残す必要があるため、ORのみを含めましたawk。表示される項目ではなく、apt upgrade出力に対応する行がない場合でも、次の項目が機能するはずです。

$echo -e 'n' | sudo apt-get dist-upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' | awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_get_dist_list

$echo -e 'n' | sudo apt-get upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' |  awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_get_upgrade_list

2つの出力を次のものと比較すると:

$diff apt_get_dist_list apt_get_upgrade_list | grep -E '<|>'

私の場合は、次のようになります。

< gir1.2-nm-1.0
< libcpupower2
< linux-kbuild-5.2
< blueman
< linux-cpupower
< linux-headers-amd64
< linux-image-amd64
< pdf-parser

linux-header-*これは特にlinux-image-*apt-get dist-upgrade

apt upgradeここで、と同じプロセスを繰り返すとapt full-upgrade

$echo -e 'n' | sudo apt upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' | awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_upgrade_list

$echo -e 'n' | sudo apt full-upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' | awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_fullupgrade_list

そして比較してみてください:

 $diff apt_get_dist_list apt_fullupgrade_list | grep -E '<|>'

予想通り、私はそれ以降何も得られず、同じ方法で行動しますが、比較すると次のようになりますapt full-upgradeapt-get dist-upgrade

$diff apt_get_upgrade_list apt_upgrade_list | grep -E '<|>'

比較すると同じ出力を得ますapt-get upgrade with apt-get dist-upgrade

> gir1.2-nm-1.0
> libcpupower2
> linux-kbuild-5.2
> blueman
> linux-cpupower
> linux-headers-amd64
> linux-image-amd64
> pdf-parser

私が引き出すことができる唯一の結論は、これとapt upgradeまったく同じであれば、apt full-upgrade同じことになるということですapt-get dist-upgrade。これは最終的に重複するだけでなく、apt upgradeより心配的にも現在apt と同じ動作を許可しないことを意味しますapt-get upgrade

答え1

重複しません。追加の微妙さがあります:

  • apt-get upgrade現在インストールされているパッケージのみがアップグレードされます。
  • apt upgrade現在インストールされているパッケージをアップグレードします。更新された依存関係によって導入された新しいパッケージをインストールします。;
  • さまざまなdist-upgradeバリエーションは、full-upgrade現在インストールされているパッケージをアップグレードし、依存関係で導入された新しいパッケージをインストールし、パッケージのアップグレードによって破損したパッケージを削除します。

別の方法:

注文する アップグレード インストールする 削除する
apt-get upgrade はい いいえ いいえ
apt upgrade はい はい いいえ
apt-get dist-upgradeapt full-upgrade等。 はい はい はい

実際には、ABIが変更されたときに最新のカーネルを自動的にインストールできるのでapt upgrade(デフォルトでは)より安全です。apt-get upgradeバラよりapt-get アップグレードはカーネルの更新を防ぎます。 Debian 9 にアップデートを適用するための正式なガイドラインは何ですか?例えば。

apt-get upgradeapt upgradeこのオプションが使用されているかのように機能するように指示できます--with-new-pkgs。これはAPT構成ファイルを使用して構成することもできます。apt特定の設定を見ることができますapt-config dump | grep '^Binary::apt(ここに関連する設定はAPT::Get::Upgrade-Allow-New)。

関連情報