Як працює оновлення з програмами, встановленими з файлу .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.