Будет ли недавно выпущенный пакет загружен на мою машину? [закрыто]

Я не уверен , если, как и когда новый пакет, добавленный в репозиторий Ubuntu, попадет на мою машину в виде установленного пакета , если я не установил его явно.

Например, что если Ubuntu 18.04 будет выпущен, но неделю спустя Canonical поймет, что они забыли включить пакет foo . Включение пакета foo абсолютно необходимо, потому что каждую ночь выполняется cronjob, вызывающий команду, включенную только в пакет foo . Так что, пока этот пакет не будет развернут на всех машинах с Ubuntu 18.04, они будут вылетать каждую полночь.

В качестве другого примера, последняя и самая лучшая версия работает нормально, пока Canonical не узнает, что существует огромная дыра в безопасности, которую можно «исправить», только установив новый пакет bar .

Насколько я понимаю, apt-get upgrade и apt upgrade сосредоточены на обновлении уже установленных пакетов. apt-get dist-upgrade и apt full-upgrade также могут загружать новые или даже удалять зависимости пакета . 1 2

Но что, если в выпуск / репозиторий ОС будет добавлен совершенно новый пакет, как в моих предыдущих примерах? Должен ли я где-нибудь вести блог, чтобы знать, что нужно вручную устанавливать недавно выпущенные пакеты?

1 Удобные команды, такие как apt-get dist-upgrade и apt full- upgrade в основном то же самое, что upgrade , но обрабатывает зависимости по-разному - как именно, я не понимаю.

2 Обновление ограничено «исправлениями ошибок и патчами безопасности» (см. this ).

В некоторых документах

apt-get upgrade говорится:

Пакеты, установленные в настоящее время с доступными новыми версиями, извлекаются и обновляются; ни при каких обстоятельствах не удаляются установленные в данный момент пакеты или не извлекаются и не устанавливаются еще не установленные пакеты.

apt upgrade говорит

Новые пакеты будут установлены , если потребуется для удовлетворения зависимостей [...].

Другие дистрибутивы

В качестве дополнительного бонуса, возможно, гуру Linux захочет добавить примечание о том, как все это обрабатывается в других дистрибутивах.

Честно говоря, я не совсем уверен, что понял, как выпуски, пакеты и репозитории связаны друг с другом, и, возможно, некоторые недостающие фрагменты информации, связанные с этим, затуманивают меня. В частности, стало очень пасмурно, когда я прочитал о прокатных дистрибутивах lol.

В любом случае ... большое спасибо!

0
задан 29 December 2017 в 05:55

3 ответа

Это ни в коем случае не авторитетный ответ, он в основном только документирует части моего собственного полумелого понимания.

Новые пакеты никогда не считаются исправлениями ошибок или безопасности [цитата нужна] . Они считаются новыми программами и новыми функциями ОС [цитата нужна] . Новые пакеты никогда не добавляются в выпуск Ubuntu, потому что это « froozen ».

Новые пакеты добавляются в следующий выпуск Ubuntu, который должен быть завершен в течение 6 месяцев .

Даже удаление уже выпущенного пакета « технически невозможно » и должно быть вместо этого опустошено.

В конце концов, я полагаю, что приведенные в вопросе примеры - какими бы значительными они ни казались - никогда не случались в реальной жизни? Например. Canonical никогда не приходилось добавлять новый новый пакет как часть исправления ошибки или безопасности.

0
ответ дан 29 December 2017 в 05:55

Когда в продукте A обнаружена ошибка безопасности, выпускается новый пакет для продукта A с более высокой версией. Это обновляется в списках пакетов, которые являются частью репозитория.

Когда вы запускаете sudo apt update, вы скачиваете список доступных пакетов. Позже, когда вы запустите sudo apt upgrade, учитывая, что у вас установлен продукт A, вы загрузите новую версию и установите ее.

Если у вас не установлен продукт A, пакет не будет загружен или установлен.

Вся ваша система - пакеты. Если в компоненте, например в ядре, обнаружена проблема безопасности, , то пакет будет обновлен до новой версии, но с точно таким же именем пакета.

Таким образом, это эффективно гарантирует, что вы получите исправления безопасности, подходящие для установленного вами программного обеспечения.

Если вы установили программное обеспечение не через репозитории Ubuntu, вы не будете получать обновления для них через репозитории Ubuntu.

Это несколько отличается от модели Windows, в которой вы получаете обновления, и в действительности не говорит вам, какой модуль или часть ОС обновляется, и вы не можете выбрать, что устанавливать. Но в Ubuntu (и других дистрибутивах) все является пакетом - и вы можете выбрать от очень минимальной системы, весом менее гигабайта, без графической среды, до полноценного рабочего стола - или сервера.

Прямо сейчас у меня есть один пакет, который можно обновить в имеющейся у меня коробке - firefox:

[~]$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  xserver-xorg-hwe-16.04
The following packages will be upgraded:
  firefox
1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/43.7 MB of archives.
After this operation, 21.5 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.

давайте посмотрим на этот пакет, используя apt-cache policy firefox:

[~]$ apt-cache policy firefox
firefox:
  Installed: 57.0.1+build2-0ubuntu0.16.04.1
  Candidate: 57.0.3+build1-0ubuntu0.16.04.1
  Version table:
     57.0.3+build1-0ubuntu0.16.04.1 500
        500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
 *** 57.0.1+build2-0ubuntu0.16.04.1 500
        500 http://no.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     45.0.2+build1-0ubuntu1 500
        500 http://no.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
[~]$ 

Здесь показано, что у меня установлено 57.0.1 + build2-0ubuntu0.16.04.1, но доступно 57.0.3 + build1-0ubuntu0.16.04.1. Если я решу обновить, я получу новую версию Firefox.

xserver-xorg-hwe-16.04 сохраняется в приведенном выше примере, потому что это зависит от xserver-xorg-legacy-hwe-16.04, который не установлен. Таким образом, apt upgrade не будет касаться его, если я не сделаю sudo apt-get install xserver-xorg-legacy-hwe-16.04:

[~]$ sudo apt-get install xserver-xorg-hwe-16.04
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  xserver-xorg-legacy-hwe-16.04
The following packages will be REMOVED:
  xserver-xorg-legacy
The following NEW packages will be installed:
  xserver-xorg-legacy-hwe-16.04
The following packages will be upgraded:
  xserver-xorg-hwe-16.04
1 upgraded, 1 newly installed, 1 to remove and 1 not upgraded.
Need to get 41.1 kB of archives.
After this operation, 3,072 B of additional disk space will be used.
Do you want to continue? [Y/n] 

. Таким образом, пакет будет обновляться только до тех пор, пока в нем не будут перечислены новые зависимости.

2
ответ дан 29 December 2017 в 05:55

В Debian / Ubuntu вы должны обновить список пакетов и затем обновить

sudo apt update && sudo apt upgrade

Другие дистрибутивы немного не по теме, но некоторые дистрибутивы объединяют эти 2 шага в 1

На fedora например, вы просто

sudo dnf upgrade

В Ubuntu вы можете включить автоматическое обновление, если хотите

askubuntu.com/questions/9/how-do-i-enable-automatic-updates

См. Man apt

update (apt-get (8)) update используется для загрузки информации о пакете из всех сконфигурированных источников. Другие команды работают с этими данными, например, выполнять обновления пакетов или выполнять поиск и отображать сведения обо всех пакетах, доступных для установки

do-release-upgrade обновлений до новой версии или версии Ubuntu

0
ответ дан 29 December 2017 в 05:55

Другие вопросы по тегам:

Похожие вопросы: