W Linuksie, jak uzyskać stronę podręcznika dla skompilowanych programów?

3

Wiem, że zainstalowanie pakietu przez APT (apt-get lub aptitude dla mojego komputera) automatycznie zainstaluje odpowiednie strony podręcznika man i zaktualizuje bazę danych podręcznika. Jednak gdy chcę zbudować te same pakiety, nie jest zainstalowana strona podręcznika man i nie mogę użyć man dla tego programu. Jak uzyskać strony podręcznika dla skompilowanego przeze mnie oprogramowania? (Używam Ubuntu 10.10).

AniDev
źródło
Próbujesz zbudować debpakiet, czy kompilujesz, a następnie instalujesz make install? Jeśli ten pierwszy, opublikuj swój debian/rules. Jeśli to drugie, wyjaśnij, w jaki sposób konfigurujesz program (czy uruchomiłeś ./configure, czy edytowałeś makefile, jakie zmienne przekazałeś makeitp.).
Gilles,
Użyłem cmake do skonfigurowania programu; wiersz komend był cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local. Potem pobiegłem make && sudo make installjak zwykle.
AniDev,

Odpowiedzi:

3

Czy konfigurujesz kompilację oprogramowania z domyślnymi lokalizacjami (w / usr) i instalujesz jako root? (ale nie buduję jako root mam nadzieję). Jeśli tak, to strony podręcznika, jeśli takie istnieją, powinny zostać zainstalowane tam, gdzie mansą już widoczne.

Jeśli instalujesz w niestandardowej lokalizacji, musisz poinformować man, gdzie one są. W tym celu możesz użyć MANPATHzmiennej środowiskowej. Ustaw normalne mankatalogi i dodaj do niego również katalog instalacyjny. Coś jakexport MANPATH=/usr/share/man:/path/to/your/dir

EDYCJA : Nie jestem też pewien „bazy danych man”. Naprawdę nie ma jednego. Istnieje kilka dystrybucji, które przetwarzają strony stron man, kompresują je lub dekompresują. Ale tak naprawdę nigdzie nie przechowują listy stron podręcznika. Pseudo kodem:

for DIR in $MANPATH
    for SEC in $MANSECTIONS (or just the one section if you give as `-s SEC`)
        open dirlist for $DIR/man${SEC}
        in dir list list, look for $COMMAND.$SEC
        if you find it, display and exit

To może być twój problem. Jeśli zainstalowałeś w niestandardowym katalogu, czy konwencja nazewnictwa jest odpowiednia? Jeśli masz plik bubba.1, plik powinien zostać zainstalowany w jakiejś ścieżce /path/to/bubba/install/man1/bubba.1iMANPATH=/usr/share/man:/path/to/bubba/install

Rich Homolka
źródło
Czasami konfiguruję moje oprogramowanie do kompilacji w / usr / local, to może być problem. Nie kompiluję jako root, ale instaluję jako root (make; sudo make install). Nie sądzę jednak, aby strony podręcznika były tam (szukałem w folderze man8).
AniDev,
1
Ponadto, jeśli nie ma „bazy danych”, to dlaczego są foldery dla man-db i istnieje program o nazwie „mandb”?
AniDev,
@AniDev: nie mam mandb w moim systemie. Dla mojego powyższego komentarza uruchomiłem strace na moim poleceniu man, aby sprawdzić, czy trafił on w db, nie zadziałał. Nie mogę powiedzieć dla wszystkich wersji człowieka, czy używają jednej, czy nie.
Rich Homolka,
1
Ok dzięki. Ilekroć APT instaluje pakiet, prawie zawsze na końcu mówi: „Wyzwalanie przetwarzania dla man-db ...”.
AniDev,
Nie do końca odpowiada na moje pytanie, ale mimo to jest pomocny, dlatego zaznaczam twoją odpowiedź jako moją zaakceptowaną odpowiedź.
AniDev,