Czy mogę wyłączyć wszystkie strony podręcznika?

14

W szczególności na Raspberry Pi (z Raspbian Wheezy), ale także ogólnie, czy mogę wyłączyć wszystkie strony podręcznika?

Oznaczałoby to brak przechowywanych stron podręcznika man, brak „wyzwalaczy przetwarzania dla man-db” itd. I tak dalej. Ponieważ strony podręcznika są zawsze dostępne w Internecie, tak naprawdę nie potrzebuję ich instalować, a ich generowanie i przechowywanie wydaje się niepotrzebne.

Soumya
źródło
Obawiam się, że prawdopodobnie utknąłeś nawet na samych stronach - są one częścią debiutów oprogramowania, z którym idą.
Shadur
6
Z pewnością są lepsi kandydaci do oszczędzania miejsca niż strony podręcznika?
jasonwryan
Mogę sobie wyobrazić konfigurację narzędzia do pakowania, która upuszcza wszystkie pliki oznaczone jako dokumenty i / lub pliki pasujące do wyrażenia regularnego. Nie jestem jednak świadomy realizacji tej koncepcji.
Pavel Šimerda
Zaoszczędzisz tylko 1% miejsca (prawdopodobnie mniej)? Prawdopodobnie trochę więcej, jeśli również stłumisz /usr/share/doc.
Gilles „SO- przestań być zły”

Odpowiedzi:

16

Miałem odwrotny problem na obrazie Debiana 8, który ktoś stworzył dla Wandboard. Próbowałem znaleźć stronę podręcznika dla niektórych pakietów, które zostały już zainstalowane i zauważyłem, że po zainstalowaniu niektórych nowych stron podręcznika brakowało, mimo że były obecne w pliku deb.

Następnie znalazłem ten plik 01_nodoc w /etc/dpkg/dpkg.conf.d, który jest prostym rozwiązaniem pierwotnego pytania o to, jak zaoszczędzić miejsce, usuwając strony podręcznika i ustawienia regionalne oraz pliki praw autorskich, w których jest mało miejsca (np. Osadzone systemy).

# /etc/dpkg/dpkg.conf.d/01_nodoc

# Delete locales
path-exclude=/usr/share/locale/*

# Delete man pages
path-exclude=/usr/share/man/*

# Delete docs
path-exclude=/usr/share/doc/*
path-include=/usr/share/doc/*/copyright
Oszczędzanie miejsca
źródło
Inna przydatna odpowiedź znajduje się na askubuntu.com/a/401144/162384 , który - oprócz świetnego przykładu - wskazuje na dokumenty: wiki.ubuntu.com/ReducingDiskFootprint#Documentation
berto
6

Problem polega na tym, że system zarządzania pakietami oczekuje, że pliki, które instaluje (w tym strony podręcznika) pozostaną tam, więc jakikolwiek mechanizm użyty do ich usunięcia (oprócz przebudowywania każdego pakietu, jak sugeruje HalosGhost), pomyli go.

Jeśli robisz to, aby wyprodukować urządzenie jednocelowe, jednym z rozwiązań, które możesz zastosować, jest oddzielne kroki budowania i wdrażania dla tego urządzenia. Oznacza to, że instalujesz wszystkie potrzebne pakiety w oddzielnym środowisku kompilacji (inna karta SD lub emulowane RPi), a następnie kopiujesz tylko to, co chcesz mieć ze środowiska produkcyjnego do środowiska produkcyjnego. Na tym etapie możesz pominąć strony podręcznika i wszystko, co nie jest potrzebne w produkcji.

Aby pobrać zaktualizowany system operacyjny lub poprawki bezpieczeństwa, zaktualizuj lub przebuduj środowisko kompilacji i ponownie skopiuj (lub rsync) do wersji produkcyjnej.

To trochę więcej pracy, ale daje ci bardzo kontrolowane urządzenie produkcyjne, w porównaniu do logowania i uruchamiania aktualizacji bezpośrednio na nim.

Andrew McGuinness
źródło
5

Cóż, nie wiedząc, w jakiej dystrybucji działa twoje RPi, nie mogę ci pomóc z dokładnymi poleceniami, ale prawdopodobnie możesz usunąć man-dbpakiet, który zawiera zarówno mannarzędzie, jak i różne strony podręcznika . Jednak usunięcie wszystkich stron podręcznika wymagałoby usunięcia każdej strony podręcznika z każdej paczki - nie wyobrażam sobie, że warto poświęcić swój czas, aby zaoszczędzić miejsce w KiB.

Jeśli naprawdę tego chcesz, musisz przebudować każdy pakiet; w dystrybucji, takiej jak Archlinux lub Gentoo, niekoniecznie jest to niemożliwe, ale wciąż jest dość nużące. W innych mniej praktycznych dystrybucjach zadanie to może być niezwykle trudne.

HalosGhost
źródło
2
apt-get remove --purge man-dbodinstaluje również, debhelperczy nie jest to konieczne?
rubo77
4
$ cat /etc/apt/apt.conf.d/90debsums 
DPkg::Post-Invoke { "if [ -x /usr/bin/debsums ]; then /usr/bin/debsums --generate=nocheck -sp /var/cache/apt/archives; fi"; };

Pakiet debsumsinstaluje akcję automatycznego generowania list md5sum dla pakietów po zainstalowaniu pakietu bez posiadania własnego pliku md5sums.

Możesz dodać podobne skanowanie po instalacji i usuwanie stron podręcznika (i dokumentów informacyjnych) po każdej akcji instalacji.

Aby uzyskać strony podręcznika i posiadane pakiety, musisz przeskanować wszystkie /var/lib/dpkg/info/PACKAGENAME.listpliki.

Powinieneś zaktualizować *.listpliki, nie wspominając już o usuniętych stronach podręcznika.

localepurgeczęściowo to robi. Cytat z apt-cache show localepurge:

Jest to skrypt do odzyskiwania miejsca na dysku zmarnowanego na niepotrzebne ustawienia narodowe, lokalizacje Gnome / KDE i zlokalizowane strony podręcznika man. W zależności od instalacji można zaoszczędzić około 200, 300 lub nawet więcej megabajtów miejsca na dysku przeznaczonego na lokalizację, z której najprawdopodobniej nigdy nie będziesz korzystać. Uruchamia się automatycznie po zakończeniu wszelkich czynności związanych z instalacją.

Najważniejszy cytat:

Zdecydowanie powstrzymaj się od zgłaszania takich błędów obwiniających localepurge, jeśli zepsujesz system, używając go. Jeśli nie wiesz, co robisz i nie jesteś w stanie samodzielnie poradzić sobie z wynikającym z tego awarią, po prostu nie używaj tego pakietu.

;-RE

Więc po prostu wykonaj pełną kopię zapasową i spróbuj napisać manpagekiller...


źródło
1
To jest również rozwiązanie, o którym myślałem (to plus nie instaluj man-db). Dodałbym hak po wywołaniu za pośrednictwem /etc/dpkg.cfg.dzamiast APT, aby obsłużyć bezpośrednie wywołania dpkg.
Gilles „SO- przestań być zły”
W porządku! Jako działanie na pakiet (na .deb) dpkgbędzie nawet łatwiejsze niż działanie po instalacji, aptponieważ będziesz miał nazwę pakietu i nie będziesz musiał skanować wszystkich *.listplików w poszukiwaniu stron podręcznika. Właśnie zapomniałem, że dpkgma też hak ...
Hmmm ... ale obsługa pakietów instalowanych wcześniej niż ten moduł obsługi nadal będzie wymagać skanowania *.listplików. Niemniej jednak dpkghak po wywołaniu jest lepszym miejscem do uruchomienia tej akcji.