Saya bertanya-tanya mengapa upgrade
kadang - kadang tidak ingin memutakhirkan bagian-bagian tertentu dari sistem, sementara dist-upgrade
itu. Berikut ini 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 ini tidak bisa dilakukan oleh upgrade
?
full-upgrade
opsi diapt-get
bawah 14.04.1.apt
itu, tetapi tampaknya itu adalah perintah yang sepenuhnya berbeda menurut halaman manual yang diaapt
dan bukanapt-get
... :-) Cobaman apt
.apt-get upgrade
dibatasi pada kasus di mana paket harus diganti oleh versi yang lebih baru, tetapi tidak ada paket yang perlu ditambahkan atau dihapus. Versi baru Firefox, misalnya, harus dapat diinstal denganapt-get upgrade
.Namun
apt-get upgrade
akan menolak untuk bekerja ketika ada penambahan atau penghapusan yang diperlukan oleh versi yang diperbarui. Misalnya, ketika Anda telahlinux-image-3.2.0-10-generic
menginstal kernel danlinux-image-3.2.0-11-generic
muncul,linux-image-generic
paket akan diperbarui tergantung pada versi yang lebih baru. Untuk menginstal kernel baru, Anda harus menjalankanapt-get dist-upgrade
.Perhatikan bagaimana sebuah
apt-get upgrade
akan mengatakan bahwa paket-paket kernel telahheld back
. Itulah isyarat untuk menggunakanapt-get dist-upgrade
.sumber
update-manager
,, tidak digunakanapt-get
secara langsung; alih-alih bekerja dengan backend yang disebutaptdaemon
. Kemampuan standarupdate-manager
adalah campuran dariupgrade
dandist-upgrade
modeapt-get
: ia dapat menambah tetapi tidak menghapus paket - itu memanggil alat "Peningkatan sebagian" ketika penghapusan diperlukan. Saat menggunakan baris perintah, gunakanapt-get upgrade
. Jika Anda melihatnya melaporkan bahwa paket telah "ditahan", jalankanapt-get dist-upgrade
untuk mengambil pembaruan yang tersisa.Upgrade pada dasarnya hanya akan meningkatkan paket yang ada dari satu versi ke versi lain. Itu tidak akan menginstal atau menghapus paket, bahkan jika hal itu diperlukan untuk meningkatkan yang lain. Dalam hal pembaruan kernel, memutakhirkan paket linux-generic membutuhkan menginstal paket linux-3.0.0-13-generik yang baru, dan karena upgrade menolak untuk menginstal atau menghapus paket, ia menolak untuk memperbarui linux-generic.
Kadang-kadang berbagai ketidakcocokan antar paket akan memerlukan beberapa paket untuk dihapus untuk meningkatkan yang lain, dan itu juga akan memerlukan dist-upgrade. Pembaruan kernel akan selalu memerlukan dist-upgrade karena cara penanganannya. Daripada memiliki paket kernel yang diperbarui, paket kernel yang sama sekali baru dibuat setiap kali, dan metapackage kernel diperbarui untuk bergantung pada paket kernel baru, bukan yang lama. Ini dilakukan agar Anda tetap menggunakan versi kernel lama sehingga jika ada masalah dengan mem-boot kernel baru, Anda dapat memilih yang lama dari menu boot dan memulihkan.
sumber
The
apt-get upgrade
Perintah biasanya hanya akan menginstal update (atau perbaikan) untuk paket yang terinstal. Biasanya, rilis baru Mozilla Firefox , misalnya, akan diinstal dengan perintah ini.Namun umumnya TIDAK
apt-get upgrade
akan menginstal rilis baru, di mana perubahan besar (termasuk penghapusan paket atau pembaruan GRUB diperlukan). Misalnya, ketika kernel Linux baru (linux-image-3.xx-xx-generic, dll.) Tersedia, paket tidak akan diinstal.Untuk menginstal kernel baru, Anda harus menjalankannya
apt-get dist-upgrade
. Anda akan diberitahu ketika Anda menjalankanapt-get upgrade
, karena akan mengatakan bahwa paket-paket tertentu telah ditahan. Itu isyarat Anda untuk menggunakan:apt-get dist-upgrade
.sumber
dist-upgrade
tidak akan memutakhirkan ke rilis baru kecualisources.list
telah dimodifikasi sesuai (dan bahkan kemudian, itu bukan cara yang didukung untuk memutakhirkan di Ubuntu). Ketika kernel baru diinstal dengandist-upgrade
, itu bukan rilis baru Ubuntu . Itu hanya paket baru. Lebih jauh, klaim "atau pembaruan GRUB diperlukan" salah.sudo apt-get upgrade
sangat mampu memperbarui paket dalam situasi di mana GRUB harus diperbarui, selama tidak ada paket yang dihapus dan paket baru diinstal.update-grub
dijalankan secara otomatis, seperti biasa.apt-get upgrade
tidak akan menghapus atau menambah paket. Jika perbaikan untuk suatu paket memerlukan paket baru, pembaruan akan ditahan. Jawaban pablomme , yang Anda revisi menjadi kurang akurat, lebih baik dan saya menyarankan pembaca untuk pergi ke yang itu.apt-get upgrade
tidak akan pernah menginstal atau menghapus paket apa pun. Pembaruan kernel dikemas sebagai paket baru dan sebagai hasilnya,apt-get upgrade
tidak akan pernah memutakhirkan kernel. Fakta bahwa peningkatan kernel melakukan perubahan "besar" seperti konfigurasi GRUB bukanlah alasan untuk perbedaan antaraupgrade
dandist-upgrade
.Pilihan terbaik Anda adalah:
apt full-upgrade
-yang secara otomatis menangani dependensi saat meningkatkan paket; sedangkan:
-tidak JANGAN menangani secara otomatis saat meningkatkan paket.
- duBtrotterS
sumber