Saya mengerti bahwa dalam apt
, perintah update
, memperbarui daftar paket yang tersedia, tetapi tidak memutakhirkan perangkat lunak yang sudah diinstal dari paket ini.
Saya juga memahami bahwa upgrade
memutakhirkan semua perangkat lunak yang telah saya instal dari paket yang saya perbarui dengan update
sebagaimana dijelaskan di atas.
Apa alasan pengembang Ubuntu / Debian untuk melakukan pemisahan ini update
dan upgrade
sebaliknya bekerja dengan satu perintah untuk melakukan kedua tugas?
Ini lebih merupakan pertanyaan tentang filosofi arsitektur pengembang Ubuntu.
package-management
upgrade
updates
architecture
history-of-ubuntu
pengguna9303970
sumber
sumber
alias
itu pula. Cara unix adalah satu perintah melakukan satu hal saja, jadi memisahkan lebih cocok dengan cara unix jika argumen 'teologis / filosofis' adalah Anda juga.apt dist-upgrade
dan tekan "n" untuk membatalkan, maka ubah pikiran saya saya akan menghemat bandwidth karena itu tidak akan 'memperbarui' untuk melakukan kembaliapt dist-upgrade
perintah saya ... Bahkan jika 'dist-upgrade' melakukan pembaruan secara otomatis, ada alasan untuk 'memperbarui' yang tidak termasuk 'install', 'upgrade' atau 'dist-upgrade' sehingga perintah 'update' tetap ada ..apt update
seharusnya hanya berjalan secara otomatis ketika diperlukan.Jawaban:
Pemutakhiran bukan satu-satunya waktu yang mungkin Anda perlukan
apt-get update
, dan saya tidak ingin memperbarui setiap kali saya hanya ingin memperbarui daftar paket.Sebuah
apt-get upgrade
sumur kerja mungkin bergantung padaapt-get update
dijalankan belum lama ini, tetapi kemudian itu benarapt-get remove
danapt-get install
juga! Haruskah semua ini menyiratkanapt-get update
? Tentu saja tidak! Sebagai masalah sederhana efisiensi sumber daya dan desain bersih, jika suatu operasi adalah umum untuk beberapa operasi lain, itu harus diperhitungkan.Sebaliknya, mengingat hal itu
apt-get remove
danapt-get install
mungkin juga bergantung padaapt-get update
dijalankannya baru-baru ini untuk menyelesaikannya dengan sukses, apakah masuk akalapt-get upgrade
untuk setiap putaranapt-get update
? Tidak, lagi, karena apa yang ingin saya lakukan mungkin bertentangan dengan apa yangapt-get upgrade
akan dilakukan.sumber
Setiap kali Anda mengubah sumber perangkat lunak, Anda harus menjalankan perintah
sudo apt update
untuk memperbarui daftar perangkat lunak yang tersedia. Kemudian Anda dapat mencari paket yang tersedia di sumber perangkat lunak baru yang baru saja Anda tambahkan dan / atau menginstalnya.Perintah
sudo apt upgrade
ini setara dengan terminal untuk memperbarui daftar paket yang diinstal menggunakan aplikasi Pembaruan Perangkat Lunak. Ini berbeda dari alur kerja normal menambahkan sumber perangkat lunak baru, memperbarui daftar perangkat lunak yang tersedia untuk menyertakan paket dari sumber perangkat lunak baru, dan menginstal paket baru dari sumber perangkat lunak baru yang baru saja Anda tambahkan, sehingga lebih nyaman dan kurang membingungkan itusudo apt update
dansudo apt upgrade
merupakan perintah terpisah.Ini juga kurang membingungkan untuk dipisahkan
sudo apt update
dansudo apt upgrade
karena ketika Anda menjalankan dengansudo apt update
sukses Anda telah mengkonfirmasi bahwa Anda memiliki konektivitas internet. Jika ada masalah saat menjalankansudo apt upgrade
setelahnya, masalahnya lebih cenderung menjadi masalah manajemen paket daripada masalah dengan konektivitas internet, dan hasil darisudo apt upgrade
akan memberikan petunjuk untuk mendiagnosis dan menyelesaikan masalah.sumber
Sejarah perbedaan antara
update
danupgrade
ini sebenarnya cukup keren.Dulu, dulu sekali - katakan sekitar 2000 atau lebih, bertahun-tahun sebelum Ubuntu ada -, bandwidth dan ruang disk jauh lebih terbatas ... meskipun ekspansif dibandingkan dengan pertengahan 1990-an. Broadband baru saja dimulai, dan dialup masih merupakan cara vital untuk online. Disk besar masih hanya beberapa ratus MB. Apt mengkilap dan baru, radikal dan revolusioner, dibangun di atas dpkg.
Basis data yang tepat, ketika Anda memikirkannya, adalah sebuah keajaiban: Ini adalah basis data yang akurat dari semua perangkat lunak dari semua repositori yang dikenal. Ini cukup rinci untuk menghitung dependensi dan mengidentifikasi peningkatan yang tersedia, namun cukup kecil untuk mengirimkan melalui modem dial-up waktu dan untuk menyimpan pada drive kecil pada waktu itu. Memperbarui basis data Anda melalui telepon mungkin memerlukan waktu beberapa menit melalui koneksi yang baik. Sementara itu sudah lama sekarang, mencari pembaruan paket secara manual (sebelum apt) dapat menghabiskan berjam-jam .
Saat itu, distro dibangun secara berbeda - tidak ada Integrasi Berkelanjutan, tidak ada pengujian asap (yah, tidak banyak pengujian sama sekali!), Peternakan dibangun baru saja dimulai. Peningkatan harus lebih sering dikembalikan daripada sekarang. Banyak pengguna memilih untuk tidak memutakhirkan paket tertentu karena berbagai alasan, atau hanya memilih pemutakhiran tertentu hari ini (untuk menguji secara manual), dan pemutakhiran lainnya besok.
Selama 15 atau lebih tahun berikutnya, alat tidak banyak berubah, itulah sebabnya kami masih memiliki tindakan
update
dan terpisahupgrade
. The alur kerja pengguna telah berkembang sebagai keandalan distro telah meningkat, dan banyak sumber / update / manajemen upgrade yang digunakan untuk menjadi pengguna telah perlahan-lahan tersembunyi di balik lapisan otomatisasi (software-updater
,unattended-upgrades
).Memodernisasi alat paket perangkat lunak adalah salah satu alasan Snaps dan AppImage dan Flatpack baru-baru ini muncul, tetapi itulah bab selanjutnya.
sumber
Mereka melakukan hal-hal yang terpisah karena berbagai alasan.
Salah satu contohnya adalah pertanyaan yang saya posting dan jawab sendiri: Bagaimana PPA dapat dihapus menggunakan GUI? . Pada layar ini kami ingin menghapus PPA yang tidak memutakhirkan perangkat lunak:
Setelah mengeluarkan PPA, perangkat lunak GUI otomatis berjalan
sudo apt update
. Jika Anda menghapus PPA dari baris perintah, Anda harus menjalankannyasudo apt update
setelah menghapus PPA dari daftar sumber.Tanpa
apt update
fungsi terpisah tidak ada cara untuk menghapus AKP !.Contoh lain adalah Anda perlu menjalankan
sudo apt update
dari baris perintah untuk menyegarkan sumber. Kemudian Anda dapat menemukan apa yang bisa ditingkatkan tanpa benar - benar meningkatkan:Melihat output yang Anda dapat memutuskan untuk memiliki paket yang diberikan "disematkan" atau "ditahan" dan tidak ditingkatkan pada saat `sudo apt upgrade" dijalankan. Jika ada satu proses "pembaruan / peningkatan" Anda akan kehilangan kemampuan ini .
Tanpa terpisah
apt update
Anda tidak dapat melihat apa yang akan ditingkatkan!sumber
yum
dandnf
secara otomatis menjalankan yang setara dengan pembaruan saat melakukan operasi yang relevan. Misalnya, setaraapt list --upgradable
yaituyum check-update
, yang update daftar paket jika tidak diperbarui baru-baru. Ini tentu mungkin untuk bekerja, seperti yang dapat dilihat pada manajer paket lainnya.sudo apt update
setelah menghapus repositori.yum
/dnf
lagi, operasi pembaruan otomatis, sehingga sumber yang dinonaktifkan secara otomatis dihapus dari operasi berikutnya. Sekali lagi, sesuatu yang sepenuhnya mungkin.yum
jugadnf
tidak diinstal. Menginstal salah satunya untuk menggantikanapt update
akan meningkatkan overhead sistem dan waktu belajar.Orang bisa bertanya mengapa harus mengunduh program dari repositori Ubuntu formal
apt
lalu menginstalnya? Apa bedanya jika Anda pertama kali mengunduhnya dan kemudian menginstalnya daripada mengunduh dan menginstal dalam satu operasi?Nah setelah membaca komentar dan berpikir lebih lanjut tentang ini saya mengerti bahwa ini disebabkan oleh filosofi Unix , filosofi modular yang pada dasarnya mengatakan "Setiap program melakukan satu hal": Pertama unduh, lalu instal --- setiap tindakan dengan program khusus sendiri .
sumber
Dalam distribusi tidak, ada satu perintah pembaruan-upgrade hal, jika ada, itu hanyalah alias yang sudah ditentukan sebanyak yang saya kira. Alias-alias itu dapat dengan mudah diatur di Ubuntu juga, dengan mengedit ~ / .bashrc.
Pembaruan digunakan untuk menyinkronkan ulang repositori dan memperbaiki masalah apa pun di sana. Kemudian ketika Anda Upgrade, Anda sebenarnya ugrade paket diinstal Anda. Tetapi ketika Anda Dist-Upgrade, Anda meningkatkan secara penuh. Di Arch linux, mereka menekankan peningkatan penuh dengan Syu. Anda dapat melakukan hal yang sama di Ubuntu. Dalam pemutakhiran penuh, Anda benar-benar menyelesaikan masalah sistem dependensi bijaksana, yang mungkin timbul dalam peningkatan parsial.
Semoga ini bisa membantu. Maafkan teks mentah sebagai tulisan di telepon.
sumber
yum
dandnf
secara otomatis melakukan hal yang samaupdate
pada sebagian besar operasi jika data yang di-cache cukup lama. Lihat, misalnya, diskusi tentang mengubah perilaku itu di dnf: lwn.net/Articles/750334