Почему apropos и man -опускают или пропускают достоверные результаты?

Как я это решил

У меня были проблемы с автозаполнением при попытке автозаполнения wgetс помощью apt-get install wg[TAB][TAB], и мне удалось решить эту проблему, удалив параметр --no-generateиз мух ниже:

/usr/share/bash-completion/completions/apt-cache
/usr/share/bash-completion/completions/apt-get

Стоит отметить, что эти файлы доступны только после установки bash-completion.

Параметр --no-generate, о котором я говорю, можно увидеть в строке ниже, но я удалил ВСЕ --no-generate, а не только из этой строки :https://github.com/scop/bash-completion/blob/master/completions/apt-get#L28

Как я пришел к этому?

Я добрался до этой точки после запуска set -vдо apt-get install wg[TAB][TAB], который показал, что выполненная команда была:

apt-cache --no-generate pkgnames wg

и на выходе была ошибка:

E: Could not open file  - open (2: No such file or directory)

Когда я выполнил apt-cache pkgnames wgбез --no-generate, я правильно получил список для автодополнения:

root@484f5c8f56ba:/# apt-cache pkgnames wg
wgalician-minimos
wget2
wgaelic
wget
wgerman-medical
wget2-dev

Надеюсь, это поможет.

2
05.11.2020, 21:30
1 ответ

Это ошибка на справочных страницах пакета GNU diffutils. Как вы подозревали, проблема в том, что они показывают «GNU diff» (и т. д. ), а не просто «diff» в качестве имени программы. Это приводит к тому, что программа man не распознает краткое описание.

python3
>>> import dbm
>>> db = dbm.open('/var/cache/man/index.db')
>>> db['diff\0']
b'-\t1\t1\t1554725040\t0\tA\t-\t-\tgz\t\x00'
>>> db['cat\0']
b'-\t1\t1\t1567679920\t0\tA\t-\t-\tgz\tconcatenate files and print on the standard output\x00'

Ошибка появилась где-то после diffutils 3.3 и до diffutils 3.6. Об этом сообщается как ошибка #39760 и исправлено в этой фиксации или, возможно, этой фиксации . Исправлений еще нет в релизе, они будут в diffutils 3.8.

1
18.03.2021, 22:52

Теги

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