모든 매뉴얼 페이지를 비활성화 할 수 있습니까?


14

특히 라즈베리 파이 (Raspbian Wheezy 실행)에서 일반적으로 모든 맨 페이지를 비활성화 할 수 있습니까?

이는 저장된 매뉴얼 페이지, "man-db에 대한 처리 트리거"등이 없음을 의미합니다. 인터넷에서 항상 사용할 수있는 매뉴얼 페이지를 사용하면 실제로 설치할 필요가 없으며, 생성 및 저장이 불필요 해 보입니다.


맨 페이지 자체가 진행되는 한 계속 멈출 까봐 두렵습니다. 이들은 함께 제공되는 소프트웨어의 일부에 속합니다.
Shadur

6
맨 페이지보다 공간 절약에 더 적합한 후보가 있습니까?
jasonwryan

문서로 표시된 모든 파일 및 / 또는 정규식과 일치하는 파일을 삭제하는 패키징 도구 구성을 상상할 수 있습니다. 그래도 나는이 개념의 구현을 알지 못한다.
Pavel Šimerda

공간의 1 % 만 절약 할 수 있습니까? 당신도 억제한다면 아마 조금 더 /usr/share/doc.
Gilles 'SO- 악의를 그만두십시오'

답변:


16

누군가 Wandboard를 위해 만든 데비안 8 이미지에서 반대의 문제가 발생했습니다. 이미 설치되어있는 일부 패키지에 대한 매뉴얼 페이지를 찾으려고했는데 새 패키지를 설치 한 후 매뉴얼 페이지가 deb 파일에 있었지만 누락되었습니다.

그런 다음 /etc/dpkg/dpkg.conf.d에서이 파일 01_nodoc을 찾았습니다.이 방법은 수동 페이지와 로케일 및 공간이 부족한 저작권 파일 (예 : 포함)을 삭제하여 공간을 절약하는 방법에 대한 원래의 질문에 대한 간단한 해결책입니다. 시스템).

# /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

또 다른 유용한 답변은 askubuntu.com/a/401144/162384입니다 .이 예제는 훌륭한 예제 외에도 다음 문서를 가리 킵니다. wiki.ubuntu.com/ReducingDiskFootprint#Documentation
berto

6

문제는 패키지 관리 시스템이 설치 한 파일 (Man 페이지 포함)이 그대로 유지되기 때문에 파일을 제거하는 데 사용하는 모든 메커니즘 (HalosGhost가 제안한 모든 패키지 재 구축 제외)은 혼동을 일으킨다는 것입니다.

단일 목적 어플라이언스를 생성하는 것이 수행하는 경우 어플라이언스에 대해 별도의 빌드 및 배치 단계를 수행하는 것이 한 가지 방법입니다. 즉, 원하는 모든 패키지를 별도의 빌드 환경 (다른 SD 카드 또는 에뮬레이트 된 RPi)에 설치 한 다음 프로덕션 환경에서 프로덕션 환경에 원하는 항목 만 프로덕션 환경으로 복사합니다. 이 단계에서 매뉴얼 페이지와 프로덕션에 필요하지 않은 모든 것을 남겨 둘 수 있습니다.

업그레이드 된 OS 또는 보안 수정 사항을 선택하려면 빌드 환경을 업그레이드 또는 재 빌드하고 프로덕션으로 다시 복사 (또는 rsync)하십시오.

그것은 조금 더 많은 작업이지만 로그온하고 직접 업그레이드를 실행하는 것과 비교할 때 매우 제어 된 프로덕션 장치를 제공합니다.


5

글쎄, 당신의 RPi가 어떤 배포판을 실행하는지 알지 못한다면 정확한 명령으로 도울 수는 없지만 유틸리티와 다양한 매뉴얼 페이지를 man-db모두 제공 하는 패키지를 제거 할 수 있습니다 man. 그러나 모든 매뉴얼 페이지를 제거하려면 각 패키지에서 각 매뉴얼 페이지를 제거해야합니다. KiB의 공간을 절약하는 데 시간이 걸리지 않을 것입니다.

정말로 원한다면 각 패키지를 다시 빌드해야합니다. Archlinux 또는 Gentoo와 같은 배포판에서 이것은 반드시 불가능하지는 않지만 여전히 지루합니다. 다른 "실습"배포판에서는이 작업이 매우 어려울 수 있습니다.


2
apt-get remove --purge man-db제거 debhelper가 필요하지 않습니까?
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"; };

패키지는 debsums패키지가 이미 자신의 md5sums를 파일을하지 않고 설치 후 자동으로 패키지의 md5sum이 목록을 생성하는 작업을 설치합니다 ..

각 설치 작업 후 유사한 설치 후 작업을 검색하고 맨 페이지 (및 정보 문서)를 제거 할 수 있습니다.

맨 페이지 및 소유 패키지를 얻으려면 모든 /var/lib/dpkg/info/PACKAGENAME.list파일을 통해 스캔해야 합니다.

*.list제거 된 맨 페이지를 더 이상 언급하지 않도록 파일을 업데이트해야합니다 .

localepurge부분적으로도 마찬가지입니다. 인용 apt-cache show localepurge:

불필요한 로케일, Gnome / KDE 현지화 및 현지화 된 매뉴얼 페이지에 필요한 디스크 공간을 복구하는 스크립트입니다. 설치에 따라 거의 사용하지 않을 지역화 전용 약 200, 300 또는 더 많은 메가 바이트의 디스크 공간을 절약 할 수 있습니다. 적절한 설치 작업이 완료되면 자동으로 실행됩니다.

가장 중요한 인용문 :

localepurge를 비난하는 그러한 버그는 사용하지 마십시오. 당신이하고있는 일을 모르고 결과적으로 파손을 처리 할 수없는 경우이 패키지를 사용하지 마십시오.

;-디

그래서 전체 백업을 만들고 쓰기를 시도하십시오 manpagekiller...


1
이것은 내가 생각한 솔루션입니다 (플러스를 설치하지 마십시오 man-db). /etc/dpkg.cfg.d직접 호출을 처리하기 위해 APT 대신에 통해 호출 후 후크를 추가합니다 dpkg.
Gilles 'SO- 악마 그만해'

좋아! 패키지 별 ( .deb) 작업은 패키지 이름이 있고 맨 페이지의 모든 파일을 반복 해서 검색 할 필요가 없기 때문에 dpkg설치 후 작업보다 훨씬 쉽습니다 . 난 그냥 그 후크를 sich 잊어 버렸습니다 ...apt*.listdpkg

흠 ...하지만이 핸들러보다 이전에 설치되는 패키지를 처리하려면 여전히 *.list파일을 스캔해야 합니다. 그럼에도 불구하고 dpkg호출 후 후크는 해당 조치를 트리거하기에 더 좋은 위치입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.