You are here: Wiki-SL>PSLGO Web>OficinasDoFlisol>RoteiroAPTGET (14 Feb 2012, MarioSilva?)EditAttach

Roteiro de APT - Advanced Packaging Tool

Introdução

No início havia o .tar.gz. Os usuários tinham de penar para compilar cada programa usado em seu sistema GNU/Linux, ou outro qualquer. Os passos eram os seguintes:

#tar xvfz samba-2.4.0-8cl.tar.gz (desempacotamento e descompactação)
#./configre ( preparação para a instalação, checando bibliotecas e dependências) 
#make (testar o sistema com a nova ferramenta e incluir bibliotecas finais)
#makeinstall (reside o programa no sistema)

Quando o Debian foi criado, sentiu-se a necessidade de um sistema de gerenciamento de pacotes instalados no sistema. Deu-se a esse sistema o nome de dpkg. Assim surgiu o famoso `pacote':

#dpkg -i ssh-1.2.3-9.3.deb (instala)
#dpkg -r ssh-1.2.3-9.3.deb (remove)
#dpkg -l ssh-1.2.3-9.3.deb (consulta)

Logo após a Red Hat resolveu criar seu conhecido sistema rpm.

# rpm -ivh Eterm-0.9-4cl.i386.rpm (instala)
# rpm -Uvh Eterm-0.9-4cl.i386.rpm (faz um update)
# rpm -qa Eterm-0.9-4cl.i386.rpm (consulta)
# rpm -e Eterm-0.9-4cl.i386.rpm (remove)

Ainda existe a maneira de instalação e remoção para sistemas Slackare:

#installpkg nmap-3.75.tgz (instala)
#removepkg nmap-3.75.tgz (remove)

Rapidamente outro dilema tomou conta das mentes dos produtores de GNU/Linux. Uma maneira rápida, prática e eficiente de se instalar pacotes, gerenciando suas dependências automaticamente e tomando conta de seus arquivos de configuração ao atualizar. Assim, o Debian, novamente pioneiro, criou o APT ou Advanced Packaging Tool, hoje portado pela Conectiva e incorporado por algumas outras distribuições.

O arquivo /etc/apt/sources.list

Para seu funcionamento, o APT utiliza-se de um arquivo que lista as `fontes' de onde ele obterá os pacotes. Esse arquivo é o /etc/apt/sources.list:

#vi /etc/apt/sources.list

As palavras deb e deb-src indicam o tipo de repositório: se guarda pacotes binários (deb), ou seja, os pré-compilados que normalmente usamos ou se guarda pacotes fonte (deb-src), que são o fonte original do programa mais o arquivo de controle Debian (.dsc) e o diff.gz contendo as modificações necessárias para se debianizar o programa.

As linhas deste arquivo apontam para fontes, repositório oficial e para atualizações de segurança.

apt-get

O apt-get é uma ferramenta de gerenciamento de pacotes. Acontece o seguinte: os softwares são, por natureza, modulares. Se você faz um software com interface gráfica que toca músicas, para ele funcionar você vai precisar: da biblioteca que desenha os gráficos, do servidor de som, dos codecs que interpretam os formatos de música e por aí vai... Isso chamamos dependências. Se formos instalar o pacote, (rpm -ivh meusoft.rpm / dpkg meusoft.deb) ele irá reclamar das dependências... E teremos que instalar manualmente os pacotes de dependência. O apt-get tenta resolver estes conflitos e instalar automaticamente todas as dependências. Digo tenta porque às vezes é impossível numa atualização, devido a dependências cruzadas de diversos softwares por versões diferentes de bibliotecas. Aí, é preciso resolver manualmente estas dependências. O apt vêm instalado por padrão na distribuição Debian, onde lida com pacotes deb e na Conectiva, onde lida com pacotes rpm. Os pacotes rpm têm a vantagem de poderem ser assinados digitalmente. É possível instalar o apt da Conectiva em outras distribuições rpm.

Vamos começar pela linha de comando. Após conhecermos os conceitos básicos veremos que existem front-ends para praticamente todas as funções do apt-get.

Mais que um comando, o apt-get é uma tecnologia, que hoje está disponível qualquer que seja a distribuição Linux que você utiliza, embora neste tutorial utilizemos o Debian. Ele resolve automaticamente as dependencias entre pacotes, assim, você não precisa de um "instalador" imenso para cada aplicação. Ela só precisa trazer o básico, e especificar suas dependências. Assim, com o apt, se alguma dependência não estiver instalada no seu sistema, este busca automaticamente na Internet.

Ajuda

- Inicie, então abrindo um terminal. Digite:

$apt-get --help | more

-Agora, podemos olhar tela a tela o help. Olhemos o uso mais comum:

apt-get [opções] comando 

Instalando pacotes

- Nos interessam agora, da lista de comandos, o install e o remove. Digite:

$apt-get install apt-howto-pt-br 
E: Não foi possível abri arquivo de trava /var/lib/dpkg/lock - open (13 Permissão negada) 
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? 
- Ops! É preciso ser administrador para instalar softwares!! 
# su - 
- O APT vai buscar então em seu banco de dados a versão mais nova desse pacote e vai baixá-la do repositório correspondente na sources.list. Caso esse pacote dependa de algum outro -- o que é o caso aqui -- o APT irá conferir as dependências e instalar os pacotes necessários
# apt-get install apt-howto-pt-br 
Reading Package Lists... Done 
Building Dependency Tree... Done 
The following NEW packages will be installed: 
apt-howto-pt-br 
0 upgraded, 1 newly installed, 0 to remove and 271 not upgraded. 
Need to get 0B/239kB of archives. 
After unpacking 393kB of additional disk space will be used. 
Selecting previously deselected package apt-howto-pt-br. 
(Reading database ... 52965 files and directories currently installed.) 
Unpacking apt-howto-pt-br (from .../apt-howto-pt-br_1.8.10.2-1_all.deb) ... 
Setting up apt-howto-pt-br (1.8.10.2-1) ... 
- Como sempre, informações completas. 
- Vamos instalar alguns softwares: 
# apt-get install gtkam 
# apt-get install gphoto2 
- Caso você de alguma forma danifique a instalação de um pacote, ou simplesmente deseja que os arquivos do pacote sejam repostos com a versão mais nova que estiver disponível, você pode usar a opção --reinstall assim:
# apt-get --reinstall install gdm
Reading Package Lists... Done
Building Dependency Tree... Done
0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1  not upgraded.
Need to get 0B/182kB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n]

- Bem detalhista, não? Vamos aprender agora a achar onde um pacote foi instalado:

# dpkg -L apt-howto-pt-br 
/usr/share/doc/Debian/apt-howto/apt-howto.pt-br.html 
- Vamos parar para dar uma olhadinha no rautu???
# mozilla /usr/share/doc/Debian/apt-howto/apt-howto.pt-br.html 

Removendo pacotes

- Vamos, só por teste, remover o pacote, retirando tambem os pacotes que dependem do pacote sendo removido:

# apt-get remove apt-howto-pt-br The following packages will be REMOVED: 
apt-howto-pt-br 
0 upgraded, 0 newly installed, 1 to remove and 271 not upgraded. 
Need to get 0B of archives. 
After unpacking 393kB disk space will be freed. 

Procurando pacotes

- Bem, eu não sei qual o nome de um pacote, como posso instalar um software?

#apt-cache search atari
atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
circuslinux - The clowns are trying to pop balloons to score points!
madbomber - A Kaboom! clone
tcs - Character set translator.
atari800 - Atari emulator for svgalib/X/curses
stella - Atari 2600 Emulator for X windows
xmess-x - X binaries for Multi-Emulator Super System

Obtendo informações

- Para ter mais informações sobre um pacote, posso, então, usar:
#apt-cache show stella  
Package: stella
Priority: extra
Section: non-free/otherosfs
Installed-Size: 830
Maintainer: Tom Lear <tom@trap.mtview.ca.us>
Architecture: i386
Version: 1.1-2
Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
Size: 483430
MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
Description: Atari 2600 Emulator for X windows
Stella is a portable emulator of the old Atari 2600 video-game console
written in C++.  You can play most Atari 2600 games with it.  The latest
news, code and binaries for Stella can be found at:
http://www4.ncsu.edu/~bwmott/2600

Verificando dependências

- Para saber de quais pacotes ele depende, apenas:
# apt-cache depends penguin-command
penguin-command
Depends: libc6
Depends: libpng2
Depends: libsdl-mixer1.1
Depends: libsdl1.1
Depends: zlib1g

Escolhendo origem dos pacotes

- Para escolher as fontes de onde buscar os pacotes

#apt-setup
-ecolher o metodo de acesso (cdrom, http, ftp, filesystem, edit source list by hand)
-escolher o país ( Brazil)
-escolher o mirror debian para usar (ftp.br.debian.org)
Conecting 0% to ftp.br.debian.org
- Dois comandos para atualização de todo o sistema... Sem reboots!

---++ Atualizando metados dos pacotes
- apt-get update - Ele procura pelas listas de pacotes nos repositórios indicados no seu arquivo /etc/apt/sources. Caso você receba uma mensagem parecida com a seguinte ao tentar rodar o apt-get install pacote... 
#apt-get update
Reading Package Lists... Done
Building Dependency Tree... Done
W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages' var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat (2 Arquivo ou diretório não encontrado)
W: You may want to run apt-get update to correct these missing files
E: Couldn't find package penguineyes
- você se esqueceu de rodar o apt-get update depois da sua última alteração no arquivo /etc/apt/sources.list.

Atualizando pacotes

- A atualização de pacotes é um grande trunfo do sistema APT
# apt-get -u upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back
cpp gcc lilo 
The following packages will be upgraded
adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc 
29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
Do you want to continue? [Y/n]

Referências

Topic revision: r4 - 14 Feb 2012 - 02:05:28 - MarioSilva?
Get Firefox!

eXTReMe Tracker



Create personal sidebar

Mycose.org

 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki-SL? Send feedback