aptitude: значение фигурных скобок, т. е. package1 {b} package2 {a} package3 {u}

14

При использовании aptitude список измененных пакетов иногда имеет один символ в фигурных скобках за именами некоторых пакетов. Страница руководства содержит два примера, но не объясняет их (версия 0.6.10-1).

Я заметил {b}, {a} и {u} до сих пор. Первый, кажется, появляется при запуске aptitude installи пытается переустановить удаленные пакеты (например, через debfoster, как я могу отключить это?), Последние два, похоже, как-то связаны с автоматическим разрешением зависимостей.

Что означают эти символы, есть ли другие, и какое значение они имеют для других операций? Эта дополнительная информация доступна dpkgили apt?

конечный серо-зеленый
источник

Ответы:

8

Это не задокументировано. Я предполагаю, что aэто для автоматической установки, uдля (автоматического?) Обновления и bдля пакетов, установленных для исправления поврежденных пакетов.

Это означало бы debfosterудаление пакетов, которые он не должен делать. Обратите внимание, что на веб-сайте написано:

As of 2006-01-01, debfoster is officially deprecated.

Возможно, это привело к появлению ошибок на протяжении многих лет из-за изменений в aptсистеме. Вы можете подтвердить это, выполнив aptitude search '~b'после использования debfoster(в нем будут перечислены битые пакеты).

Обратите внимание, что aptтеперь поддерживает автоматический флаг для пакетов зависимостей и имеет apt-get autoremove. С способностями вы можете сделать aptitude remove '~g'.

Обновить

Играя с aptitude, получается, что если я нажимаю, ?когда получаю Do you want to continue? [Y/n/?]подсказку, я получаю следующее сообщение:

In the list of actions to be performed, some packages will be followed by one or
more characters enclosed in braces; for instance: "aptitude{u}".  These
characters provide extra information about the package's state, and can include
any combination of the following:

  'a': the package was automatically installed or removed.
  'b': some of the package's dependencies are violated by the proposed changes.
  'p': the package will be purged in addition to being removed.
  'u': the package is being removed because it is unused.

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

Также обратите внимание, что aptitude keep-allэто, вероятно, безопаснее, чем удаление/var/lib/aptitude/pkgstates

Graeme
источник
ps auxfпоказывает, что debfoster просто вызывает apt-get --purge remove pkg1 pkg2 etc., поиск '~ b' ничего не возвращает, а следующий aptitude installпереустанавливает pgk1 pkg2 и т. д.
конечный серый-зеленый
1
@finitegraygreen, я думаю, это не для сломанных пакетов! Вы можете попробовать использовать, aptitude whyчтобы найти то, что происходит, или просто --show-whyвариант.
Graeme
@finitegraygreen, какой был вывод здесь? Был bсломан в конце концов или aptitude whyпоявился какой-то другой причине? Я уверен, что я столкнусь с этим снова в какой-то момент, было бы приятно знать ...
Грэм
Ну, вывод: «Они не задокументированы». И я прекратил вмешательство между apt-get и aptitude, вызвав амнезию на последнем через удаление /var/lib/aptitude/pkgstates. В противном случае я все равно получаю apt-get remove pkg; aptitude why pkg«Невозможно найти причину для установки»; aptitude installзатем устанавливает pkg.
конечный серо-зеленый
@finitegraygreen, оказывается, есть описание того, что это значит. Смотрите обновленный ответ.
Грэм,
1

Этот пост автора aptitude объясняет {a}и {u}:

  • {a} означает, что пакет будет установлен дополнительно к тому, о чем вы просили.
  • {u} означает, что пакет не используется системой и будет удален.

К сожалению, это не объясняет {b}.

Ecogeek
источник