web-dev-qa-db-ja.com

新しいパッケージvs新しいバージョン?

質問 「dist-upgrade」とは何ですか、なぜ「upgrade」以上にアップグレードするのですか?受け入れられた回答 は、linux-headers-3.0.0-13が新しいパッケージに置き換わっていることを説明していますlinux-headers-3.0.0-12

単に新しいバージョンではなく新しいパッケージであり、その違いを知る(認識する)方法を教えてください。

さらに、それが新しいパッケージであり、すでにインストールされているパッケージの新しいバージョンではない場合、なぜlinux-headers-3.0.0-13がコマンドSudo apt-get upgradeの出力にリストされるのですか?

答えは、linux-headers-3.0.0-12linux-headers-3.0.0-13同じ仮想パッケージに接続されている( "linux-headers is a virtual linux-headers-3.0.0-12linux-headers-3.0.0-13 "の両方によって提供されるパッケージ)。 linux-headers-3.0.0-13が表示されているのはこのためですか?もしそうなら、なぜアップグレードとして提案された他の仮想パッケージによって提供される他のパッケージを見ないのですか?

編集:

上記の例はカーネルパッケージに関するものですが、私の質問はカーネル指向ではなく、より一般的なものです。それともカーネルのみの関連ですか?

4
The Quark

linux-image-genericlinux-headers-genericのようなカーネルメタパッケージを実際のカーネルパッケージに指定する理由は、カーネルの複数のインスタンスを許可するためです。

linux-headers-3.0.0-13-genericlinux-headers-3.0.0-12-genericを同時にインストールできます。

メタlinux-headers-genericをアップグレードすると、最新の実際のパッケージが依存関係としてプルされます。これらのカーネルパッケージが異なるバージョンのカーネルパッケージであった場合、常に置き換えられます。

apt-get upgradeは新しいパッケージをインストールしません

 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.

そのため、新しいパッケージに依存するメタパッケージはアップグレードされません。

カーネルには関係ありません。他にもいくつか例があります。

5
Pilot6

単に新しいバージョンではなく新しいパッケージであり、その違いを知る(認識する)方法を教えてください。

異なるパッケージには異なる名前があります。同じパッケージの異なるバージョンは、同じパッケージ名と異なるバージョン番号を持っています。インストール済みのパッケージとそのバージョン番号はe.g。apt list --installedで確認できます。

firas@itsuki ~ % apt list --installed | grep linux-image
linux-image-4.18.0-14-generic/cosmic-updates,cosmic-security,now 4.18.0-14.15 AMD64 [installed,automatic]
linux-image-4.18.0-15-generic/cosmic-updates,cosmic-security,now 4.18.0-15.16 AMD64 [installed,automatic]
linux-image-generic/cosmic-updates,cosmic-security,now 4.18.0.15.16 AMD64 [installed,automatic]

ここに、名前にlinux-imageを含む3つのインストール済みパッケージがあります:linux-image-4.18.0-14-generic version 4.18.0-14.15linux-image-4.18.0-15-generic version 4.18.0-15.16、およびlinux-image-generic version 4.18.0.15.16。特に、linux-image-4.18.0-14-genericlinux-image-4.18.0-15-genericは異なる名前であるため、これらは異なるパッケージです。名前がどれほど似ているかに騙されないでください。重要なのは、名前が同じではないということです。それらはfooおよびbarと名付けられることもあります。

また、.debパッケージのファイル名では、通常、パッケージ名とバージョン番号は下線で区切られています。

firas@itsuki ~ % ls /home/apt/archives/linux-image-*
/home/apt/archives/linux-image-4.18.0-14-generic_4.18.0-14.15_AMD64.deb
/home/apt/archives/linux-image-4.18.0-15-generic_4.18.0-15.16_AMD64.deb
/home/apt/archives/linux-image-generic_4.18.0.15.16_AMD64.deb
4
fkraiem