Renato Murilo Langona Quinta-feira, 29 de março de 2001

Mantendo seu Red Hat atualizado via autorpm

Manter seus aplicativos e sistema de sua distribuição up-to-date
com o vendor da mesma é uma excelente medida de segurança...

Para quem não encara CVS e quer uma maneira prática de manter sua distribuição atualizada "oficialmente", pode utilizar-se do aplicativo autorpm para tal.

O autorpm antes de fazer o download ou instalação de qualquer
arquivo compara o mesmo com o database rpm que você já possui, só baixando o mesmo caso seja mais novo que o já instalado, economizando assim sua bandwidth.

O sistema em questão é um Red Hat 6.1 e a configuração do autorpm é uma configuração BÁSICA para manter o mesmo atualizado com a ERRATA da Red Hat. Existem várias e mais complexas configuracões, para maiores informações, leia a documentação incluida no pacote :)

1) Download:

Baixe o RPM do autorpm:
ftp://ftp.kaybee.org/pub/redhat/RPMS/noarch/
autorpm-1.9.8.4-2.noarch.rpm

Baixe o RPM do Perl Libnet
(necessario para instalacao do autorpm):
ftp://ftp.kaybee.org/pub/redhat/RPMS/noarch/
perl-libnet-1.0605-2.noarch.rpm

2) Instalando:

2.1) Perl Libnet

# rpm -ivh perl-libnet-1.0605-2.noarch.rpm

2.2) Autorpm

# rpm -ivh autorpm-1.9.8.4-2.noarch.rpm

3) Configuracao:

"Zere" seu /etc/autorpm.d/autorpm.conf (em um passo a passo):

# :> /etc/autorpm.d/autorpm.conf

Edite seu /etc/autorpm.d/autorpm.conf (zerado):

# Os números entre parenteses a seguir serão usados para
futura explanação linha a linha e não
# devem ser adicionados a seu arquivo de configuração :

(1) Report_Queues_To ("root");
(2) FTP_Retries ("10");
(3) FTP_Retry_Delay("20,500");
(4) ftp ("metalab.unc.edu:/pub/Linux/distributions
/redhat/updates/6.1/i386") {
(5) Report_To ("root");
(6) Report_All (Yes);
(7) Regex_Ignore ("^kernel-");
(8) Regex_Ignore ("^XFree86-");
(9) Regex_Ignore ("^netscape-");
(10) action (updated) ;
(11) Install (Auto);
(12) Report (Yes);
(13) Store ("/Updates/"); }
(14) action (new) {
(15) Install (Auto);
(16) Report (yes);
(17) Store ("/Updates/"); } }
(18) ftp ("ftp.kaybee.org:/pub/redhat/RPMS/noarch") {
(19) Regex_Accept ("^autorpm");
(20) Report_To ("root");
(21) action (updated) {
(22) Install (Interactive);
(23) Report (Yes);} }

(1) - Indica o email para o qual o autorpm deve reportar RPMS que
estejam em "espera", ou seja, RPMS que não puderam ser instalados
automaticamente (nesse caso). Para interagir com os mesmos você devera usar:

# /usr/sbin/autorpm --apply

(2) - Indica o número de vezes que o autorpm deve tentar uma conexão com o servidor ftp para updates antes de desistir em caso de eventuais falhas no mesmo...

(3) - Os 2 números representam um intervalo do qual o RPM escolherá um número qualquer como tempo em segundos de espera para uma nova tentativa de conexão ao servidor FTP em caso de alguma falha (repetira essa acao o número de vezes definido em (2))...

(4) - Indica o servidor FTP a ser utilizado para download dos RPMS assim como o caminho completo do diretório onde se encontram esses RPM...

(5) - Email para o qual o autorpm irá enviar todos os relatórios gerados durante sua execução

(7,8,9) - Indica os arquivos que o autorpm deve ignorar, no caso acima ele irá ignorar todos os arquivos iniciados por kernel (7), XFree86 (8) e netscape (9), você poderá adicionar quantos achar necessário de acordo com o tipo de configuração de sua máquina...

(10) - Indica início de um bloco de ação...

(11) - Indica que os RPMS devem ser instalados automaticamente sem necessidade de intervenção (de forma não-interativa)...

(12) - As acões do bloco devem ser reportadas para o email
em Report_To...

(13) - Indica o diretório onde deveram ser baixados os arquivos RPM...

(14) - Início de um novo bloco...

(15) - idem (11)

(16) - idem (12)

(17) - idem (13)

(18) - Aqui indicaremos um novo ftp, para upgrade automático do próprio autorpm...

(19) - Indica que apenas arquivos iniciados por autorpm devam
ser baixados, ou seja, o próprio autorpm...

(20) - idem (1)

(21) - idem (10)

(22) - Indica que a instalação do autorpm não será automática, ou seja, necessitará da sua intervenção (/sbin/autorpm --apply)

(23) - idem (12)

4) Execução

O autorpm terá um script em /etc/cron.daily chamado autorpm.cron contendo como linha principal:

/usr/sbin/autorpm --delay=7200

O que indica que diariamente através do cron o script será rodado, tendo um delay de 7200 segundos (para não interferir em outras tarefas executadas diariamente)...

Abraço para todos.