Найдите пакет программного обеспечения с самым большим числом страниц руководства по системе

Я полагаю, что необходимо добавить что-то как следующее к Вашему /etc/conf.d/net:

dhcpcd_eth0="-h yourhostname -H yourhostname"

P.S. Можно хотеть проверить:

P.P.S. Лично я использую dhclient потому что dhcpcd багги взглядов для меня.

3
30.10.2015, 21:35
4 ответа

По моему gentoo box команда

qfile /usr/share/man/*/* | awk '{print $1}' | sort | uniq -c | sort -n

дает

    864 sys-libs/ncurses
   1139 sys-apps/man-pages-posix
   1283 dev-libs/openssl
   2209 sys-apps/man-pages
   2246 x11-libs/libxcb

Но после включения всех подкаталогов с помощью ** шаблона

qfile /usr/share/man/**/* | awk '{print $1}' | sort | uniq -c | sort -n

man-страниц выигрывает:

    933 sys-libs/ncurses
   1142 sys-apps/man-pages-posix
   1352 dev-libs/openssl
   2254 x11-libs/libxcb
   2310 sys-apps/man-pages
3
27.01.2020, 21:09

Для систем, основанных на Debian, чтобы получить пакет с наибольшим количеством установленных man-страниц:

dpkg -S '/usr/share/man/*.gz' | cut -d: -f1 | sort | uniq -c | sort -rn | head -1 | awk '{print $2}'

Чтобы получить пакет с наибольшим количеством доступных man-страниц (независимо от того, установлен он или нет):

apt-file search /usr/share/man | cut -d: -f1 | uniq -c | sort -rn | head -1 | awk '{print $2}'

В моей системе, пакет с наибольшим количеством доступных man-страниц - это linux-manual-3.2.

Объяснение

Постепенно создавая пкг :

  • поиск по apt-файлам /usr/share/man

    возвращает имена пакетов и файлов для всех файлов в иерархии /usr/share/man.

  • cut -d: -f1

    Удаляет имена файлов из списка, так что у нас есть только список пакетов.

  • uniq -c

    Подсчитывается количество man-страниц в каждом пакете. (Часто перед использованием uniq -c нужно отсортировать, но apt-find одновременно выводит один пакет, делая этот шаг ненужным)

  • сортировка -rn

    Это делает цифровую сортировку в порядке убывания, так что пакет с наибольшим количеством man-страниц находится вверху, а те, что с наименьшим, - внизу.

  • head -1

    This pickks the first line which the one with the most man pages (Глава -1

    ).

  • awk '{print $2}'

    Выбирается имя пакета из этой строки.

Мне показалось интересным использовать только часть этого конвейера:

apt-file search /usr/share/man | cut -d: -f1 | uniq -c | sort -rn | less

Здесь отображается, через минус, список пакетов, отсортированных в порядке убывания по количеству man-страниц. В моей системе первые пять:

   3453 linux-manual-3.2
   3384 liblapack-doc-man
   2350 freebsd-manpages
   1916 manpages-ja-dev
   1905 manpages-fr-dev
4
27.01.2020, 21:09

Альтернатива для Debian / Ubuntu / Mint ...

$ cd /var/lib/dpkg/info && 
  grep -c '^/usr/share/man/.*/' *.list | sort -t: -k2rn | less -XF

Дает мне:

manpages-dev.list:1962
libssl-doc.list:1171
tcl8.6-doc.list:813
perl-doc.list:719
libdatetime-locale-perl.list:470
tcllib.list:407
3
27.01.2020, 21:09

Это решение работало на машинах CentOS и RHEL .

rpm -qf $(man -w $(compgen -ac)) | sort | uniq -c | sort -nr | head -1

Я могу сгенерировать список всех команд, доступных в системе, используя compgen -ac . Теперь man -w может указать соответствующую страницу руководства для этой команды.

Я передаю эту страницу руководства в качестве входных данных для rpm -qf , которая предоставит мне пакет, которому она принадлежит. Теперь я сортирую вывод, затем нахожу общее количество вхождений, а затем получаю первую строку, которая дает мне имя пакета с количеством страниц руководства, соответствующих этому пакету. После того, как я запустил указанную выше команду, я получаю следующие выходные данные:

329 netpbm-progs-10.47.05-11.el6.x86_64

Итак, приведенные выше результаты показывают, что у меня есть 329 записей справочной страницы для команд, предоставляемых пакетом netpbm-progs-10.47.05-11. el6.x86_64 , который является самым высоким в моей системе.

Ссылки

https://www.kernel.org/doc/man-pages/man_pages_other.html

2
27.01.2020, 21:09

Теги

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