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.