Criando binário estático

13

Eu instalei um aplicativo [por exemplo, fdisk]. Mas isso exigia bibliotecas para execução. Eu estou procurando por utilitário / ferramenta que me ajudará a criar um binário estático a partir de binários instalados. Para que eu possa usá-lo em qualquer lugar.

As ferramentas só é confiável que eu encontrei é ErmineLighta partir de aqui , mas este é share-ware.

Existe algum software de código aberto disponível para o mesmo?

EDIT O fdisk é apenas um exemplo. Na maioria das vezes, trabalho no LFS. Portanto, se eu tiver que usar algum utilitário, preciso seguir as etapas como

  1. Faça o download da fonte
  2. configurar
  3. faço
  4. faça teste
  5. faça a instalação,

Então, para economizar tempo, estou procurando uma solução na qual farei um binário estático do debian ou do fedora ou de outra distribuição, experimente no LFS e, se funcionar bem ou conforme meus requisitos, irei vá com código-fonte para compilação.

SHW
fonte
1
é o objetivo apenas a facilidade de transferência (ou seja, colocá-lo em um usb, levar para qualquer lugar com esse arco do processador)?
Mike Pennington

Respostas:

15

Se o fdisk é apenas um exemplo e seu objetivo é realmente tornar executáveis ​​estáticos a partir de executáveis ​​dinâmicos, tente o elfador Elf . Existe até uma comparação com o Ermine (pelo fornecedor do Ermine, portanto, faça uma ressalva (não)) . Observe que

  • Se você tiver muitos executáveis, o tamanho combinado deles provavelmente será maior que o tamanho combinado dos executáveis ​​vinculados dinamicamente, além das bibliotecas dinâmicas necessárias.
  • Existem recursos do GNU libc que podem não funcionar em executáveis ​​vinculados estaticamente, como NSS (bancos de dados de nomes de usuário, nomes de host etc.) e recursos relacionados ao código do idioma.

Se seu objetivo é ter um conjunto pequeno e portátil de ferramentas de sistema, você está procurando o BusyBox , um conjunto de ferramentas principais destinadas a sistemas embarcados (inclusive fdisk). Você também pode estar interessado em uma biblioteca padrão menor que a Glibc, por exemplo dietlibc ou µClibc .

Gilles 'SO- parar de ser mau'
fonte
1
Eu tentei o statifier Elf, mas para minha surpresa. Não funcionou. Segfaults. Eu tentei muitas vezes com muitas distribuições com muitos utilitários.
SHW
1
Provavelmente segfaults para a randomização endereço: É explicado aqui: linux-magazine.com/Issues/2009/105/Ermine-vs.-Statifier
Rmano
0

Bem ... isso parece uma péssima idéia. Mas é possível.

Como o fdisk é de código aberto, basta pegar seu código e olhar para o Makefile. Você deve encontrar uma opção que passará "-static" para o gcc na compilação.

Eu não sou um guru de C / C ++, mas até onde eu sei, não é possível criar um binário vinculado estaticamente a partir de um binário vinculado dinamicamente existente.

Se você quiser usá-lo em qualquer lugar, recomendo usar uma pequena distribuição de manutenção que comece em segundos e permita que você modifique tudo.

Faz mais sentido para mim, porque você provavelmente desejará modificar o disco executando a instalação do Linux / UNIX.

tiktak
fonte
Sua resposta parece contraditória, você disse "... péssima idéia. Mas é possível" e, em seguida, também "... não é possível criar um binário vinculado estaticamente a partir de um binário vinculado dinamicamente existente". Por favor, esclareça sua resposta, seria muito útil.
JM Becker
@TechZilla: é possível criar um binário estático, mas não apenas por tiktak, criando um a partir de um binário existente vinculado dinamicamente . No entanto, veja a resposta aceita para algumas habilidades possíveis para fazer o último. [Nota: Comentário destina mais para futuros leitores do que para criticar qualquer coisa que está aqui.]
lindes
-3

você também pode usar o ELFex Linker , é um programa bem legal que acabei de descobrir, sua interface e pode criar executáveis ​​estáticos a partir do executável dinâmico.

Josh
fonte
o link não funciona.
Jakuje 27/08/2015
O link funciona para mim e parece responder diretamente à pergunta. Eu sugiro que não seja spam.
roaima
O link funciona para mim. A página possui o número de erros de digitação / gramaticais / editoriais que você pode esperar do trabalho de um programador profissional - mais do que você esperaria de um site profissional, menos do que você esperaria de um email de phishing. Sobre o mesmo que o post acima, pense nisso. Parece suspeito que esse novo usuário ingresse no Stack Exchange bem a tempo de postar um link para o que parece ser um novo site.
G-Man diz 'Restabelecer Monica