Изменения зависимости от списка для Кв. - получают обновление (причины сдержанных пакетов)

Как раз сегодня, пробуя обновление на Ubuntu 14.04:

$ sudo apt-get update # ...
$ 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:
  phablet-tools ubuntu-sdk ubuntu-sdk-ide
The following packages will be upgraded:
  cgroup-lite curl libcurl3 libcurl3-gnutls python3-update-manager
  update-manager update-manager-core xserver-xorg-core-lts-xenial
8 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 2,305 kB of archives.
After this operation, 13.3 kB of additional disk space will be used.
Do you want to continue? [Y/n] ^C

Хорошо, таким образом, от этого я собираюсь phablet-tools, ubuntu-sdk и ubuntu-sdk-ide пакеты имели изменения зависимости в этом обновлении, и следовательно я должен буду звонить dist-upgrade; таким образом, я делаю:

$ sudo apt-get dist-upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  at dctrl-tools devscripts distro-info-data dput intltool
  libcommon-sense-perl libdistro-info-perl libexporter-lite-perl
  libio-stringy-perl libjson-perl libjson-xs-perl libparse-debcontrol-perl
  unity-scope-tool
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  autopilot-desktop gir1.2-gconf-2.0 gir1.2-upstart-app-launch-2
  libautopilot-gtk libautopilot-qt liblxc1 libseccomp2 libxpathselect1.4
  lxc-common lxcfs lxd lxd-client python-autopilot python-autopilot-trace
  python-autopilot-vis python-contextlib2 python-decorator python-evdev
  python-extras python-fixtures python-junitxml python-mimeparse python-psutil
  python-subunit python-testscenarios python-testtools squashfs-tools
  ubuntu-sdk-tools uidmap
The following packages have been kept back:
  ubuntu-sdk
The following packages will be upgraded:
  cgroup-lite curl libcurl3 libcurl3-gnutls python3-update-manager
  ubuntu-sdk-ide update-manager update-manager-core
  xserver-xorg-core-lts-xenial
9 upgraded, 29 newly installed, 0 to remove and 1 not upgraded.
Need to get 50.2 MB of archives.
After this operation, 66.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] ^C

Для одного, ubuntu-sdk все еще сдержан - но теперь я также заставляю тонну пакетов быть удаленной, как "больше не требуется", а также тонна пакетов для установки. И этот вид раздражает меня, потому что я не могу сказать, какой пакет (зависимость), в частности, вызывает или установку новых - или удаление, должное "больше не требуемый" старых пакетов.

Таким образом, мой вопрос - там своего рода подробный режим или переключатель, apt-get, aptitude или подобные программы, которые перечислили бы то, что изменения зависимости от текущего до новой версии? Я знаю, что могу сделать:

$ apt-cache depends ubuntu-sdk
ubuntu-sdk
  Depends: autopilot-desktop
  Depends: intltool
  Depends: phablet-tools
  Depends: ubuntu-device-flash
  Depends: ubuntu-sdk-ide

... но я считал это как состояние текущей версии; то, что я хотел бы, является чем-то как (псевдокод)

$ apt-command --show-dependency-changes ubuntu-sdk
ubuntu-sdk:
  Installed: 1.126.2~0ubuntu1~trusty2 # as in 'apt-cache policy ubuntu-sdk'  
  Candidate: 1.266~0ubuntu1~0trusty
Depends: autopilot-desktop (installed v. XXX, candidate no longer required)
Depends: intltool (installed v. XXX, candidate v. YYY)
Depends: dctrl-tools (installed no dependency, candidate v. YYY)
...

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

Что-нибудь как это там?

4
задан 8 September 2016 в 12:08

1 ответ

Из страницы справочника apt-get, upgrade команда делает

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

Это означает, apt-get upgrade не установит или удалит пакет при выполнении обновления. Даже когда пакет имеет старшую версию в наличии. В этом случае тот конкретный пакет (и любые связанные пакеты, которые требуются этим) будут назад сохранены. Это для безопасности системы.

Но, Из страницы справочника apt-get, dist-upgrade

dist-обновление в дополнение к выполнению функции обновления, также разумно изменяющиеся зависимости дескрипторов с новыми версиями пакетов; склонный - добираются, имеет "умную" систему разрешения конфликтов, и она попытается обновить самые важные пакеты за счет менее важных при необходимости. Команда dist-обновления может поэтому удалить некоторые пакеты.

Так, Здесь мы видим, dist-upgrade является более жестоким, чем upgrade. Это попытается установить более новую версию важных пакетов, даже если это потребует удаления некоторых пакетов и/или установки более новых пакетов. Вот почему dist-обновление может инициировать установку/удаление других пакетов как Ваша ситуация в вопросе.

Также обратите внимание, что, пакет может быть held-back для некоторых других случаев также, как прикрепление. Если Вы прикрепляете пакет, который не будет обновлен.

held-back может также произойти, когда более новая версия пакета не может быть установлена из-за недостатка одного или нескольких, он - пакеты зависимости.

Я хотел бы подробное объяснение причины, почему конкретный пакет будет недавно установлен или удален.

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

Для Вашего особого случая можно проверить изменение зависимости ubuntu-sdk использование apt-cache depends ubuntu-sdk=<version-installed> и apt-cache depends ubuntu-sdk=<version-candidate>. Вы будете видеть, что более новые версии требуют дополнительных пакетов.

Можно также использовать aptitude safe-upgrade (для upgrade) или aptitude full-upgrade для (dist-upgrade) и в то время как это показывает списки пакета, чтобы установить и/или удалить, нажмите d для наблюдения информации о зависимостях. Или в то время как Вы используете full-upgrade, можно нажать o, чтобы видеть, что он предложил решение для разрешения зависимости. Это покажет Вам, почему пакет будет установленным или удаленным.

Проверьте эти ссылки на более -

0
ответ дан 1 December 2019 в 11:33

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

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