Que mal haveria em executar strip em todos os arquivos?

6

Estou tentando diminuir uma imagem do Linux executando o SuSE e pensei em executar strip em todos os executáveis do sistema. Mesmo que eu possa não recuperar muito espaço em disco dessa maneira, haveria algum mal em fazê-lo?

    
por Délisson Junio 01.08.2016 / 22:28

3 respostas

8

Não é o caso do Linux (apenas marcado ...), mas em outros sistemas (como BSDs, por exemplo, OSX), isso removerá quaisquer permissões setuid / setgid como efeito colateral. Além disso (ainda olhando para o OSX), a propriedade do arquivo pode mudar (para o usuário que está escrevendo).

Para o Linux, lembro que, no início, a remoção de uma biblioteca compartilhada impediria a vinculação a ela. Isso não é um problema agora, embora, como o HOWTO da Biblioteca de Programas , ele faça Depuradores não são úteis. Isso impede a vinculação a bibliotecas estáticas.

Leitura adicional:

por 01.08.2016 / 23:35
5

A maioria das distribuições, incluindo o OpenSUSE , tira os executáveis como parte de seus scripts de compilação. Você não precisa despir os arquivos executáveis do sistema porque isso já foi feito.

Existem binários que não devem ser removidos. Os mantenedores de pacotes se preocupam em usar as opções corretas de construção para evitar removê-los. Isso inclui binários que carregam bibliotecas dinamicamente de maneiras incomuns, fazendo uma auto-introspecção em vez de um carregamento de tempo de inicialização normal ou um dlopen simples. Isso também inclui muitos executáveis que consistem em bytecode mais um interpretador de bytecode para o qual strip confunde o bytecode para depurar dados.

Uma nota lateral: se você quiser economizar espaço, o OpenSUSE não é a distribuição certa para você. O OpenSUSE tem granularidade de pacote muito grossa. Para um sistema menor, use uma distribuição com granularidade de pacote mais fina para que você possa instalar apenas as peças necessárias. Na área de trabalho / servidor, o Debian e o Arch são boas escolhas. Você também pode considerar distribuições que visem sistemas incorporados, como o WRT.

    
por 02.08.2016 / 02:17
1

Se você estiver executando uma distribuição que instala pacotes binários de repositórios (a maioria das distribuições, incluindo o SUSE, faça isso), as alterações feitas nos executáveis serão sobrescritas na próxima vez que você atualizar (ou reinstalar) o pacote que contém eles.

Além disso, eles serão relatados como tendo a soma de verificação e o tamanho incorretos (e a data, se você não executou strip com a opção --preserve-dates ) sempre que você verifique os pacotes instalados . Você poderia fazer com que o rpm correspondesse às suas alterações reconstruindo o pacote a partir dos arquivos instalados .

Se você deseja strip binários para instalação, talvez seja melhor criar esses pacotes a partir da fonte e ajustar o compilador / sinalizador de linker . O pacote deve ser construído usando as próprias ferramentas da distribuição para essa tarefa (como rpmbuild , dpkg-buildpackage ou makepkg ). Para pessoas que precisam fazer esse tipo de personalização extensivamente, existem distribuições baseadas em fontes e até mesmo Linux From Scratch . No entanto, a criação a partir do código-fonte demora muito mais tempo, além de usar mais espaço em disco do que você economiza com os binários menores.

    
por 02.08.2016 / 09:01