Bagaimana cara kerja pembaruan dengan program yang diinstal dari file deb

11

Saya mengalami beberapa kesulitan untuk memahami bagaimana keseluruhan pembaruan bekerja di Ubuntu dan praktik yang baik untuk menginstal perangkat lunak.

Saya mengerti saya memiliki /etc/apt/sources.listfile di mana semua repositori saya terdaftar, dan bahwa repositori ini dipertanyakan ketika saya gunakan apt-get update- untuk nanti digunakan dengan misalnya
apt-get upgrade. Ini masuk akal dan saya baru saja menginstal spotifydengan menambahkan
deb http://repository.spotify.com stable non-freeke daftar "sumber" ini.

Tapi kemudian saya bingung ...

Ketika saya pergi untuk mengunduh Google Chrome, saya hanya perlu mengunduh dan mengambil .debfile, dan Chrome dipasang tanpa masalah ... tetapi saya tidak melihat entri baru di /etc/apt/sources.list...

Jadi, bagaimana cara apt-get updatemengetahui tempat untuk menanyakan tentang pembaruan Chrome? Apakah itu entah bagaimana telah ditambahkan ke salah satu repositori yang sudah terdaftar dalam file sumber?

Saya ingin semua perangkat lunak yang diinstal saya dicakup oleh fungsi pembaruan.

Kirbies
sumber

Jawaban:

10

Ini memang agak rumit. Pertama, aptadalah front-end untuk dkpgyang benar-benar menangani menginstal / menghapus paket. Jadi, /etc/apt/sources.list(dan semua file dalam /etc/apt/sources.list.d/) dibaca oleh apt, bukan dpkg.

Sekarang, ketika Anda mengunduh .debfile secara manual, Anda memintas aptdan akan menggunakannya dpkg -i packagename.debuntuk menginstalnya. Ini berarti bahwa database apt tidak akan diperbarui dan bahwa aptsistem tidak akan memiliki pengetahuan tentang paket yang Anda instal. Dengan kata lain, tidakapt-get upgrade akan pernah memperbarui paket yang diinstal secara manual.

Karena itu, chromesebenarnya merupakan pengecualian terhadap aturan. Saat Anda membuka halaman unduhannya, Anda akan melihat pesan ini:

 masukkan deskripsi gambar di sini

Di bagian bawah adalah catatan ini:

Catatan: Menginstal Google Chrome akan menambah repositori Google sehingga sistem Anda akan secara otomatis memperbarui Google Chrome. Jika Anda tidak ingin repositori Google, lakukan “sudo touch / etc / default / google-chrome” sebelum menginstal paket.

Ini berarti bahwa .debpaket tersebut menyertakan skrip yang akan menambahkan repositori Google ke sistem Anda (khususnya, ia akan membuat file di /etc/apt/sources.list.d/) sehingga memastikan bahwa chrome akan diperbarui ketika Anda menggunakan apt-get.

terdon
sumber
Oke, masuk akal ... tetapi adakah cara untuk mengelola pembaruan dengan mudah untuk semua paket yang saya instal secara manual?
Kirbies
2
@Morten tidak, itu sebabnya mengapa aptdll ada, jika Anda melangkah keluar dari sistem itu, Anda sendirian. Ada trik tetapi jarang sepadan dengan usaha untuk beberapa paket yang mungkin Anda instal secara manual.
terdon
1
Manajer paket sebenarnya tidak peduli apakah suatu paket telah diinstal oleh dpkg atau apt. Jika ia menemukan versi yang lebih baru dari sebuah paket di repositori yang diinstal versi yang lebih baru.
Florian Diesch
@FlorianDiesch ya, tentu saja. Maksud saya adalah untuk paket-paket yang tidak ada dalam repositori.
terdon
1

apt pencarian di sumber yang tercantum dalam /etc/apt/sources.listdan juga semua file di /etc/apt/source.list.d. Anda akan memiliki file seperti google-chrome.listdi /etc/apt/sources.list.dmana akan memiliki baris berikut:

deb http://dl.google.com/linux/chrome/deb/ stable main

Ini digunakan sebagai sumber untuk memperbarui google-chrome.

Saat Anda mengunduh file deb untuk google-chrome secara manual dan menginstalnya, skrip dalam file deb membuat file ini, sehingga Anda tidak perlu mencari pembaruan secara manual.

pekerjaan
sumber