Apa "dist-upgrade" dan mengapa tidak meng-upgrade lebih dari "meng-upgrade"?

Aku bertanya-tanya mengapa upgrade kadang-kadang doesn't ingin meng-upgrade bagian-bagian tertentu dari sistem, sementara dist-upgrade tidak. Berikut ini's contoh setelah menjalankan apt-get upgrade:

apt-get upgrade:

rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have been kept back:
  linux-generic linux-headers-generic linux-image-generic
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

versus apt-get dist-upgrade:

rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  linux-headers-3.0.0-13 linux-headers-3.0.0-13-generic
  linux-image-3.0.0-13-generic
The following packages will be upgraded:
  linux-generic linux-headers-generic linux-image-generic
3 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 48.5 MB of archives.
After this operation, 215 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Dengan kata lain, mengapa bisa't ini dapat dilakukan dengan meng - upgrade?

Larutan

Dari apt-get manual:

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.

Dan dengan yang lebih baru apt alat yang tersedia dari 14.04 dan seterusnya:

full-upgrade
   full-upgrade performs the function of upgrade but may also remove
   installed packages if that is required in order to resolve a
   package conflict.

Dalam kasus tertentu, saya melihat, misalnya, bahwa linux-header virtual paket yang disediakan oleh kedua linux-headers-3.0.0-12 dan linux-headers-3.0.0-13 dan itu terdengar seperti jenis paket instalasi dan penghapusan ditangani oleh dist-upgrade, tapi tidak dengan upgrade.

Komentar (7)

apt-get upgrade dibatasi untuk kasus di mana paket akan diganti oleh versi yang lebih baru, tapi tidak ada paket yang perlu ditambahkan atau dihapus. Versi baru dari Firefox, misalnya, harus diinstal dengan apt-get upgrade.

Namun apt-get upgrade akan menolak untuk bekerja ketika ada penambahan atau penghapusan diperlukan oleh versi terbaru. Misalnya, ketika anda memiliki kernel linux-image-3.2.0-10-generic diinstal dan linux-image-3.2.0-11-generic muncul, linux-image-generic paket akan diperbarui untuk tergantung pada versi yang lebih baru. Dalam rangka untuk menginstal kernel baru, anda perlu untuk menjalankan apt-get dist-upgrade.

Perhatikan bagaimana sebuah apt-get upgrade akan mengatakan bahwa kernel paket telah menahan. Yang's isyarat untuk menggunakan apt-get dist-upgrade.

Komentar (2)

Pada dasarnya meng-upgrade hanya akan meng-upgrade yang sudah ada paket-paket dari satu versi ke versi yang lain. Itu tidak akan menginstal atau menghapus paket, bahkan jika hal itu diperlukan untuk meng-upgrade lain-lain. Dalam kasus kernel update, upgrade linux-generic paket membutuhkan menginstal linux baru-3.0.0-13-paket generik, dan sejak upgrade menolak untuk menginstal atau menghapus paket, menolak untuk meng-upgrade linux-generic.

Kadang-kadang berbagai ketidaksesuaian antara paket akan memerlukan beberapa paket yang akan dihapus dalam rangka untuk meng-lain, dan itu juga akan memerlukan dist-upgrade. Update Kernel akan selalu membutuhkan dist-upgrade karena bagaimana mereka ditangani. Daripada memiliki paket kernel yang akan diperbarui, yang sama sekali baru paket kernel dibuat setiap waktu, dan kernel metapackage diperbarui untuk bergantung pada kernel baru paket bukan yang lama. Hal ini dilakukan agar anda tetap lama versi kernel sekitar sehingga dalam kasus ada masalah dengan booting kernel baru, anda dapat memilih salah satu tua dari menu boot dan memulihkan.

Komentar (1)

The apt-get upgrade perintah akan biasanya hanya menginstal pembaruan (atau perbaikan) untuk saat ini paket yang telah terinstall. Biasanya rilis baru Mozilla Firefox, misalnya, akan diinstal dengan perintah ini.

Namun apt-get upgrade akan TIDAK umumnya menginstal rilis baru, di mana perubahan besar (termasuk penghapusan paket-paket atau GRUB update diperlukan). Misalnya, ketika baru Linux kernel (linux-image-3.x.xxx-generik, dll.) tersedia, maka paket tidak akan mendapatkan diinstal.

Dalam rangka untuk menginstal kernel baru, anda akan perlu untuk menjalankan apt-get dist-upgrade. Anda akan diberitahu ketika anda menjalankan apt-get upgrade, karena akan mengatakan bahwa paket-paket tertentu yang telah diadakan kembali. Yang's isyarat anda untuk menggunakan: apt-get dist-upgrade.

Komentar (4)

Pilihan terbaik anda adalah:

apt-get dist-upgrade

-yang otomatis menangani dependensi ketika melakukan upgrade paket, sedangkan:

apt upgrade

-TIDAK auto-menangani dependensi ketika melakukan upgrade paket.

-duBtrotterS

Komentar (0)