Какой правильный способ обновления программного обеспечения в Ubuntu?

Какой правильный способ обновления программного обеспечения в Ubuntu?

Привет:) Как обновления ПО различаются в зависимости от способа загрузки ПО с помощью Ubuntu? Например, когда я загружаю его вручную с помощью менеджера пакетов apt или когда я добавляю какой-либо репозиторий в /etc/apt/sources.list. Также есть возможность загрузить ПО с помощью flatpacks или snaps.

Что на самом деле происходит, когда я вызываю sudo apt update? Какие репозитории проверяются?

решение1

Существует множество способов установки пакетов программного обеспечения в Ubuntu, некоторые из них вы не упомянули. Чтобы дать полный ответ, я хочу описать их все:

Установка через менеджер пакетов, репозитории по умолчанию

Менеджер пакетов (неважно apt, apt-get, aptitudeили что-то еще) имеет список мест для загрузки программного обеспечения. Это программное обеспечение, как правило, заслуживает доверия, известно, что оно работает и в основном хорошо поддерживается. Такое место называется «репозиторием». URL-адреса репозиториев хранятся в /etc/apt/sources.list. При запуске apt updateменеджер пакетов запрашивает репозиторий, чтобы узнать, какие пакеты программного обеспечения доступны. Он сохраняет информацию в локальном кэше.

При установке пакета с помощью apt installменеджер пакетов проверяет свой локальный кэш, чтобы определить, откуда загрузить пакет. Затем он загружает пакет. Пакет предоставляется в виде архива в формате DEB. Архив распаковывается в вашу локальную файловую систему. Кроме того, пакет может содержать некоторый код, который будет автоматически выполнен один раз для настройки нового установленного программного обеспечения.

При обновлении ПО с помощью apt upgradeили apt dist-upgradeзагружаются новые версии существующих пакетов. Текущая версия удаляется из системы.Менеджер пакетов знает, какие файлы следует удалить, поскольку он знает, какой файл был предоставлен каким пакетом.Затем новая версия устанавливается, как описано выше.

Установка с помощью менеджера пакетов, пользовательские репозитории

Также можно расширить репозитории по умолчанию, добавив URL-адреса в /etc/apt/sources.list, хотя в эти дни /etc/apt/sources.list.d/следует использовать. Менеджер пакетов будет считать их такими же, как репозитории по умолчанию. Установка, удаление и обновление работают точно так же. Пользователь должен быть осторожен при добавлении пользовательских репозиториев — они должны быть созданы для системы.
Заметка на полях: исходя из личного опыта, я советую удалить все пакеты, установленные из нестандартных репозиториев, перед выполнением обновления с одного выпуска Ubuntu на следующий.

Установка с помощью менеджера пакетов, ручная загрузка

Вы также можете загрузить файлы DEB вручную. Вы можете установить пакет через dpkg -i. Менеджер пакетов никогда не обновит этот пакет, так как он не знает, откуда он взялся.

Установка с помощью защелки

snapcraft — это альтернатива менеджеру пакетов, ориентированная на совместимость не только с Ubuntu, производной от Debian, но и со всеми дистрибутивами Linux. Пакет snap не распаковывается в систему. Более того, он монтируется (его содержимое становится видимым напрямую), а программное обеспечение выполняется в контролируемой среде внутри вашей системы (подумайте о песочнице и виртуальных машинах). При удалении snap пакет размонтируется и удаляется. Обновления происходят аналогично.

Полностью ручная установка

Вы также можете загрузить кучу файлов и разместить их в соответствующих местах на жестком диске. Пользовательское программное обеспечение часто помещается в /opt. Двоичные файлы (или ссылки на них) устанавливаются в каталог в $PATH. Таким образом, к программному обеспечению можно легко получить доступ. Менеджер пакетов ничего не знает об этом программном обеспечении. Обновления также необходимо устанавливать вручную (иногда программное обеспечение имеет функцию самообновления, жестко). Пользовательское программное обеспечение также можно устанавливать в такие места, как /usr/localили даже /usr. Последнее не следует делать, если вы действительно не знаете, что делаете. Пользовательское программное обеспечение может ужасно конфликтовать с программным обеспечением, управляемым менеджером пакетов.

Похожие вопросы:
Обновления программного обеспечения Ubuntu с помощью apt-get
Имеет ли значение, обновляю ли я пакеты через Apper или через Центр программного обеспечения в Debian?

решение2

Я бы рекомендовал устанавливать программное обеспечение только из источников, предоставленных вашим дистрибьютором. Добавляйте репозитории или устанавливайте пакеты или другое программное обеспечение вручную только в том случае, если вы точно знаете, что делаете. Что касается вопроса, что делает sudo apt update: оно извлекает последние доступные пакеты из всех настроенных вами репозиториев. То же самое касается snaps или flatpacks. После установки из центрального репозитория вы будете получать обновления аналогично apt update.

решение3

apt updateобновляет список доступных пакетов из репозиториев, которые находятся в /etc/apt/sources.listи в любых файлах, которые находятся в /etc/apt/sources.list.d/. Важно запустить это в первую очередь, чтобы aptзнать о новых версиях пакетов.

apt upgradeфактически обновляет установленные пакеты, для которых доступны более новые версии, при условии, что они были установлены через aptи что репозитории, из которых они получены, находятся в указанных выше расположениях.

Пакеты из snapи flatpakне будут обновлены, aptтак как репозитории отличаются и не будут находиться в aptкэше/базе данных .

решение4

apt updateпроверяет все ваши источники программного обеспечения, так что это репозитории дистрибутива и любой добавленный вами PPA. AFAIK это не включает flatpak (используйте flatpak updateдля этого), но может включать snap, если дистрибутив устанавливает его таким образом. То, что вы установили вручную (скачанный .deb или другие средства установки), конечно, не проверяется таким образом.

Но имейте в виду, что у Ubuntu своя политика обновлений: часть дистрибутивов обновляется до конца жизненного цикла дистрибутива (репозиторий «main»), другие получают мало обновлений или не получают их вообще (репозиторий «universe» и другие) (и большинство пакетов, устанавливаемых с помощью snap, не находятся в «main»).

Связанный контент