Где находится последний исходный код команды man для linux?

20

Я ищу последний исходный код команды man, версия в моем Linux довольно старая (v1.6f), но я потерпел неудачу после поиска в Google.

Я имею в виду последний исходный код man, man-pagesно не сам двоичный файл /usr/bin/man, который можно скомпилировать и установить.

CodyChan
источник

Ответы:

19

Обычно вы можете запросить ваш дистрибутив, чтобы узнать, откуда берутся источники Например, я на Fedora и вижу, что manкоманда приходит из man-dbпакета:

$ rpm -qf /usr/bin/man
man-db-2.6.7.1-16.fc21.x86_64

Затем я могу запросить man-dbпакет для восходящего URL:

$ rpm -qi man-db | grep -i url
URL         : http://www.nongnu.org/man-db/

И вот, http://www.nongnu.org/man-db/ .

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

larsks
источник
Спасибо, у меня уже есть man-db после того, как я отправил этот вопрос, кажется, я не могу просто скомпилировать man из исходного кода из-за множества зависимостей.
CodyChan
Это правда. Вам придется сначала разрешить все зависимости. даже тогда ваш новый двоичный файл man может оказаться бесполезным для вас из-за зависимостей от других более новых двоичных файлов.
fpmurphy
1
Если есть только линейные зависимости, это легко ;-) Существуют программные системы линии GNOME, которые имеют циклические зависимости. Я надеюсь, что некоторые разработчики OSS научатся создавать источники только с документированными линейными зависимостями.
Щили
1
Для дальнейшего использования в дистрибутивах на основе Debian эквивалентными командами являются dpkg -S /usr/bin/manиapt-cache show man-db | grep Homepage
Тим
2

В дистрибутивах на основе Debian, таких как Ubuntu, вы можете найти и скачать исходный код, как показано ниже:

$ which man
/usr/bin/man
$ dpkg --search /usr/bin/man
man-db: /usr/bin/man
$ apt-get source man-db

Это поместит исходный код в ваш текущий рабочий каталог.

Ю Цзяо
источник
Спасибо, это помогло мне. Было бы неплохо, если бы этот ответ мог быть более обобщенным.
Аарон Холл
-2

Linux это не операционная система, а просто ядро. Так что в теории каждый дистрибутив может свободно использовать все, что ему нравится.

Даже rpm не обязательно используется в каждом дистрибутиве Linux, поэтому первым делом нужно выяснить, какая реализация используется. Обычно это можно сделать с помощью stringsдвоичного файла, а затем использовать значимую строку в двойных кавычках в качестве строки поиска в Google.

Шили
источник
1
Если rpm -qfили dpkg -Sили эквивалент для вашей системы пакетов для `" (команда -v man) "возвращает имя пакета, тогда этот метод будет намного более надежным, чем поиск в Google строк, найденных в двоичном файле. Имейте в виду, что большинство дистрибутивов исправляет программное обеспечение из апстрима. Таким образом, исходный пакет для вашего дистрибутива - единственное место, где можно найти точный исходный код, скомпилированный для вашего / usr / bin / man.
Стефан Шазелас
Существует более десятка различных систем упаковки, поэтому вам нужно упомянуть много методов ..... но вы правы: в целом, многие дистрибутивы не совместимы и либо исправляют ошибки в программном обеспечении, либо не сообщают о полезных исправлениях вверх по течению.
15:00