Posso desativar todas as páginas de manual?


13

Especificamente em um raspberry pi (executando o Raspbian Wheezy), mas também em geral, posso desativar todas as páginas de manual?

Isso significaria nenhuma página de manual armazenada, nenhum "acionador de processamento para o man-db" e assim por diante. Com as páginas de manual sempre disponíveis na Internet, eu realmente não preciso delas instaladas, e gerar e armazená-las parece desnecessário.


Receio que você provavelmente esteja preso no que diz respeito às próprias páginas de manual - elas fazem parte das debs do software que acompanham.
— Shadur

6
Certamente existem melhores candidatos para economizar espaço do que as páginas de manual?
— Jasonwryan

Eu poderia imaginar uma configuração de uma ferramenta de empacotamento para eliminar todos os arquivos marcados como documentos e / ou arquivos correspondentes a um regex. Eu não estou ciente das implementações desse conceito, no entanto.
— Pavel Šimerda

Você economizaria apenas 1% do espaço (provavelmente menos na verdade)? Provavelmente um pouco mais se você também suprimir /usr/share/doc.
— Gilles 'SO- stop be evil'

Respostas:


15

Eu estava tendo o problema oposto em uma imagem do Debian 8 que alguém havia reunido para um Wandboard. Eu estava tentando encontrar a página de manual de alguns pacotes que já estavam instalados e notei que, após a instalação de alguns novos, as páginas de manual estavam ausentes, mesmo estando presentes no arquivo deb.

Encontrei esse arquivo 01_nodoc em /etc/dpkg/dpkg.conf.d, que é uma solução simples para a pergunta original sobre como economizar espaço, excluindo páginas de manual e localidades e arquivos de direitos autorais onde o espaço é escasso (por exemplo, incorporado sistemas).

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

Outra resposta útil é em askubuntu.com/a/401144/162384 , que - além de um ótimo exemplo - aponta para os documentos: wiki.ubuntu.com/ReducingDiskFootprint#Documentation
— berto

6

A questão é que o sistema de gerenciamento de pacotes espera que os arquivos que ele instala (incluindo as páginas de manual) permaneçam lá, portanto, qualquer mecanismo que você use para removê-los (exceto a reconstrução de todos os pacotes, como sugere o HalosGhost) os confundirá.

Se o que você está fazendo é produzir um dispositivo de uso único, uma abordagem a ser adotada é ter etapas de criação e implantação separadas para o dispositivo. Ou seja, você instala todos os pacotes desejados em um ambiente de construção separado (um cartão SD diferente ou um RPi emulado) e copia apenas o que deseja ter em produção do ambiente de construção para o ambiente de produção. Nesse estágio, você pode deixar de fora as páginas de manual e qualquer outra coisa que não seja necessária na produção.

Para escolher o SO ou as correções de segurança atualizadas, atualize ou reconstrua o ambiente de construção e copie (ou rsync) para produção novamente.

Isso é um pouco mais trabalhoso, mas oferece um dispositivo de produção muito controlado, comparado com o logon e a execução de atualizações diretamente nele.


5

Bem, sem saber qual distro seu RPi está executando, não posso ajudá-lo com os comandos exatos, mas você provavelmente pode remover o man-dbpacote que fornece o manutilitário e uma variedade de páginas de manual. No entanto, remover todas as páginas de manual exigiria remover cada página de manual de cada pacote - não consigo imaginar que isso valha a pena, apenas para economizar KiBs de espaço.

Se você realmente quisesse, seria necessário reconstruir cada pacote; em uma distro como Archlinux ou Gentoo, isso não é necessariamente impossível, mas ainda é bastante tedioso. Em outras distros menos "práticas", você pode achar essa tarefa incrivelmente difícil.


2
apt-get remove --purge man-dbTambém desinstalará debhelperisso não é necessário?
— 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"; };

O Pacote debsumsinstala uma ação para gerar listas md5sum para pacotes automaticamente após a instalação de um pacote sem já ter um arquivo md5sums.

Você pode adicionar uma ação de pós-instalação semelhante, verificando e removendo as páginas de manual (e os documentos informativos) após cada ação de instalação.

Para obter as páginas de manual e os pacotes proprietários, você precisa verificar todos os /var/lib/dpkg/info/PACKAGENAME.listarquivos.

Você deve atualizar os *.listarquivos para não mencionar mais as páginas de manual removidas.

localepurgeparcialmente faz isso também. Citado em apt-cache show localepurge:

Este é um script para recuperar o espaço em disco desperdiçado em locais desnecessários, localizações do Gnome / KDE e páginas de manual localizadas. Dependendo da instalação, é possível economizar cerca de 200, 300 ou mais mega bytes de espaço em disco dedicado à localização para a qual você provavelmente nunca terá utilidade. É executado automaticamente quando a ação de instalação do apt é concluída.

A citação mais importante:

Definitivamente, abstenha-se de relatar esses bugs que culparam o localepurge se você interromper o sistema usando-o. Se você não sabe o que está fazendo e não pode lidar com nenhuma quebra resultante sozinho, simplesmente não use este pacote.

;-D

Então, faça um backup completo e tente escrever o seu manpagekiller...


1
Esta é a solução que eu tinha em mente também (que, além de não instalar man-db). Eu adicionaria o gancho pós- /etc/dpkg.cfg.dchamada via e não via APT, para lidar com invocações diretas de dpkg.
— Gilles 'SO- stop be evil'

Bem! A .debação por pacote (por ) dpkgainda será mais fácil do que a ação pós-instalação, aptporque você terá o nome do pacote e não precisará varrer todos os *.listarquivos em busca de páginas de manual repetidas vezes. Eu só esqueceu que dpkgtem sich um gancho também ...

Hmmm ... mas o manuseio de pacotes sendo instalados anteriormente a esse manipulador ainda exigirá a verificação dos *.listarquivos. No entanto, o dpkggancho pós-invocação é o melhor lugar para acionar essa ação.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.