Неужели `command-not-found` сломан?

Там действительно отличный пакет, который мне нравится, называется command-not-found . Когда вы вводите неизвестные команды, он ищет через apt и предлагает пакеты для установки. До этого он работал в малине Pi.

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

sudo apt-get install command-not-found

Установлен пакет. Согласно документам, вам необходимо создать свою базу данных:

sudo update-command-not-found

Он, однако, заканчивается через полсекунды с кодом возврата 0, который является подозрительным и странным. Я использовал его раньше на полном ПК и занимает не менее 20 секунд.

Затем, независимо от того, сколько раз я пытаюсь update-command-not-found, или перезапустить мой сеанс bash, база данных никогда не существует.

$ aoeuaoeuaoeu
Could not find the database of available applications, run update-command-not-found as root to fix this
aoeuaoeuaoeu: command not found

Если вы man update-command-not-found, он ссылается на файл /папку (я не знаю) /var/cache/apt/apt-file, который, похоже, вообще не существует. Должно ли это? Или должен update-command-not-found искать в другом месте?

4 голоса | спросил Ekevoo 19 72017vEurope/Moscow11bEurope/MoscowSun, 19 Nov 2017 01:01:26 +0300 2017, 01:01:26

1 ответ


3

Краткий ответ из раздела комментариев

Запустите apt-file update перед запуском update-command-not-found

Более длинный ответ

Утилита command-not-found включает зависимость от apt утилита поиска apt-file

#apt-cache depends command-not-found

command-not-found
  Depends: <python:any>
    python:i386
    python
  Depends: apt-file
  Depends: python-gdbm
  Depends: lsb-release

Итак, в системе, где apt-file не был установлен, установка command-not-found также установит apt-file. Однако apt-file - это не та же программа, что и apt, и, похоже, не полностью полагается на кеш apt-get update. Итак, чтобы правильно настроить apt-file apt-file update.

В apt-get есть ключ в случае установки command-not-found и вытягивание apt-file в качестве зависимости.

#apt-get install command-not-found
...
Setting up apt-file (3.1.5) ...
The system-wide cache is empty. You may want to run 'apt-file update'
as root to update the cache.

Странно, когда вы просматриваете страницу apt-file, update отображается как устаревшая и вызывает вызов apt update. Я не слишком внимательно смотрел на различия в том, где хранится кеш пакетов, или есть какой-то идентификатор, помещенный в apt кэш-файл, чтобы указать, что apt в сравнении с apt-get был использован для обновления кеша. Итак, я не уверен, что для почему apt update необходим по сравнению с apt-get update. Я полагаю, было бы сложно включить обновление соответствующего кеша при настройке apt-file, потому что dpkg уже работает с файлом блокировки.

ответил RubberStamp 20 12017vEurope/Moscow11bEurope/MoscowMon, 20 Nov 2017 21:46:13 +0300 2017, 21:46:13

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132