25/07/2011 Linux

Depois do Instalar addon sem reiniciar, meu próximo artigo seria sobre remover addon sem reiniciar. Mas eis que me veio o fabiosammy e me mostrou a existência do comando execpak, que serve justamente para extrair e iniciar o addon sem reiniciar. E pensei: agora pronto! Meu artigo ficou inútil! Resolvi emendar o texto para incluir essa nova informação.

Nem ia testar, o execpak funciona e pronto. Mas... santo senso paranóico! O caso merece atenção, e resolvi até fazer um artigo extra só para expor isso. O procedimento foi realizado na versão 2.32.2.

Consultando o execpak pude perceber que um addon pode ter mais que um arquivo /etc/rc.d/pkgs/rc.* e esse arquivo nem precisa ter o mesmo nome do addon. Pude ver também, que alguns addons contém módulos do kernel que são iniciados chamando o /etc/rc.d/pkgs/mod.*, tarefa que durante a inicialização fica a cargo do /etc/rc.d/rc.modules que é um dos primeiros comandos executados pelo /etc/rc.d/rc.S.

Para não confundir o que inicia o que, vamos revisar o que vimos antes. O computador liga e encontra o syslinux que passa o controle ao kernel e por sua vez monta o root.tgz e executa o init. O init consulta o /etc/inittab e vê que precisa chamar o /etc/rc.d/rc.sysinit que extrai os seus addons e chama o /etc/rc.d/rc.S. Primeiro o /etc/rc.d/rc.S chama o /etc/rc.d/rc.modules que executa todos os /etc/rc.d/pkgs/mod.*, e depois (voltando ao rc.S) ele chama o /etc/rc.d/rc.M que executa todos os /etc/rc.d/pkgs/rc.* e termina a história chamando o /etc/rc.d/rc.local. Entendido, ou confundiu mais? De qualquer jeito, deixa de lado essa história e passemos adiante.

O caso é que o execpak extrai e inicia seu addon, mas não o coloca na lista /var/lib/lrpkg/packages. Essa lista é usada pelo backup para saber o que deve permanecer e o que deve ser descartado. Sem o seu pacote nessa lista, ao fazer backup seu addon vai para o espaço. Então, um método alternativo para instalar addon sem reiniciar é o seguinte:

mt
wget -P /mnt http://www.brazilfw.com.br/users/juanillo/bmt/bmt.tgz
umt
execpak bmt
echo bmt >> /var/lib/lrpkg/packages

Na verdade, não alternativo mas até preferível, por levar em consideração as questões dos addons que possam ter mais de um rc.* e/ou mod.*. Só me resta a dúvida de porque esse execpak está ai escondido no BrazilFW feito fantasma.


O fabiosammy é um dos desenvolvedores do SmartRouter PROJECT, um fork do BrazilFW. O projeto é interessante. Eu não gostei da versão 3.x do BrazlFW que tem sido o centro das atenções, e o SmartRouter PROJECT traz atualizações e melhorias seguindo a partir da versão 2.32.2 do BrazilFW. Mas infelizmente o projeto carece de usuários.

br_lemes, o Fantasma insano (Homicida)