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 FariaAté 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.
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware