Mostrar mensagens com a etiqueta pacotes. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta pacotes. Mostrar todas as mensagens

segunda-feira, 4 de janeiro de 2010

Gerenciador de Pacotes: yum

Para quem não conhece Linux, instalar e desinstalar programas pode parecer uma tarefa difícil. Mas na realidade, sabendo utilizar as ferramentas certas, estas tarefas se tornam muito mais fáceis que qualquer outro sistema. Os gerenciadores de pacotes fazem isso muito bem e o yum é um deles!

O yum (Yellow dog Updater, Modified) é um programa cujo objetivo é resolver as complicações da instalação/desinstalação de pacotes em formato RPM. Com o yum, o processo de instalação de um pacote se torna extremamente simples: com apenas um comando conseguimos baixar da internet a versão mais atual e instalar no sistema, deixando-o pronto para o uso. Seu endereço oficial é: http://linux.duke.edu/projects/yum/.

Inicialmente feito para a distribuição Yellow Dog – uma versão modificada do Red Hat/Fedora para sistemas com arquitetura PowerPC – o yum chamou a atenção dos desenvolvedores do Red Hat/Fedora, pois os mesmos necessitavam de um gerenciador de pacotes que resolvesse dependências e trabalhasse com repositórios na Internet. Foi adotado oficialmente desde a primeira versão do Fedora.

As instruções aqui são baseadas na distribuição Fedora.

O arquivo de configuração do yum é o /etc/yum.conf. Além disso, os repositórios (sites que contém os pacotes dos programas) são configurados através de cada arquivo de extensão .repo, localizados no diretório /etc/yum.repos.d.

A configuração padrão do yum contida no /etc/yum.conf é suficiente para o bom funcionamento do programa. Você só precisará de alguns repositórios já configurados. Por exemplo, o padrão para o repositório do Fedora é o arquivo /etc/yum.repos.d/fedora.repo:

[fedora]

name=Fedora $releasever - $basearch

baseurl=http://fedora.c3sl.ufpr.br/linux/releases/$releasever/Everything/$basearch/os/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY

As linhas acima significam que o repositório denominado fedora terá:

  1. name: Nome descritivo, no exemplo: Fedora (versão da distribuição) – (arquitetura da distribuição, ex. i386);
  2. baseurl: O endereço que contém a lista dos programas e os pacotes;
  3. enabled: Se o repositório está habilitado ou não (1 significa sim, 0 significa não);
  4. gpgcheck: Se todos os pacotes devem ter sua autenticidade verificada (extremamente recomendado, 1 significa sim, 0 significa não);
  5. gpgkey: Qual chave criptográfica utilizar para a verificação dos pacotes.

Com este repositório configurado, pode-se instalar e remover todos os pacotes básicos da distribuição. No caso das atualizações de pacotes, o repositório é outro e pode ser configurado no arquivo /etc/yum.repos.d/fedora-updates.repo:

[updates]

name=Fedora $releasever - $basearch – Updates

baseurl=http://fedora.c3sl.ufpr.br/linux/updates/$releasever/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

Há varios outros repositórios de terceiros disponíveis (como o livna, dag, freshrpms, atrpms) que contém outros programas que podem não estar na lista principal por diversos motivos. Cada um desses repositórios têm configurações próprias e por isso criam arquivos .repo dentro do diretório /etc/yum.repos.d. Aqui não iremos listar todos os repositórios e sim apenas os oficiais.

Uma vez configurados os repositórios desejados, é hora de utilizar o yum.

Para procurar por um pacote usando alguma palavra relacionada, utilizamos o parâmetro search. Por exemplo, procurar todos os pacotes relacionados com a palavra ‘DVD’:

# yum search DVD

Para instalar um pacote:

# yum install pacote

Para desinstalar o pacote:

# yum remove pacote

Atualizando um pacote específico, caso exista uma atualização para o mesmo:

# yum update pacote

Ou se precisarmos atualizar todo o sistema, instalando todos os pacotes novos que tenham atualizações disponíveis:

# yum update

Para verificar quais os pacotes que precisam de atualização:

# yum check-update

Listando todos os pacotes disponíveis, tanto no repositório quanto os já instalados:

# yum list

Listando todos os pacotes disponíveis para a instalação:

# yum list available

Existem também os grupos de pacotes. Um grupo de pacotes é um conjunto de pacotes necessários para se instalar alguma funcionalidade no sistema e são definidos pelos desenvolvedores da distribuição. Para listar todos os grupos de pacotes:

# yum grouplist

 

Installed Groups:

   Office/Productivity

   MySQL Database

   Editors

   System Tools

...corte...

Available Groups:

   Engineering and Scientific

   Window Managers

   GNOME Software Development

   XFCE Software Development

   XFCE

...corte...

Como podemos ver, o yum mostra os grupos já instalados no sistema (Installed Groups) e os disponíveis para a instalação (Available Groups). Se quisermos, por exemplo, instalar o suporte ao gerenciador de janelas XFCE, instalamos seu grupo:

# yum groupinstall "XFCE"

O yum se encarregará de baixar todos os pacotes necessários para o XFCE. Para remover todos os pacotes do grupo:

# yum groupremove "XFCE"

Todas estas ações do yum necessitam de uma conexão de Internet, pois a lista de pacotes é sempre requisitada no repositório para consulta. Mesmo para consultar um simples nome de pacote, precisa-se de conexão com a Internet.

Caso já tenha se utilizado o yum para fazer alguma ação (e por consequência, ele já tenha baixado a lista de pacotes para o seu sistema), podemos optar por não precisar nos conectar ao servidor na Internet toda vez que usarmos o yum utilizando o parâmetro -C. Exemplos:

# yum -C search DVD

# yum -C check-update

# yum -C list | grep kde

Gerenciador de Pacotes: apt

Para quem não conhece Linux, instalar e desinstalar programas pode parecer uma tarefa difícil. Mas na realidade, sabendo utilizar as ferramentas certas, estas tarefas se tornam muito mais fáceis que qualquer outro sistema. Os gerenciadores de pacotes fazem isso muito bem e o apt é um deles!

O apt (Advanced Package Manager) é um poderoso gerenciador de pacotes que resolve as complicações de dependências de pacotes automaticamente para o usuário, utilizando também a instalação dos pacotes via Internet. Com o apt é possível baixar a versão mais atual de um programa e instalá-lo no sistema com apenas um comando.

Inicialmente feito pela distribuição Debian, o apt utiliza pacotes do dpkg (.deb). Existe uma versão do gerenciador para pacotes RPM, feito há algum tempo pela distribuição (na época) Conectiva, mas esta versão não é bastante utilizada e por isso não iremos falar sobre ela nesta apostila.

A configuração do apt está localizada no diretório /etc/apt. Dentro deste diretório, há um arquivo que podemos considerar o principal, chamado sources.list. Este arquivo contém uma lista de todos os endereços de repositórios que o apt irá usar. São desses repositórios que a lista de programas será baixada e possibilitará o download dos programas. Cada linha deste arquivo corresponde a um repositório de pacotes, exemplo:

deb http://debian.c3sl.ufpr.br/debian/ etch main non-free contrib

Esta linha nos diz para o apt utilizar um repositório de pacotes .deb disponível no endereço: http://debian.c3sl.ufpr.br/debian/, usando a versão etch do Debian. Diz também para pegar os pacotes das seções main, non-free e contrib. Tanto a versão quanto as seções são específicas da distribuição Debian e podem variar se for uma outra distribuição derivada.

Outro exemplo seria um repositório das atualizações de segurança do Debian:

deb http://debian.c3sl.ufpr.br/debian-security/ etch/updates main contrib

Uma vez que o sources.list esteja configurado, já podemos utilizar o apt. É importante saber que antes de qualquer ação de instalação, desinstalação, atualização ou busca, é necessário atualizar a lista dos pacotes. Por isso, toda vez que for utilizar o apt, execute:

# apt-get update

Assim a lista mais atualizada será baixada do servidor. Isto é necessário pois se a distribuição lançar alguma versão nova de pacote, ou pacotes adicionais, a lista precisa ser atualizada também, senão o apt não vai conseguir enxergar esse novo pacote.

Depois de atualizada a lista, podemos executar diversas ações.

Para procurar por um pacote utilizando uma palavra relacionada, utilize o apt-cache da seguinte forma:

# apt-cache search DVD

O apt retornará uma lista com os pacotes associados a palavra DVD.

Para instalar um pacote e todas as suas dependências, use:

# apt-get install pacote

O comando install também atualiza um pacote caso exista uma versão superior a já instalada no sistema.

Para remover um pacote e todas as suas dependências, use:

# apt-get remove pacote

Caso você queira atualizar todo o seu sistema, atualizando todos os pacotes que tenham suas atualizações disponíveis na lista, use o comando upgrade:

# apt-get upgrade

O upgrade apenas atualiza os pacotes de uma versão de distribuição. Se for o caso de atualizar de uma versão da distribuição para outra, o que inclui atualizações que podem se tornar perigosas e quebrar o sistema, use:

# apt-get dist-upgrade

Por fim, o apt também possui uma característica muito sensacional, que é utilizar os poderes da super vaca. A super vaca é poderosa e poderá ajudar nas horas que mais precisarmos. Para utilizar estes poderes, invoque a super vaca com o comando:

# apt-get moo

DPKG – Debian Package Manager

Como lidar com os pacotes de programas que encontramos por aí na Internet, ou nos CDs das distribuições Linux? Quais os processos para instalar, remover e atualizar programas que estão no formato DPKG?

Para manipular os pacotes .deb, o Debian e seus derivados utilizam o programa dpkg. Com esta poderosa ferramenta, podemos construir, instalar, consultar, atualizar ou apagar pacotes de programas. Um pacote no formato DEB consiste em um arquivo no formato ar, contendo os meta-dados (arquivos de controle, definições, permissões, informações de dependências, entre outros) e dados do programa, ambos agrupados com o tar e compactados com o gzip.

Para extrair o conteúdo de um pacote DEB sem instalá-lo no sistema, utilizamos o comando dpkg-deb. O parâmetro -x extrai os dados de programa do pacote. Exemplo, extraindo o conteúdo de um pacote no diretório atual:

$ dpkg-deb -x pacote.deb .

Para extrair os meta-dados (arquivos de controle) do mesmo pacote, utilizamos o parâmetro -e. O exemplo abaixo vai criar um diretório chamado DEBIAN contendo todos os arquivos de controle do pacote:

$ dpkg-deb -e pacote.deb

O banco de dados do dpkg está localizado no diretório /var/lib/dpkg e seu formato é de um arquivo texto comum, podendo ser editado por qualquer editor de texto.

DPKG: Instalação e desinstalação

Para instalar um pacote, utilizamos a opção -i:

# dpkg -i pacote.deb

O -i também serve para atualização de um pacote. Se o pacote já existir e se o que estivermos tentando instalar for mais novo, o pacote será atualizado.

Para remover um pacote do sistema, utilizamos a opção -r:

# dpkg -r pacote

Caso esse pacote não seja removido porque outros pacotes dependem dele, podemos forçar a remoção do mesmo com o parâmetro –force-depends:

# dpkg -r --force-depends pacote

Cuidado! Forçar a remoção de um pacote sem resolver as dependência pode causar problemas! Os programas dependentes do pacote poderão não funcionar corretamente. Use apenas se você souber o que estiver fazendo.

DPKG: Consulta

Para ver uma lista com todos os pacotes intalados no sistema, utilize:

$ dpkg -l

O dpkg irá mostrar uma lista com todos os pacotes, o status, a versão e um pequeno sumário sobre o que é cada um dos pacote.

As três primeiras linhas do comando dpkg -l mostram os estados dos pacotes, representados por três letras. A primeira letra significa o estado que o sistema quer que o pacote esteja (Desired), a segunda letra indica o estado atual do pacote e a terceira letra indica um erro. O próprio cabeçalho do comando indica quais estados podem aparecer nas letras.

Por exemplo, a combinação ii significa que o sistema quer que o pacote esteja instalado (primeira letra i) e o pacote realmente está instalado no sistema (segunda letra i). A combinação rc significa que o pacote está marcado para ser removido (primeira letra: r), mas os arquivos de configuração não foram removidos (segunda letra: c).

Para saber se apenas um pacote está instalado, basta colocar o nome do pacote depois do parâmetro -l:

$ dpkg -l vim

Para listar todos os pacotes associados a uma certa palavra, utilizamos o -l da seguinte forma:

$ dpkg -l '*gnome*'

Dessa forma todos os pacotes contendo a palavra gnome no nome serão mostrados na tela.

Para obter informações detalhadas sobre um pacote, utilizamos o parâmetro -p:

$ dpkg -p grub

Package: grub

Priority: optional

Section: admin

Installed-Size: 668

Maintainer: Grub Maintainers <pkg-grub-devel@lists.alioth.debian.org>

Architecture: i386

Version: 0.95+cvs20040624-17

Depends: libc6 (>= 2.3.2.ds1-4), libncurses5 (>= 5.4-1)

Suggests: grub-doc, grubconf

Size: 358684

Description: GRand Unified Bootloader

 GRUB is a GPLed bootloader intended to unify bootloading across x86

 operating systems.  In addition to loading the Linux kernel,

 it implements the Multiboot standard, which allows for flexible loading

 of multiple boot images (needed for modular kernels such as the GNU Hurd).

O dpkg -p mostrou vários detalhes sobre o pacote, como por exemplo quem mantém o pacote, que seção ele pertence, qual arquiteura, do que ele depende, qual o tamanho, versão e um sumário e descrição sobre o que é o pacote. Quem quer conhecer mais sobre os programas dentro da distribuição pode utilizar o dpkg -l e ir verificando os detalhes de cada pacote com dpkg -p. Haja paciência!

Para verificar o status de um pacote (como mostrado na lista com o dpkg -l, utilize o parâmetro -s:

$ dpkg -s pacote

Para listar o conteúdo de um pacote:

$ dpkg -L grub

/.

/sbin

/sbin/update-grub

/sbin/grub-install

/usr

/usr/share

...corte...

Para procurar por um arquivo dentro do banco de dados do dpkg afim de descobrir a qual pacote ele pertence, utilizamos a opção -S:

$ dpkg -S arquivo

Exemplo:

$ dpkg -S /usr/bin/file

file: /usr/bin/file