Заставить apt-get снова задать все вопросы по установке?

При установке jackd с помощью apt-get я дал неправильный ответ на некоторые вопросы. Как мне заставить apt-get снова задать мне вопрос? Я действительно предпочел бы сделать это через менеджер пакетов, чем вносить изменения вручную.

Я попытался очистить его и установить снова. Я также пытался dpkg-reconfigure jackd.

3
задан 20 October 2013 в 15:55

3 ответа

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

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

$ sudo debconf-show --listowners | grep jack
jackd2

и оказывается, что

$ sudo dpkg-reconfigure jackd2

действительно подсказывает вопрос, который вы ищете.

0
ответ дан 20 October 2013 в 15:55

В интересах читателя, если вы наткнетесь на подобную вещь, это поможет решить следующие проблемы:

  • После установки пакета вы видите, что многие вещи в неправильном месте.
  • dpkg-reconfigure package также не помогает, так как это может оставить нежелательный (или даже опасный) мусор позади (например, при переключении на имя пользователя git для пакета gitolite3 он не очищает пользователя по умолчанию gitolite3). - поскольку он не может знать, использовался ли этот пользователь в то же время).
  • После удаления пакета Debian все еще «волшебным образом» запоминает последние значения, введенные при следующей установке.
  • Вы можете увидеть некоторые значения конфигурации пакета в dpkg-reconfigure, которые не спрашиваются в apt-get install
  • Вы ненавидите Curses-GUI или любите текстовые консоли

Имеете apt запрашивать каждое возможное значение конфигурации

DEBIAN_FRONTEND=readline DEBIAN_PRIORITY=low apt-get install PACKAGE

Однако, это может не требовать всего, если уже есть кэшированные ответы. Они хранятся в том, что называется debconf. Файл, в котором он хранится, называется /var/cache/debconf/config.dat.

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

debconf-show PACKAGE

См. Ниже о некоторых способах избавления от нежелательных записей (существует еще миллион способов конечно).

Предупреждение:

Никогда не редактируйте /var/cache/debconf/config.dat самостоятельно. Посмотрите на это, но не изменяйте это с помощью редактора. Это придирчивый файл. Пробелы, вкладки и т. Д. Не касаются их, сохраняют их как есть. Некоторые редакторы пытаются делать умные вещи с пробелами в текстовых файлах. Они уничтожат config.dat. И большую часть времени вы даже не можете видеть это.

Вместо этого используйте подходящие инструменты (некоторые из них в debconf-utils):

  • debconf-get-selections, чтобы выгрузить все,
  • debconf-set-selections, чтобы установить вещи
  • debconf-show PACKAGE чтобы увидеть все параметры debconf из PACKAGE (это все, что dpkg-reconfigure PACKAGE попросит)
  • echo PURGE | debconf-communicate PACKAGE - удалить всю информацию debconf из ПАКЕТА

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

Как избавиться от всего пакета

Внимание! apt-get purge (он же. apt-get remove --purge) может уничтожить ценные пользовательские данные. Убедитесь, что вы сохранили резервную копию, просто случайно. Вы были предупреждены.

Противоположностью apt-get install PACKAGE является apt-get remove --purge PACKAGE. В настоящее время мы можем написать apt-get purge PACKAGE и для этого. Без очистки некоторые вещи остаются позади, так что вы можете быстро установить ПАКЕТ снова, сохранив все предыдущие настройки и данные. Это включает в себя все вопросы, задаваемые при первой установке ПАКЕТА.

Однако apt-get purge PACKAGE удаляет все следы ПАКЕТА, включая его конфигурацию, и довольно часто даже ценные пользовательские данные, которые были сохранены или для ПАКЕТА, будут также полностью удалены!

Так что, если вы видите, что что-то пошло не так при установке пакета, вы можете использовать apt-get purge PACKAGE, чтобы избавиться от него, так что вы можете попробовать снова установить его правильно. Позже, после того, как вы использовали PACKAGE некоторое время, apt-get purge PACKAGE, вероятно, выходит очень злым.

Обратите внимание, что apt-get purge PACKAGE иногда оставляет мусор, когда пакет был перенастроен на dpkg-reconfigure PACKAGE, потому что purge работает на том, что известно в «время очистки», а не на том, что было до этого, потому что мало что нет истории о том, что было до последнего dpkg-reconfigure.

Но если вы уверены, что не осталось ценных данных, для которых нет резервных копий, и вы хотите начать с нового пакета, выполните apt-get purge PACKAGE. Обратите внимание, что вы можете сделать это даже после удаления пакета с помощью apt-get remove PACKAGE.

Как найти пакет

Вы знаете файл, но не знаете, к какому пакету он принадлежит, он найдет его:

dpkg -S /path/to/file

Если это ничего не выводит, это не принадлежит ПАКЕТУ. Так что, возможно, это пользовательские данные или мусор. Вы решаете.

Для КОМАНДЫ вы можете набрать (обратите внимание, что кавычки важны), чтобы найти его ПАКЕТ:

dpkg -S "`which COMMAND`"

Если вы нашли пакет, вы можете получить список всех файлов в пакете:

dpkg -L PACKAGE

(Обратите внимание, что это не включает некоторые файлы, которые генерируются сценариями установки.)

Однако поиск пакета работает только для установленных пакетов. Если вам нужна та же информация для еще не установленных пакетов, попробуйте инструмент apt-file search filename (сначала вам нужно запустить apt-file update, чтобы инициализировать его базу данных).

Подводя итог

  • Вы уже установили ПАКЕТ и хотите перенастроить его

    dpkg-reconfigure PACKAGE
    
  • Вы хотите повторно установить ПАКЕТ с текущими настройками apt-get install --reinstall PACKAGE

  • Вы хотите переустановить PACKAGE с нуля, удалив все предыдущие (возможно ценные) данные, и задайте все возможные вопросы снова:

    apt-get purge PACKAGE
    DEBIAN_PRIORITY=low apt-get install PACKAGE
    
  • Если вам не нравится интерфейс Curses и вы хотите использовать линейный интерфейс

    , добавьте DEBIAN_FRONTEND=readline перед apt-get

  • Если вам даже не нравится интерфейс readline и вы хотите просто мертвое простое редактирование строк

    добавьте TERM=dumb перед apt-get (обратите внимание, что в этом нет ничего особенного из debconf, это работает с момента рождения Unix).

(Обратите внимание, что вы можете установить это в Среде так же, как export DEBIAN_FRONTEND=readline, конечно.)

FYI

Лучший известный мне источник, где debconf объяснил, так что вы действительно можете понять это, и где я взял большинство деталей для этого здесь, это следующая ссылка, но страница на немецком языке:

http://debiananwenderhandbuch.de /debconf.html

Кстати:

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

  • Этот ответ слишком длинный. Что, вероятно, означает, что apt и debconf все еще слишком запутаны.

0
ответ дан 20 October 2013 в 15:55

Я слишком просто столкнулся с этой той же проблемой (на Сервере Ubuntu 18.04), где я установил jackd и хотел реконфигурировать его для включения приоритетов в реальном времени, к которым я выбрал No на начальной установке.

Мне все еще отобразили текст установки на моем экране, когда я прокрутил назад. (через Shift-PageUp) и когда я видел эти две строки:

Setting up jackd1 (1:0.125.0-3) ...
Setting up jackd (5) ...

Я полагал, что мог попытаться реконфигурировать jackd1 вместо jackd.

Конечно же, я сделал a sudo dpkg-reconfigure jackd1 и мне предложили вопрос в реальном времени снова.

Когда я ответил на да на этот раз, это изменило/etc/security/limits.d/audio.conf.disabled файл в/etc/security/limits.d/audio.conf, который является тем, что я сортирую ожидаемых.

Из любопытства я дал команду, которую сделал @steeldriver, и моя система действительно показывала jackd1 вместо jackd2, так, чтобы все имело смысл.

sudo debconf-show --listowners | grep jack
jackd1
0
ответ дан 9 October 2019 в 14:53

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

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