Como remover um sistema Linux?

24

Estou construindo uma distribuição Linux, removi os binários etc. O sistema não usará o GCC ou as ferramentas de desenvolvimento, pois será um quiosque do Chrome, portanto seria de grande ajuda se eu pudesse retirar o sistema. ...

Eu queria saber, existe uma maneira de excluir todos os arquivos de sistema não utilizados (como binários etc.), observando quais arquivos / bibliotecas são usados ​​durante o tempo de execução? Talvez outro método seja o preferido, mas existe uma maneira de realizar algo assim?

Liquidificador
fonte
3
Na verdade você está no lugar correto desta vez :)
phunehehe
2
Agora, devo perguntar, por que existe um site Stack Exchange separado baseado no Ubuntu? Eu acho que eles deveriam se fundir com este site, porque o AFAICT, Ubuntu deve ser considerado Linux / Unix, mas não tenho muita certeza;) Caso contrário, prepare-se para o GentooOverflow e o FedoraOverflow!
Blender
3
@ Blender: Essa mesclagem foi considerada e rejeitada. Procure no Meta dos dois sites a história.
Gilles 'SO- stop be evil'
3
Eu descobri que o site ubuntu é muito mais sobre programas gnome e coisas da interface do usuário. Aqui sua resposta quase certamente será um comando de terminal.
Falmarri
2
Meu entendimento é que o AskUbuntu é para Unix e Linux, assim como Unix e Linux para SuperUser: se é uma pergunta específica ao ubuntu, ela é direcionada à AU; se for de outra forma n x-ish, vai aqui; caso contrário, vai para SU ou para ServerFault.
intuited

Respostas:

11

Existem programas como o Bootchart que podem ser usados ​​para mostrar quais programas você executou durante a inicialização - você provavelmente pode continuar após a inicialização para ver o que foi chamado durante uma sessão.

Uma solução melhor pode ser usar ferramentas de remasterização.

Existem ferramentas de remasterização para o Fedora , Ubuntu e outros; você pode usá-los para personalizar uma distribuição.

Você pode querer olhar para o Tiny Core Linux . Há um cara trabalhando em um script de remasterização para isso também.

Shawn J. Goff
fonte
Quando chegar em casa, definitivamente tentarei o Bootchart. Eu menti, embora, como o sistema acabado de compilar noite passada, então eu vou ter que realmente fazê-lo funcionar nos próximos dias. Encontrei o TinyX (que é o que eu estava procurando, pois não consigo descobrir quais módulos do XOrg realmente preciso), mas o site estava fora do ar ... Oh bem, mas muito obrigado!
Blender
Bootchart é isso! Compilei, executei e me deu resultados extremamente detalhados e úteis. Eu não estou indo para tirar o sistema apenas ainda, como eu estou indo para implementar um gerenciador de pacotes baseada na fonte (Gentoo?), Mas com certeza vou usar isso. Obrigado!
Blender
6

Entre outras coisas, você deseja remover tudo o que não precisa. Verifique se o sistema de arquivos está atimetotalmente ativado; você pode definir isso /etc/fstab. O padrão atual é relatimemas você deseja usar apenas atime. Sempre que um arquivo é acessado, o registro de data e hora é atualizado. Em seguida, faça algum uso por alguns dias para ver quais arquivos nunca tiveram seu atime atualizado. Eu faria tudo isso em uma VM e com muito cuidado, porque imagino que existem alguns arquivos que são lidos quando o sistema está no modo somente leitura. Nota: defina-o noatimeassim que estiver pronto para a produção, caso contrário, você fará uma gravação sempre que ler; isso é ineficiente.

Embora, para ser sincero, eu veja o Damn Small Linux ; você realmente precisa ser menor que isso? Crie o seu com base na distribuição deles e simplesmente remova o gerenciador de janelas e alguns programas extras. Deixe todas as ferramentas de linha de comando, assim, se precisar reparar ou recarregar, você possui o shell.

xenoterracida
fonte
Obrigado! Estou tentando fazer isso sozinho, pois nunca consegui um sistema LFS totalmente utilizável em execução, mas já joguei com o DLS antes. Na verdade, estou tentando criar um clone do ChromeOS que não seja feito com SuSEStudio (o chromium.org é) e é um pouco menor que 600 MB;) Meu objetivo é> 50 MB, pois o DSL inclui vários outros softwares, mas estou instalando apenas o OpenBox, o Chrome e um Thunar personalizado (e alguns outros brindes, é claro). Obrigado!
Blender
5

assumindo que você esteja usando o Debian ou seus derivados

Após alguns dias de uso (pesado), execute popularity-contest. Ele exibirá os pacotes não utilizados mais antigos na parte inferior. Desinstale-os, mas com um olhar atento para saber se existem ou não coisas, dependendo delas instaladas.

Aqui está um trecho da saída:

1294222606 1292570417 vlc /usr/lib/vlc/plugins/gui/libqt4_plugin.so
1294222606 1292570109 xulrunner-1.9.2 /usr/share/xulrunner-1.9.2/chrome/classic.jar
1294222606 1292507839 ttf-dejavu-extra /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
1294222606 1292507459 x11-utils /usr/bin/xprop

As colunas significam atime , ctime , nome do pacote e arquivo acessado .

tshepang
fonte
1

Use ativamente seu sistema por um tempo com os tempos de acesso a arquivos ativados. Veja quais arquivos nunca têm seu tempo de acesso modificado. Estes são candidatos à exclusão (mas verifique se não há um motivo para mantê-los, por exemplo, porque eles são drivers de hardware para o hardware que você não possui ou são necessários no início do processo de inicialização quando a partição raiz ainda está somente leitura).

Como você terá poucos aplicativos grandes, verifique quais bibliotecas são usadas por um único executável. Considere vinculá-los estaticamente.

ldd /bin/* /usr/bin/* |sed -n 's/^.* => \(.*\) (.*)$/\1/p' |sort |uniq -c
Gilles 'SO- parar de ser mau'
fonte
0

De onde exatamente você está começando? Você está retirando uma distribuição existente? Existe uma razão para você começar com alguma distro?

Você pode considerar construir um sistema incorporado a partir do zero e carregar apenas o que você sabe que precisa.

Falmarri
fonte
Estou desenvolvendo uma instalação do LFS + Xorg, Python e Google Chrome. Nada chique.
Blender
Ele usou o GCC, Python etc. para criar, mas agora estão obsoletos para meus propósitos.
Blender