Apa yang dilakukan “pembaruan sudo apt-get”?


Jawaban:


551

Singkatnya, apt-get updatesebenarnya tidak menginstal perangkat lunak versi baru. Sebagai gantinya, ia memperbarui daftar paket untuk peningkatan untuk paket-paket yang perlu ditingkatkan, serta paket-paket baru yang baru saja datang ke repositori.

  • apt-get updatemengunduh daftar paket dari repositori dan "memperbaruinya" untuk mendapatkan informasi tentang versi terbaru paket dan dependensinya. Ini akan melakukan ini untuk semua repositori dan PPA. Dari http://linux.die.net/man/8/apt-get :

    Digunakan untuk menyinkronkan kembali file indeks paket dari sumbernya. Indeks paket yang tersedia diambil dari lokasi yang ditentukan dalam /etc/apt/sources.list(5). Pembaruan harus selalu dilakukan sebelum upgrade atau dist-upgrade.

  • apt-get upgradeakan mengambil versi baru dari paket yang ada pada mesin jika APT tahu tentang versi baru ini dengan cara apt-get update.

    Dari http://linux.die.net/man/8/apt-get :

    Digunakan untuk menginstal versi terbaru dari semua paket yang saat ini diinstal pada sistem dari sumber yang disebutkan dalam /etc/apt/sources.list(5). Paket yang saat ini diinstal dengan versi baru yang tersedia diambil dan ditingkatkan; dalam keadaan apa pun, paket yang diinstal saat ini dihapus, dan paket yang belum diinstal pun tidak diambil dan diinstal. Versi baru dari paket yang diinstal saat ini yang tidak dapat ditingkatkan tanpa mengubah status instalasi dari paket lain akan dibiarkan pada versi mereka saat ini. [Emphasis mine] Pembaruan harus dilakukan terlebih dahulu agar apt-get tahu bahwa versi baru paket tersedia.

  • apt-get dist-upgradeakan melakukan pekerjaan yang sama dengan yang dilakukan oleh apt-get upgrade, ditambah itu juga akan secara cerdas menangani dependensi, sehingga mungkin menghapus paket usang atau menambah yang baru. Lihat di sini: Apa itu "dist-upgrade" dan mengapa itu upgrade lebih dari "upgrade"?

    Dari http://linux.die.net/man/8/apt-get :

    Selain melakukan fungsi pemutakhiran, opsi ini juga secara cerdas menangani perubahan ketergantungan dengan versi paket baru; apt-get memiliki sistem resolusi konflik "pintar", dan itu akan berusaha untuk memperbarui paket yang paling penting dengan mengorbankan yang kurang penting, jika perlu. File /etc/apt/sources.list(5) berisi daftar lokasi untuk mengambil file paket yang diinginkan. Lihat juga apt_preferences (5) untuk mekanisme over-riding pengaturan umum untuk setiap paket.

Anda dapat menggabungkan perintah dengan &&sebagai berikut:

sudo apt-get update && sudo apt-get install foo bar baz foo-dev foo-dbg

atau untuk mendapatkan versi terbaru sesuai dengan persyaratan versi dependensi:

sudo apt-get update && sudo apt-get dist-upgrade

Anda membutuhkan sudokedua kali, tetapi karena sudosecara default tidak meminta Anda dalam 5 menit atau lebih sejak sudooperasi terakhir , Anda akan diminta kata sandi hanya sekali (atau tidak sama sekali).


11
Apakah kita selalu perlu menjalankan sudo apt-get updateperintah setiap kali kita menginstal paket? Apa kerugiannya jika kita tidak melakukannya?
JohnnyQ

14
@JohnnyQ Jika Anda tidak menjalankan perintah itu, maka Anda mungkin menginstal paket yang kedaluwarsa.
ζ--

ah kedengarannya itu hanya hal biasa saja. Jadi saya berasumsi itu benar-benar tidak perlu terutama jika Anda hanya menggunakan paket dasar dengan perintah dasar yang biasanya tidak diperbarui. Masalah dalam situasi saya adalah yang apt-get updatemembutuhkan waktu, internet di sini masih primitif.
JohnnyQ

2
@JohnnyQ, jika pemutakhiran apt-get Anda lambat, maka pemutakhiran apt-get Anda juga akan lambat, jadi itu sebenarnya bukan argumen untuk tidak melakukan pemutakhiran apt-get terlebih dahulu. Btw, Anda dapat mempercepat pembaruan apt-get dengan melihat ke folder /etc/apt/sources.d/ untuk melihat apakah Anda memiliki repositori khusus yang ditambahkan dan salah satunya mungkin tidak responsif, yang akan memperlambat seluruh proses pembaruan.
Mladen B.

1
Omong-omong, "apt" adalah singkatan dari Advanced Packaging Tool ( wiki.debian.org/Apt "Apa itu APT?"). Sesuatu yang saya pelajari tempo hari, saya pikir akan saya bagikan. ("apt" sering muncul dalam man apt-get, man apt, tapi saya belum pernah melihat akronim diperluas sebelumnya).
jgreve

47

Pencarian Google dapat memberi Anda definisi untuk hampir semua perintah terminal, seperti halnya --membantu di terminal. Sebagai contoh,

apt-get --help

sudo apt-get update dasarnya memiliki tiga bagian:

sudo

melakukan perintah berikut dengan kemampuan super-user (root). Banyak tindakan yang memerlukan modifikasi file sistem atau menginstal aplikasi memerlukan izin tambahan untuk melewati.

apt-get

adalah alat baris perintah yang digunakan Ubuntu untuk menginstal, menghapus, dan mengelola paket perangkat lunak

update

adalah opsi untuk program apt-get untuk digunakan yang memperbarui daftar paket dari server di internet. Daftar paket menyediakan utilitas apt-get dengan informasi penting tentang paket perangkat lunak yang dapat Anda instal menggunakan apt-get. apt-get menggunakan daftar ini untuk menentukan perangkat lunak mana yang akan diinstal ketika diberi perintah untuk menginstal. Sebagai contoh

sudo apt-get install guake

akan menginstal terminal Guake karena saat ini tercantum dalam daftar perangkat lunak lokal komputer saya. Namun, ini mungkin bukan versi yang sesuai, atau jika program ini baru, mungkin tidak tersedia sama sekali. Jadi, ketika menginstal perangkat lunak dengan apt-get, Anda biasanya mengetik

sudo apt-get update
sudo apt-get install <package>

memastikan bahwa apt-get tahu untuk menginstal versi terbaru dari paket.

Sumber informasi lain yang bermanfaat adalah help.ubuntu.comsitus. Misalnya, jika Anda mencari situs itu untuk apt-getmenemukan AptGet / Howto sebagai salah satu hasilnya.


Alex, bisakah saya pada dasarnya menggunakan perintah seperti yang Anda katakan: "apt-get update apt-get install <package>" Pada dasarnya 2 hal dapat dilakukan hanya dengan mengetikkan 2 perintah bersamaan seperti ini?
Elysium

1
@Elysium Ya, jika Anda memiliki di &&antara mereka sebagaisudo apt-get update&&sudo apt-get install foo bar baz
ζ--

7
Menggunakan &&berarti bahwa perintah kedua hanya akan berjalan jika yang pertama berhasil. Jika Anda tidak peduli dengan keberhasilan perintah pertama, gunakan ;saja.
Flimm

4
Pencarian Google membawa saya ke pertanyaan / jawaban ini. Just FYI;)
teewuane

19

Menjalankan sudo apt-get updatehanya memastikan daftar paket Anda dari semua repositori dan PPA terbaru. Jika Anda tidak menjalankan perintah ini, Anda bisa mendapatkan versi lama dari berbagai paket yang Anda instal, atau lebih buruk, masalah ketergantungan. Jika Anda baru saja menambahkan PPA dan belum memperbarui, tidak ada dari PPA yang akan berfungsi sama sekali karena Anda tidak memiliki daftar paket dari PPA atau repositori tersebut.

Singkatnya: Hal ini sangat dianjurkan untuk menjalankan sudo apt-get updatesebelum menginstal, tapi mungkin dilewati jika Anda benar-benar terdesak waktu kecuali Anda telah mengubah repositori atau AKP sejak terakhir apt-get update.


13

Ini memperbarui daftar perangkat lunak yang tersedia di komputer Anda.

Komputer Anda memiliki daftar (seperti katalog) yang berisi semua perangkat lunak yang tersedia yang tersedia di server Ubuntu. Tetapi perangkat lunak dan versi yang tersedia mungkin berubah, sehingga "pembaruan" akan mengenai server dan melihat perangkat lunak apa yang tersedia untuk memperbarui daftar lokal (atau katalog).

Perhatikan bahwa updateini berbeda dari upgrade. Pembaruan, sebagaimana disebutkan di atas, akan mengambil perangkat lunak yang tersedia dan memperbarui daftar sementara upgradeakan menginstal versi baru perangkat lunak yang diinstal pada komputer Anda (pembaruan perangkat lunak yang sebenarnya).

Untuk benar-benar meningkatkan perangkat lunak Anda (bukan "memperbarui" daftar), Anda menjalankan perintah

sudo apt-get upgrade

yang biasanya dijalankan setelah "pembaruan".


Untuk apa sudo apt-get installitu? Menginstal paket tertentu alih-alih peningkatan umum?
Peter Mortensen

12

Anda perlu menjalankan apt-get updatesatu kali sebelum menginstal paket baru karena ini memperbarui informasi repositori lokal. Jika Anda akan menginstal beberapa paket segera setelah satu sama lain, Anda tidak perlu menjalankan apt-get update. Juga, Anda dapat menginstal beberapa paket sekaligus jika Anda mengetik sudo apt-get install package1 package2...


Trik yang bagus untuk itu!
Emerson Hsieh

6

Ketika Anda menginstal paket dari baris perintah dengan sudo apt-get install ...(atau sudo aptitude install ...), atau ketika Anda memutakhirkannya dari baris perintah (dengan upgradeatau dist-upgradebukannya install), informasi berikut ini diperoleh dari konfigurasi sistem lokal Anda, dan bukan dari Internet:

  1. paket apa yang tersedia

  2. versi apa yang tersedia

  3. dari mana paket yang tersedia harus diambil

Menjalankan sudo apt-get update(atau sudo aptitude update) memperbarui ini di sistem lokal Anda. Ini adalah langkah yang benar-benar mengambil informasi tentang paket apa yang dapat diinstal, termasuk pembaruan apa yang tersedia untuk paket paket yang diinstal , dari sumber Internet.

Ketika Anda menginstal paket dengan antarmuka GUI (Manajer Pembaruan, Pusat Perangkat Lunak, atau Manajer Paket Synaptic), pekerjaan sudo apt-get updatedilakukan secara otomatis. Ketika Anda menginstal paket dari command-line, itu tidak, dan Anda harus selalu melakukannya sendiri kecuali Anda telah melakukannya baru-baru ini .

Karena informasi tentang versi terbaru dari paket yang tersedia diperoleh dengan menjalankan sudo apt-get update(atau sudo aptitude update), disarankan untuk menjalankan ini sebelum menginstal paket apa pun, dan diperlukan untuk menjalankannya untuk menginstal pembaruan terbaru, bahkan jika Anda belum menambahkan atau menghapus Perangkat Lunak apa pun Sumber (seperti PPA) .

Harap dicatat bahwa jika Anda akan melakukan beberapa operasi manajemen paket sekitar waktu yang sama, Anda tidak perlu menjalankan sudo apt-get updatesebelum masing-masing. Hanya jika informasi belum diperbarui untuk sementara waktu, Anda harus memastikan untuk menjalankannya.


4

Seperti yang Eliah Kagan sebutkan di atas, Anda akan berharap bahwa aplikasi GUI akan berjalan apt-get updatesebelum apt-get install/ apt-get upgrade, tapi saya baru saja menemukan kesalahan yang menarik 404, pada mesin VM ofensif-keamanan yang relatif baru, yang membuat saya bingung sejenak.

Dari baris perintah, saya berlari apt-get update, dan kemudian mencoba perintah System Tools / Software-Update lagi, dan kali ini berjalan tanpa 404 kesalahan.

Jadi, saya kira Anda tidak selalu dapat menganggap bahwa apt-get updatedijalankan dari aplikasi GUI ...


Menarik ... Mungkinkah ada beberapa situasi jaringan yang tidak biasa antara Anda dan server yang lebih baik ditangani ketika Anda menjalankan apt-getdaripada dengan pemeriksaan otomatis yang dilakukan dengan menjalankan Pembaruan Perangkat Lunak / Pembaruan Manajer? Apakah Anda menggunakan proxy HTTP? Dan apakah Anda dapat mewujudkannya lagi, atau pernahkah terjadi satu kali saja? Jika ini adalah anomali terisolasi, saya bertanya-tanya apakah mungkin masalahnya karena kesalahan konfigurasi server sementara. Cermin apa yang Anda gunakan? Dengan info lebih lanjut, mungkin saya bisa meningkatkan jawaban saya. (Btw, apakah ini dimaksudkan sebagai jawaban yang terpisah, atau haruskah dikonversi menjadi komentar?)
Eliah Kagan

3

Seperti yang dikatakan oleh banyak orang sebelum saya, ini memperbarui repositori lokal Anda (daftar paket).

Anda dapat mengalami masalah jika Anda mencoba menginstal

apt-get install foobar

dan foobar atau dependensi tidak memiliki versi terbarunya di repositori. Ini bisa sangat bermasalah jika menginstal file deb secara manual atau ppa dari pihak ke-3.

Pada dasarnya itu memastikan daftar Anda cocok dengan daftar utama .


2

Mari kita perhatikan contoh menginstal VLC media player di Ubuntu:

sudo apt-get update

Ini akan memeriksa repositori untuk pembaruan yang tersedia.

Sedangkan

sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc

akan menginstal VLC media player dari repositori yang kami cari.

Jika Anda telah masuk sebagai pengguna root (administrator), Anda tidak harus menggunakan sudo, karena Anda sudah memiliki hak pengguna super.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.