Infra - Linux

Dominando o apt-get no Conectiva

O apt-get é um software que além de instalar o programa especificado, ele instala automáticamente todas as dependências do pacote solicitando. E também pede para inserir os cds um a um para extração dos arquivos necessários.

por Alessandro de Oliveira Faria



O apt-get é um software que além de instalar o programa especificado, ele instala automáticamente todas as dependências do pacote solicitando. E também pede para inserir os cds um a um para extração dos arquivos necessários.

Até o conectiva 7 eu instalava todos os pacotes com o comando RPM. Era muito traumático ter que instalar todas as dependências pacote por pacote, sem contar que algumas vezes eu tinha buscar o nome do arquivo que trazia a biblioteca solicitada pelo pacote principal.

Todos este problemas acabaram com a utilização do apt-get. Este tutorial é bem simples, porém ele explica como fazer o apt-get busca os pacotes apenas no cd e não no ftp do conectiva.

Instalando o apt-get:

Por padrão o Conectiva já instala o apt-get, mas caso isto não tenha acontecido, os pacotes principais do apt-get estáo no disco 01 do conectiva

[root@athlon etc]# mount /mnt/cdrom
[root@athlon etc]# cd /mnt/cdrom/conectiva/RPMS
 
[root@athlon RPMS]# rpm -ivh apt-0.5.5cnc4.1-28964cl.i386.rpm 
Preparando... ########################################### [100%]
########################################### [100%]
 
[root@athlon RPMS]# rpm -ivh apt-data-cnc-1.0-1cl.noarch.rpm 
Preparando... ########################################### [100%]
1:apt-data-cnc ########################################### [100%]
[root@athlon RPMS]# 

Configurando a lista de pacotes do cd no apt-get:

Para que o apt-get localize os pacotes no cd, temos informar a catálogo de pacote que se encontra no disco 01.

[root@athlon root]# apt-cdrom add
Using CD-ROM mount point /mnt/cdrom/
Unmounting CD-ROM
Please insert a Disc in the drive and press enter
Mounting CD-ROM
Identifying.. [dd532ceb1e92be0520029709f939fae3-2]
Scanning Disc for index files.. Found 1 package indexes and 0 source indexes.
This Disc is called:
"Conectiva Linux 9 CD1"
Reading Indexes... Feito
Writing new source list
Source List entries for this Disc are:
rpm cdrom:[Conectiva Linux 9 CD1]/ conectiva 001
Repeat this process for the rest of the CDs in your set.
[root@athlon root]#

Nesta etapa o apt-get sabe onde encontrar qualquer pacote solicitado. Pois no índice extraído do CD 01, contém a localização de cada pacote.

Agora vamos fazer os ajustes finos, ou seja vamos agora avisar o apt-get para não buscar mais nenhum arquivo via ftp.

Edite o arquivo /etc/apt/sources.list apague todas as linhas exceto as diretivas do cdrom conforme o exemplo abaixo:

[root@athlon root]# cd /etc/apt
[root@athlon apt]# ls
apt.conf rpmpriorities sources.list~ vendors.list
apt.conf.d sources.list translate.list.d
[root@athlon apt]# vi sources.list

rpm cdrom:[Conectiva Linux 9 CD1]/ conectiva 001
rpm cdrom:[Conectiva Linux 9 CD4]/ conectiva 004
rpm cdrom:[Conectiva Linux 9 CD3]/ conectiva 003
rpm cdrom:[Conectiva Linux 9 CD2]/ conectiva 002

Brincando com o apt-get.

Para localizar um pacote, podemos seguir o exemplo abaixo:

[root@athlon apt]# apt-cache search mplayer
kmplayer - kmplayer é um frontend KDE para o mplayer
kmplayer-doc - documentação para o kmplayer
mplayer-doc - Documentação para mplayer
mplayer-skin-default - default skin for MPlayer"s GUI
mplayer-common - Configuration files and documentation for mplayer.
mplayer - MPlayer is a movie player for LINUX.
mplayer-gui - MPlayer with GUI interface
[root@athlon apt]#

Obtendo informações estatísticas:

[root@athlon apt]# apt-cache stats
Total de Pacotes : 11852 (474k)
Pacotes Normais: 5629
Pacotes Puramente Virtuais: 309
Pacotes Virtuais Simples: 5364
Pacotes Virtuais Mistos: 7
Faltando: 543
Total de Versões Distintas: 5644 (271k)
Total de Dependências: 38639 (1082k)
Total de Relações Versão/Arquivo: 6724 (108k)
Total de Mapeamentos de Provimentos: 6118 (122k)
Total de Strings Globbed: 59 (766)
Espaço Total para Dependências de Versões:52,1k
Espaço Total Temporário: 91,7k
Espaço Total Contabilizado: 2149k

Verificando as dependências de um determinado pacote:

[root@athlon apt]# apt-cache depends cdp
cdp-0.33-235cl
Depende: <libc.so.6>
glibc-base-2.3.1-27263cl
Depende: <libncurses.so.5>
ncurses-5.2-12521cl
Depende: <libc.so.6(GLIBC_2.0)>
glibc-base-2.3.1-27263cl
Depende: <libc.so.6(GLIBC_2.1)>
glibc-base-2.3.1-27263cl

Visualizando a configuração:

[root@athlon apt]# apt-config dump
APT "";
APT::Architecture "i386";
Dir "/";
Dir::State "var/state/apt/";
Dir::State::lists "lists/";
Dir::State::cdroms "cdroms.list";
Dir::State::prefetch "prefetch";
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::sourceparts "sources.list.d";
Dir::Etc::vendorlist "vendors.list";
Dir::Etc::vendorparts "vendors.list.d";
Dir::Etc::main "apt.conf";
Dir::Etc::parts "apt.conf.d";
Dir::Etc::preferences "preferences";
Dir::Etc::rpmpriorities "rpmpriorities";
Dir::Etc::translatelist "translate.list";
Dir::Etc::translateparts "translate.list.d";
Dir::Bin "";
Dir::Bin::methods "/usr/lib/apt/methods";
Dir::Bin::rpm "/bin/rpm";
Dir::Locale "/usr/share/locale";
RPM "";
RPM::Allow-Duplicated "";
RPM::Allow-Duplicated:: "^kernel[0-9]*$";
RPM::Allow-Duplicated:: "^kernel[0-9]*-smp$";
RPM::Allow-Duplicated:: "^kernel[0-9]*-enterprise$";
RPM::Hold "";
RPM::Hold:: "^kernel[0-9]*-source$";
Acquire "";
Acquire::DistroID "Conectiva";
Acquire::CDROM "";
Acquire::CDROM::Mount "/mnt/cdrom";
Acquire::CDROM::Copy-All "true";

Instalando um pacote:

[root@athlon apt]# apt-get install pygame
Lendo Listas de Pacotes... Feito
Construindo Árvore de Dependências... Feito
Os seguintes pacotes NOVOS serão instalados:
pygame
0 pacotes atualizados, 1 novos instalados, 0 removidos e 0 não atualizados.
É preciso pegar 0B/281kB de arquivos.
Após desempacotar 688kB de espaço adicional serão utilizados.
Troca de Mídia: 
 Por favor insira o disco nomeado "Conectiva Linux 9 CD3" no drive "/mnt/cdrom/" e pressione enter

 
Get:1 cdrom://Conectiva Linux 9 CD3 conectiva/003 pygame 1.5.3-19171cl [281kB]
Obtidos 281kB em 1m1s (4543B/s)
Executando RPM (-Uvh)...
Preparando... ########################################### [100%]
1:pygame ########################################### [100%]
[root@athlon apt]#

Para multiplas operações, podemos usar o apt-shel:

Ele tem a mesma função. Mas com este interpretador do apt-get fica mais agil a instalação e desistalação de varis pacotes.

Veja o exemplo Abaixo:

[cabelo@486 cabelo]$ apt-shell
Lendo Listas de Pacotes... Feito
Construindo Árvore de Dependências... Feito
Welcome to the APT shell. Type "help" for more information.
apt>
apt> help
apt 0.5.5cnc4.1 para linux i386 compilado em Mar 22 2003 09:21:07

 
Main commands:
status - Show the current selections
install - Install new packages
remove - Remove packages
keep - Keep packages
upgrade - Perform a global upgrade
dist-upgrade - Perform a globla distribution upgrade
build-dep - Install build-dependencies for source packages
update - Retrieve new lists of packages
commit - Apply the changes in the system
quit - Leave the APT shell

 
Auxiliar commands:
show - Show a readable record for the package
showpkg - Show some general information for a single package
list/ls - List packages
search - Search the package list for a regex pattern
depends - Show raw dependency information for a package
whatdepends - Show raw dependency information on a package
check - Verify that there are no broken dependencies
unmet - Show unmet dependencies
clean - Erase downloaded archive files
autoclean - Erase old downloaded archive files

 
For more information type "help <cmd>" or "<cmd> [-h|--help]".

 
This APT has Super Cow Powers.
Apt>

Bom se alguém ainda usa o rpm no braço com a distro coneciva, passou da hora de evoluir. Espero que este documento tenha esclarecido a funcionalidade do apt-get.

Alessandro de Oliveira Faria

Alessandro de Oliveira Faria - Sócio-proprietário da empresa NETi TECNOLOGIA fundada em Junho de 1996 (http://www.netitec.com.br), empresa especializada em desenvolvimento de software e soluções biométricas, Consultor Biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986 assim propiciando ao mercado soluções em software nas mais diversas linguagens e plataforma, levando o Linux a sério desde 1998 com desenvolvimento de soluções open-source, membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca open-source de vídeo captura entre outros projetos.