Criando um pacote com o kernel compilado para o Slackware

Publicado por Leandro Santiago em 15/09/2006

[ Hits: 7.041 ]

Blog: http://leandrosan.wordpress.com

 


Criando um pacote com o kernel compilado para o Slackware



Bem, eu estava aqui compilando um 'kernelzinho' como sempre e esbarrei na seguinte questão:

Compilamos um kernel (2.6) normalmente com os conhecidos comandos:

# make bzImage && make modules

Se queremos criar um binário do kernel para instalarmos em várias máquinas ou guardarmos para instalações posteriores, fazemos o seguinte:

Para os "Red Hat da vida", damos o comando:

# make rpm
ou
# make rpm-pkg

Se usamos um Debian, damos o comando:

# make deb-pkg

E pronto! Pacote criado, bastando somente instalar com os comandos específicos de cada sistema.

Mas e o que acontece com os usuários do Slackware e derivados?

Você poderia pensar em criar um rpm e depois converter para tgz, mas uma conversão nunca ocorre de forma totalmente perfeita (pelo menos não comigo). Acontece que nos kernels mais novos - testei no 2.6.14 - é possível fazermos uma "gambiarra" para resolver isso.

Ao contrário dos outros sistemas, no Slack tudo ocorre de forma muito simples - KISS ("Keep it Simple, Stupid") -, e isso também ocorre no sistema de pacotes, que é somente um arquivo .tar.gz.

Então vamos colocar a mão na massa.

Há uma opção na compilação chamada:

# make targz-pkg

que cria um arquivo tar.gz no diretório raiz do kernel source.

Se você tentar instalar o pacote criado, você receberá uma mensagem de erro:

Cannot install linux-2.6.14.tar.gz: package does not end in .tgz

Pois embora .tgz e .tar.gz sejam as mesmas coisas, no Slackware é diferente (confuso...).

Então para resolver o 'problema', simplesmente renomeamos o arquivo nos moldes dos pacotes do Slack, que é o seguinte:

nomedopacote-versão-arquitetura-release.tgz

Renomeando:

# mv linux-2.6.14.tar.gz linux-2.6.14-i386-1.tgz

(kernel compilado para 386)

Bastando somente instalar o pacote com o installpkg ou instalar em quantas máquinas quiser, sem ter que ficar compilando em uma por uma.

A única desvantagem é não haver um jeito automático de criar os arquivos de descrição e dependências dos pacotes (a menos que você modifique uns scripts), mas isso não não é necessariamente um problema.

Espero que essa dica possa ajudar aos que tiverem o mesmo problema, e até a próxima.

Outras dicas deste autor

Concatene com o Bash e fique contente!

Criando e utilizando uma "biblioteca de funções"

Instalando programas no Linux sem ter poderes de root

Criando programas com opções

Controlando o amarok pela linha-de-comando

Leitura recomendada

Acelerando o reboot em sistemas Debian-like

Kernel vanilla-sources no Funtoo usando a configuração do kernel 3.15.5 do Slackware

Dica para melhorar a performance (aprovado por Linus Torvalds)

Problemas em diretório com milhares de arquivos [Resolvido]

Módulo do kernel NVIDIA em paravirtualização XEN

  

Comentários
[1] Comentário enviado por delmarcs em 22/09/2006 - 19:33h

É uma solução emergencial interessante.
Ajudou!

[2] Comentário enviado por GilsonDeElt em 11/03/2007 - 21:35h

Legal.
Talvez eu faça isso quando compilar o 2.6.17.13.
Valeu!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts