Gdzie jest najnowszy kod źródłowy komendy man dla systemu Linux?

20

Szukam najnowszego kodu źródłowego komendy man, wersja w moim systemie Linux jest dość stara (v1.6f), ale po pewnym czasie nie udało mi się.

Mam na myśli najnowszy kod źródłowy man, man-pagesale nie sam plik binarny /usr/bin/man, który można skompilować i zainstalować.

CodyChan
źródło

Odpowiedzi:

19

Zwykle możesz zapytać swoją dystrybucję, aby zobaczyć, skąd pochodzą źródła. Na przykład korzystam z Fedory i widzę, że manpolecenie pochodzi z man-dbpakietu:

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

Mogę następnie wysłać zapytanie do man-dbpakietu o adres URL wysyłania:

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

I proszę bardzo, http://www.nongnu.org/man-db/ .

Możesz wykonać podobną sekwencję kroków z systemami pakowania używanymi w innych dystrybucjach.

Larsks
źródło
Dzięki, mam już man-db po tym, jak opublikowałem to pytanie, wygląda na to, że nie mogę po prostu skompilować człowieka z kodu źródłowego z powodu wielu zależności.
CodyChan,
To prawda. Najpierw musisz rozwiązać wszystkie zależności. nawet wtedy twój nowy plik binarny man może nie być dla ciebie przydatny z powodu zależności od innych nowszych plików binarnych.
fpmurphy
1
Jeśli istnieją tylko zależności liniowe, jest to łatwe ;-) Istnieją systemy GNOME linii programów, które mają zależności kołowe. Mam nadzieję, że niektórzy programiści OSS nauczą się tworzyć źródła tylko z udokumentowanymi zależnościami liniowymi.
schily
1
Dla porównania w przyszłości, opartych na dystrybucji Debian równoważne są polecenia dpkg -S /usr/bin/maniapt-cache show man-db | grep Homepage
Tim
2

W dystrybucjach opartych na Debianie, takich jak Ubuntu, możesz znaleźć i pobrać kod źródłowy, jak poniżej:

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

Spowoduje to umieszczenie kodu źródłowego w bieżącym katalogu roboczym.

Yu Jiaao
źródło
Dzięki, pomogło mi to. Byłoby miło, gdyby ta odpowiedź mogła być w jakiś sposób bardziej uogólniona.
Aaron Hall,
-2

Linux nie jest systemem operacyjnym, ale tylko jądrem. Teoretycznie każda dystrybucja może swobodnie korzystać z tego, co im się podoba.

Nawet rpm niekoniecznie jest używany w każdej dystrybucji Linuksa, więc pierwszym krokiem jest ustalenie, która implementacja jest używana. Zazwyczaj można to zrobić za pomocą stringspliku binarnego, a następnie użyć znaczącego ciągu w podwójnych cudzysłowach jako ciągu wyszukiwania w Google.

schily
źródło
1
Jeśli rpm -qflub dpkg -Sodpowiednik twojego systemu pakowania dla „$ (polecenie -v man) zwraca nazwę pakietu, to metoda ta będzie o wiele bardziej niezawodna niż wyszukiwanie w łańcuchach znalezionych w pliku binarnym. Należy pamiętać, że większość dystrybucji łata oprogramowanie z góry. Zatem pakiet źródłowy dla twojej dystrybucji jest jedynym miejscem, gdzie można znaleźć dokładny kod źródłowy skompilowany dla twojego / usr / bin / man.
Stéphane Chazelas,
Istnieje kilkanaście różnych systemów pakowania, więc musisz wymienić wiele metod ... ale masz rację: ogólnie wiele dystrybucji nie współpracuje i albo łata błędy w oprogramowaniu, albo nie zgłasza przydatnych poprawek pod prąd.
schily