Як працює оновлення з програмами, встановленими з файлу .deb


11

У мене виникають певні труднощі з розумінням того, як працює вся версія оновлення в Ubuntu, і хороша практика встановлення програмного забезпечення.

Я розумію, що у мене є /etc/apt/sources.listфайл, де перераховані всі мої сховища, і що ці репозиторії запитуються, коли я використовую apt-get update- щоб потім використовуватись, наприклад
apt-get upgrade. Це має ідеальний сенс, і я нещодавно встановив spotifyдодавання
deb http://repository.spotify.com stable non-freeдо цього списку "джерел".

Але потім я заплутався ...

Коли я пішов завантажувати Google Chrome, мені просто довелося завантажити та захопити .debфайл, і Chrome встановив без проблем ... але я не бачу жодної нової записи у /etc/apt/sources.list...

Тож як apt-get updateзнати, куди можна звертатись до оновлень Chrome? Чи було це якось додано до одного з уже перелічених сховищ у файлі джерел?

Я хотів би, щоб все моє встановлене програмне забезпечення було охоплено функцією оновлення.

Відповіді:


10

Це справді щось складне. По-перше, aptце передній край, до dkpgякого фактично обробляється установка / видалення пакетів. Отже, /etc/apt/sources.list(і будь-які файли в /etc/apt/sources.list.d/) читаються apt, а не dpkg.

Тепер, коли ви завантажуєте .debфайл вручну, ви переходите в обхід aptі dpkg -i packagename.debзамість нього будете використовувати його. Це означає, що база даних apt не буде оновлюватися і aptсистема не буде знати про встановлений вами пакет. Іншими словами, apt-get upgradeНЕ буде ніколи оновити всі встановлені пакети вручну.

Сказавши це, chromeнасправді є винятком із правила. Перейшовши на сторінку завантаження, ви побачите це повідомлення:

 введіть тут опис зображення

Внизу ця примітка:

Примітка. Встановлення Google Chrome додасть сховище Google, щоб ваша система автоматично оновлювала Google Chrome. Якщо ви не хочете сховати Google, зробіть “sudo touch / etc / default / google-chrome” перед тим, як встановлювати пакет.

Це означає , що .debпакет включає в себе сценарій , який додасть репозиторій Google до всієї системи ( в Зокрема, вона буде створювати файл на /etc/apt/sources.list.d/) , тим самим гарантуючи , що chrome буде оновлюватися при використанні apt-get.


Гаразд, має сенс ... але чи є такий спосіб легко керувати оновленнями всіх моїх встановлених вручну пакетів?
Кірбіс

2
@Morten ні, саме тому aptтощо існують, якщо ви виходите за межі цієї системи, ви самостійно. Існують хитрощі, але рідко варто витратити зусиль на кілька пакунків, які ви можете встановити вручну.
тердон

1
Менеджеру пакунків насправді не важливо, чи встановлено пакет dpkg або apt. Якщо він знайде нову версію пакета в сховищах, то буде встановлена ​​нова версія.
Флоріан Дієш

@FlorianDiesch так, звичайно. Моя думка стосувалася пакетів, яких немає у сховищах.
тердон

1

вдалий пошук у джерелах, перелічених у, /etc/apt/sources.listа також у всіх файлах у /etc/apt/source.list.d. У вас буде такий файл, google-chrome.listу /etc/apt/sources.list.dякому буде такий рядок:

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

Це використовується як джерело для оновлення google-chrome.

Коли ви завантажили файл deb для google-chrome вручну та встановили його, сценарій у файлі deb створив цей файл, так що вам не доведеться вручну шукати оновлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.