Uma revisão sobre gerenciamento de pacotes e serviços

Por:
Uma revisão sobre gerenciamento de pacotes e serviços

Graças aos sistemas de gerenciamento de pacotes usados nas distribuições, instalar e remover cada programa ou servidor, assim como inicializar e reinicializar cada um, ativando mudanças na configuração, tornou-se uma tarefa bastante simples. Isso permite que você se concentre na configuração propriamente dita, deixando as tarefas mecânicas a cargo dos mantenedores.

As distribuições derivadas do Debian, incluindo o Ubuntu, Kurumin, Knoppix e muitos outros, utilizam o apt-get como gerenciador de pacotes.

O uso do apt-get é bastante simples. Ele trabalha baixando pacotes a partir dos repositórios oficiais do Debian, de forma que você obtém sempre a versão mais atualizada. Para que o sistema funcione, é preciso baixar periodicamente uma lista com os pacotes disponíveis em cada servidor, permitindo que o apt-get mantenha seu banco de dados local. Isto é feito usando o comando:

# apt-get update

Ele deve ser executado regularmente, de preferência antes de fazer cada instalação, já que num servidor, por exemplo, é crítico trabalhar com as versões mais atuais dos pacotes, devido à questão das atualizações de segurança.

Para instalar qualquer pacote pelo apt-get, use o comando “apt-get install”, como em:

# apt-get install apache2

O apt-get instala automaticamente todas dependências do pacote, pedindo sua confirmação. Leia tudo antes de confirmar, pois em alguns casos raros o apt-get pode propor soluções um tanto quanto desastrosas para conflitos de pacotes. Pode acontecer dele propor remover todo o KDE para instalar uma biblioteca antiga, que conflite ou substitua algum dos pacotes base, por exemplo. Mesmo em casos extremos como este, você sempre tem a chance de abortar a instalação, basta ficar atento às mensagens ;).

Para remover um pacote, use o comando “apt-get remove”, como em:

# apt-get remove apache2

Para atualizar um pacote, rode o comando “apt-get update” e em seguida use o “apt-get install”, como se estivesse instalando-o novamente. O apt-get sabe que o pacote já está instalado, por isso se limita a atualizá-lo, mantendo as configurações. É importante atualizar periodicamente os pacotes relacionados a servidores, por causa das atualizações de segurança.

É possível também atualizar de uma vez todos os pacotes do sistema. Isso só é recomendável se você está utilizando uma distribuição baseada numa versão estável do Debian. Por exemplo, o Kurumin 5.0 é baseado no Sarge, que foi finalizado em 2003, enquanto o Kurumin 6.2 será baseado no Etch, cujo lançamento está planejado para o final de 2006.

Para isso, use o comando:

# apt-get upgrade

Muitas distribuições (como o Kanotix e o Knoppix) são baseados no Debian Sid (a versão instável) e a maioria das versões do Kurumin são baseadas no Debian Testing. Nestes casos, você precisa tomar bastante cuidado ao rodar o “apt-get upgrade”, pois as atualizações viram um alvo em movimento.

Para instalar um pacote .deb que você baixou manualmente, use o comando “dpkg -i”, como em:

# dpkg -i sarg_2.0.5.dfsg-1_i386.deb

Os pacotes instalados manualmente através do dpkg não passam pela verificação de dependências do apt-get, abrindo margem para problemas diversos. Para que o apt-get verifique a instalação e coloque ordem na casa, é recomendável rodar logo em seguida o comando:

# apt-get -f install

O apt-get trabalha com dois arquivos de configuração. O principal é o arquivo “/etc/apt/sources.list“, onde vai a lista dos servidores utilizados. Imagine que na sua máquina o arquivo contém a linha:

deb http://ftp.br.debian.org/debian etch main contrib non-free

Por algum motivo, o servidor está inacessível no momento, o que faz com que você receba mensagens de erro ao rodar o “apt-get update” ou ao instalar pacotes. Para resolver o problema, você precisaria apenas alterar o arquivo, especificando outro servidor, como em:

deb http://ftp.us.debian.org/debian etch main contrib non-free

Aqui substituímos o “br” por “us“, fazendo com que passe a ser utilizado o mirror dos EUA. Os servidores disponíveis são identificados pelos códigos de país, como “de”, “uk”, “es”, “it”, etc.

No caso do Ubuntu, existe uma pegadinha. A maioria dos pacotes, incluindo quase todos os pacotes para servidores estão concentrados no “Universe“, um repositório extra que vem desabilitado por padrão. Antes de mais nada, você precisa editar o arquivo “/etc/apt/sources.list”, descomentando a linha referente ao Universe e rodar o “apt-get update”.

No Fedora é usado por padrão o “yum“, que funciona de forma bem similar ao apt-get, baixando os pacotes da Internet, junto com as dependências. Existem muitas diferenças entre o Fedora e o Debian, uma delas é o formato dos pacotes utilizados: o Fedora utiliza pacotes .rpm, enquanto o Debian utiliza pacotes .deb.

Ambos também utilizam repositórios separados, com pacotes construídos especificamente para cada uma das duas distribuições, de forma que existem algumas diferenças nos nomes dos pacotes e arquivos de configuração usados.

Voltando ao uso do yum, comece baixando as listas dos pacotes disponíveis, usando o comando:

# yum check-update

Ele funciona de forma análoga ao “apt-get update”, com a diferença que de a lista dos servidores usados não vai no arquivo sources.list, mas é dividida em diversos arquivos (um para cada servidor usado), organizados na pasta “/etc/yum.repos.d/“.

Para instalar um pacote, use o comando “yum install”, como em:

# yum install wpa_supplicant

Para removê-lo posteriormente, use:

# yum remove wpa_supplicant

O yum possui também um recurso de busca, que é bastante útil quando você está procurando por um pacote, mas não sabe o nome exato, ou em casos de pacotes que possuem nomes diferentes em relação a outras distribuições. Use o comando “yum search”, seguido por alguma palavra ou expressão, que faça parte do nome do pacote ou descrição, como em:

# yum search apache

Ele retorna um relatório contendo todos os pacotes relacionados, incluindo o texto de descrição de cada um.

Para atualizar um pacote, use o comando “yum update”, como em:

# yum update wpa_supplicant

Se usado sem especificar um pacote, o “update” vai atualizar de uma vez só todos os pacotes do sistema, de forma similar ao “apt-get upgrade” do Debian:

# yum update

Existe ainda o comando “yum upgrade”, que é um pouco mais incisivo, incluindo também pacotes marcados como obsoletos (que não existem mais na versão atual). Ele é útil em casos onde é necessário atualizar uma versão antiga do Fedora:

# yum upgrade

O yum é utilizado também em distribuições derivadas do Fedora, ou do Red Hat Enterprise, como o CentOS.

Embora também seja derivado do Red Hat, o Mandriva utiliza um gerenciador próprio, o “urpmi“, que é também bastante simples de usar. Para instalar um pacote, você usa o comando “urpmi pacote”, como em:

# urpmi samba

Para removê-lo, use o comando “urpme”, como em:

# urpme samba

Um dos pontos fortes do Mandriva é que todo o gerenciamento de pacotes pode ser feito usando as opções dentro do Mandriva Control Center, o que permite dispensar a linha de comando para a maioria das operações.

Nas distribuições derivadas do Debian, você tem algo similar usando o Synaptic, que (quando não vem instalado por padrão), pode ser instalado via apt-get:

index_html_m4985cbf
Temos em seguida a questão dos serviços:

Servidores como o Apache são também chamados de “daemons” ou “serviços de sistema”, abreviação do termo “system services”. Ambos os termos indicam um programa que fica residente, respondendo a requisições de outros micros ou executando tarefas de forma automatizada. É o caso não apenas de servidores como o Squid, Samba, Postfix e tantos outros, mas também de programas como o Cron e de ferramentas de detecção de hardware, como o Udev e o Hotplug.

A tarefa de iniciar, parar e reiniciar estes serviços é automatizada por um conjunto de scripts localizados na pasta “/etc/init.d” (ou “/etc/rc.d/init.d”, dependendo da distribuição usada).

Nas distribuições derivadas do Debian, você inicia um serviço usando o comando “/etc/init.d/nome start”, como em:

# /etc/init.d/apache2 start

Para parar, é usado o mesmo comando, com o parâmetro “stop”:

# /etc/init.d/apache2 stop

Muitos serviços suportam também os parâmetros “restart” e “reload” (ou “force-reload“), usados para ativar mudanças na configuração. A diferença entre os três é que o “restart” é simplesmente uma combinação do “stop” e “start”, enquanto o “”reload ou “force-reload” (quando disponíveis) fazem com que o serviço releia o arquivo de configuração, porém sem interromper sua atividade. Isso é importante no caso de um servidor web com muitos acessos, por exemplo.

Temos ainda o comando “update-rc.d“, que permite definir se um serviço vai ser ativado ou não durante o boot.

Imagine o caso de um servidor onde você utiliza um servidor FTP para disponibilizar arquivos esporadicamente, ativando-o e desativando-o manualmente. Ao instalar o Proftpd, ele fica configurado para inicializar automaticamente durante o boot. Para desativar a inicialização automática, você usaria o comando:

# update-rc.d -f proftpd remove

Se mudar de idéia e quiser que ele volte a ser inicializado durante o boot, use:

# update rc.d -f proftpd defaults

No caso das distribuições derivadas do Fedora (e também no Mandriva), usamos os comandos “service” e “chkconfig“.

O primeiro permite ativar, desativar e reiniciar um serviço, como em:

# service sshd start
# service ssh stop
# service ssh restart

… enquanto o segundo permite definir se ele vai ser inicializado ou não durante o boot, de forma análoga ao “update-rc.d” do Debian. Para fazer com que o SSH seja ativado durante o boot, você usaria:

# chkconfig sshd on

E para desativar, usaria:

# chkconfig sshd off

A maioria das distribuições se enquadra num destes dois sistemas. A principal exceção é o Slackware. Ele usa uma estrutura simplificada, onde para ativar ou desativar a inicialização de um serviço, você simplesmente adiciona ou retira a permissão de execução do script correspondente, dentro da pasta “/etc/rc.d“.

Para ativar o SSH você usaria:

# chmod +x /etc/rc.d/rc.ssh

E para desativá-lo, usaria:

# chmod -x /etc/rc.d/rc.ssh

Para iniciar ou parar o serviço, você executa o mesmo script, usando os parâmetros “start” ou “stop”, como em:

# /etc/rc.d/rc.ssh start
# /etc/rc.d/rc.ssh stop

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X