GerenciamentoDePacotes

Gerenciamento de Pacotes

Antes de começar é necessário citar que o Ubuntu é baseado na Debian GNU/Linux. Isto ocorre de uma forma bem direta como ver ser visto em: https://wiki.ubuntu.com/DebianImportFreeze. Entendendo a relação, pode-se afirmar que, o Ubuntu utiliza o sistema de pacotes criado pela Debian chamado DPKG e gerenciado pelo APT.

Tipos de Pacotes

Já se foi o tempo em que instalar um aplicativo no GNU/Linux era necessário ler o arquivo "readme" para obter instruções de como compila-lo e torcer muito, para que tudo terminasse bem. O Ubuntu GNU/Linux utiliza um sistema de pacotes chamado "dpkg" em que os pacotes são basicamente dois: os binários (.deb) e fontes (.dsc). Estes arquivos Debian possuem normalmente a seguinte estrutura em seu nome:

<package-name>_<epoch>:<upstream-version>-<ubuntu.version>_<architecture>.deb

Pacotes Binários

Pacotes binários (.deb), os quais contém executáveis, arquivos de configuração, páginas de manual, informação de copyright e documentação. Estes pacotes são distribuídos em um formato de arquivo específico Debian; eles são normalmente identificados por terem uma extensão de arquivo .deb.

Pacotes Fonte

Pacotes fonte (.dsc), os quais consistem de um arquivo .dsc descrevendo o pacote fonte, um arquivo .orig.tar.gz que contém o fonte original não modificado em formato tar e compactado com o gzip, e normalmente um arquivo .diff.gz que contém as mudanças específicas do Debian feitas em relação ao fonte original.

Metapacotes (metapackage)

Metapacotes são pacotes que tem em sua dependência a instalação de outros pacotes binários (.deb). Assim, diferente de um pacote comum que instala suas dependências, sugestões e recomendações, um metapacote instala uma lista de outros pacotes binários que tem como dependência, sugestão e recomendação outros pacotes binários. Exemplo de um metapacote é o clássico pacote ubuntu-desktop:

$aptitude show ubuntu-desktop

Depends, Suggests e Recommends

Tanto os binários (.deb) como os fontes (.dsc) contém todas as informações necessárias para instalação. O pacote é o arquivo de "setup" de um software (Gimp, Firefox, MySQL, Apache,...). Estas informações vão desde em que diretório instalar, bibliotecas que dependem (depends), sugestões de outros pacotes para seu funcionamento (suggests) e recomendações de pacotes opcionais (recommends).

Depends

O Pacote A depende do Pacote B se B precisar absolutamente estar instalado para que A possa ser executado. Em alguns casos, A depende não somente de B, mas de uma versão específica de B. Nestes casos, a dependência da versão é normalmente um limite mínimo, no sentido de que A depende em qualquer versão de B mais recente do que alguma versão especificada.

Suggests

O Pacote A sugere o Pacote B caso B contenha arquivos que estejam relacionados a (e normalmente melhorem) a funcionalidade de A.

Recommends

O Pacote A recomenda o Pacote B caso o mantenedor do pacote julgue que a maioria dos usuários não iriam querer A sem também ter a funcionalidade fornecida por B.

Advanced Packaging Tool (APT)

Para obter os pacotes, o Ubuntu GNU/Linux utiliza o APT, Advanced Packaging Tool. Este "cara" trabalha com o que chamamos de repositórios (canais de software), que são endereços na Internet que mantém diversos pacotes de forma centralizada. Estes repositórios (endereços) ficam no arquivo /etc/apt/sources.list. Para configurar estes repositórios do APT utiliza-se no menu do Gnome, Sistema, Adminstração, Canais de Software ou editando diretamente o arquivo /etc/apt/sources.list. A estrutura Isto será melhor escrito no tópico "Repositórios Oficiais e Licenças" mais abaixo desta página.

O APT é composto por alguns programas: apt-get, apt-cache, apt-file, dentre outros. Hoje temos o "aptitude" (criado a partir da Debian Sarge - 3.1) que veio substituir o "dbselect". Como o antigo "dbselect", o "aptitude" é um instalador de pacotes (obtido de repositórios) baseado em menus. Pode ser utilizado também direto em linha de comando, sem ter que acessar os menus, com o clássico "aptitude install <pacote>".

Icones/informacao.png

DICA: O apt-get não é mais utilizado para a certificação LPI. Portanto prefira especificar-se no aptitude.

Se tanto o "apt-get" e variações, como o "aptitude" são utilizados em linha de comando (man apt-get e man aptitude), a diferença entre eles está em como lidam com depends, suggests e recommends dos pacotes. O "apt-get" apenas instala os depends e suggests. O aptitude instala os depends, suggests e como opção recommends.

Icones/importante.png

NOTA: A partir do Ubuntu Lucid - 10.04 o apt-get passa também a instalar os recomends. Veja mais em suas Notas de lançamento (release notes).

Como existe vida depois de Marte, a interface gráfica padrão, utilizada pelo Gnome, para manipular o APT é o "Synaptic". Mas como estamos em um universo livre e podemos montar nosso sistema, existem outras interfaces gráficas para gerenciar o APT, entre elas o "Smart Package Manager" (criado pelo brasileiro NOME NOME) e o "PackegeKit".

Se o APT trabalha na instalação de pacotes obtidos em repositórios, o "dpkg" (man dpkg) manipula o pacote binário em si. Por isto, para instalar um pacote ".deb" diretamente, utiliza-se o comando "dpkg -i <pacote>". O utilitário dpkg-source (pacote dpkg-dev) empacota e desempacota arquivos fonte Debian.

Repositórios Oficiais e Licenças

Todos os pacotes incluídos na distribuição oficial do Ubuntu GNU/Linux são livres de acordo com sua Free Software Philosophy. Isso assegura uso livre e redistribuição de pacotes com seu código fonte completo. A distribuição oficial do Ubuntu GNU/Linux é a que está contida na seção "main" do repositório. Portanto apenas a árvore de pacotes contidos no "main" são de fato garantidos pela Canonical pelo suporte de atualizações e correções.

No repositório "main" podem ainda estar contidos binários de firmware que não podem ser modificados sem as permissões dos autores, mas não existem restrições para sua redistribuição. Está parte do firmware, lamentavelmente abrange praticamente a totalidade das distribuições, já que estes estão contidos muitas vezes no próprio Linux (Kernel).

Oficialmente e com suporte da comunidade, o Ubuntu GNU/Linux abrange ainda os repositórios:

Restricted

Conjunto de programas proprietários (drivers) para equipamentos e periféricos. Alguns destes programas são instalados por padrão no Ubuntu, mas são claramente separados para que seja de fácil remoção. Porém no Ubuntu CD existe a opção de instalar o Ubuntu somente com software livre.

Universe

Contém todo tipo de software e sobre uma variedade de licenças. Portanto se queres apenas "software livre" deve ficar atento a licença de cada software que for instalar. Este repositório é mantido pela comunidade.

Multiverse

Repositório com programas (software) "não livres" e protegidos por copyright. Repositório também mantido pela comunidade.

Código Fonte (source code)

Neste repositório estão todos os fontes (pacotes .dsc) disponíveis (kernel, firefox, openoffice.org, ...).

Repositórios de Atualizações

Além dos repositórios para instalação de pacotes, existem diferentes tipos de repositórios para atualizações. Estes podem ser visto acessando no menu do Gnome, Sistema, Canais de software, aba Atualizações (updates).

Ubuntu Security

Claramente está opção deve sempre estar marcada. Neste repositório são feitas as atualizações criticas de segurança do Ubuntu GNU/Linux.

Ubuntu Updates

Habilitar este repositório é fundamental. Neste são contidas atualizações que melhoram como um todo o funcionamento do Ubuntu. Em outras palavras é por este canal que os bugs são corrigidos.

Ubuntu Backports

O Ubuntu GNU/Linux lança uma nova versão a cada 6 meses. Após o lançamento as versões dos pacotes não são alteradas. Assim, se é lançada um nova versão do openoffice.org, está não será atualizada em seu sistema. As atualizações que ocorrem são de correção de "bugs" e problemas de segurança da versão lançada até o termino do suporte oferecido.

É um dilema comum entre estabilidade e necessidade de novos recursos. Com o tempo de vida longo que o Ubuntu oferece, 3 anos nas versões Desktop LTS, sinceramente, depois de um tempo alguns aplicativos começam a dar ares de velhinhos. É nesta visão que entra o backports; em que atualizações de versão são principalmente para os aplicativos de desktop, como o navegador Web, processador de texto, cliente de IRC ou IM. Estes programas podem ser atualizados sem substituir uma grande parte do sistema operacional que poderia afetar a estabilidade como um todo.

Se o Navegante é um instalador semestral, não existe a necessidade de utilizar este canal de software. Por que em meu entender ele só será útil em um período maior de utilização. Meu argumento é que, embora antes de um pacote com nova versão ser liberado no repositório backports este é testado por vários desenvolvedores e colaboradores. Porém está escala não é alta e erros podem passar desapercebidos, como por exemplo um novo formato em algum arquivo de configuração interna do pacote.

Ao habilitar o backports como repositório, um "aptitude dist-upgrade" irá atualizar todos os pacotes instalados em sua máquina para uma nova versão, claro que se disponível no repositório. O que considero inconveniente dado a essência do repositório. Uma solução que recomendo fortemente é pescar (pinning) apenas os pacotes que deseja mudar de versão.

Mais detalhes podem ser obtidos aqui: https://help.ubuntu.com/community/UbuntuBackports.

Ubuntu Proposed

É um repositório para testes de atualizações antes de serem lançadas. Porém alguns pacotes que estão neste repositório podem nunca chegar a serem recomendadas como atualizações efetivas Por tal motivo, a não ser que o Navegante seja um testador, não use este repositório.

Icones/erro.png

ATENÇÃO: Se não sabe o que está fazendo, não utilize este repositório. Ele pode realmente "quebrar" seu sistema.

Outros Repositórios

Além dos repositórios oficiais, disponíveis na instalação, do Ubuntu GNU/Linux, temos alguns canais que merecem atenção:

Repositório Partner

A Canonical (empresa por trás do Ubuntu) possui plano de negócio para parceiros adicionarem suas soluções neste repositório. Os programas deste repositório são todos proprietários (fechados) e licenciados sobre copyright. Caso queira alguma solução especifica fornecida por algum parceiro da Canonical, habilite este repositório. Para saber mais sobre partners: http://www.canonical.com/partners.

Icones/importante.png

NOTA: A partir do Ubuntu Lucid - 10.04 o Java da Sun/Oracle foi movido para este repositório.

Personal Package Archive (PPA)

O PPA é um serviço oferecido através do Launchpad.net. O Launchpad.net é um software open source (veja o anuncio oficial) desenvolvido pela Canonical para gerenciamento colaborativo de softwares. O Ubuntu tem sua organização e desenvolvimento através dele.

Usando um Personal Package Archive (PPA), qualquer um pode distribuir instalação e atualizações de software diretamente aos usuários do Ubuntu. Pode-se criar um pacote, fazer o upload e o Launchpad vai construir os binários e depois hospedá-los em um repositório APT específico. Isso significa que usuários do Ubuntu podem instalar pacotes oferecidos diretamente pela comunidade na mesma maneira que instala os pacotes dos repositórios oficiais.

Para adicionar um PPA em sua lista de repositórios (canais de software), por exemplo a do Mozilla Daily Build:

$sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa

Portanto, Navegante, como existe vida depois de Marte, antes de sair por aí compilando fontes, verifique se este existe em algum PPA. Esta busca pode ser feita por aqui: https://launchpad.net/ubuntu/+ppas. Outra forma de busca pelo PPA é através do plugin de busca para o Firefox:

$sudo aptitude install firefox-launchpad-plugin

Medibuntu

Em minha opinião um dos poucos repositórios de terceiros que recomendo. Medibuntu (Multimedia, Entertainment & Distractions In Ubuntu) fornece uma série de codecs proprietários que não podem constar nos repositórios oficiais por questão legal de alguns países. Mais informações: https://help.ubuntu.com/community/Medibuntu.

Trabalhando com Repositórios

Icones/manutencao.png

MANUTENÇÃO: Esta seção se encontra em desenvolvimento ou manutenção, favor aguardar sua conclusão para os devidos procedimentos de revisão e edição.

  • /etc/apt/sources.list Estrutura dos endereços que apontam para repositórios.

    • software-properties-gtk Interface gráfica para manipular endereços de repositórios (sources.list).

  • Aptitude Interface baseada em menu ou linha de comando para manipulação de pacotes do APT.

  • AptGet Manipulação de pacotes do APT por linha de comando.

  • Synaptic Interface gráfica para o apt-get.

    • Alternativas ao Synaptic:
      • SmartPackageManager Um gerenciador de pacotes avançado, com centenas de recursos e uma interoperabilidade com outros tipos de pacotes que não sejam do Debian.

      • packagekit

  • software-center

  • tasksel Trabalhando com a lista pré-selecionada de pacotes para montar seu desktop. (/RemoverCompletoDesktop)

  • RepositorioLocal Esse guia tem por objetivo ensinar a criar um Repositório Local, no qual você pode colocar todos os seus pacotes .deb.

  • Procurando por pacotes e entendendo seus estados

  • Alterando o comportamento do APT

Referencias

Créditos

Autor: ZandreBran

Data: 01/06/2010

Local: TimeDeDocumentacao

Wikifier (es): ZandreBran,

Data: 01/06/2010

Mantenedor: ZandreBran

70-680 exam 70-620 70-640 exam 70-642 dumps 70-643 70-680 70-640 dumps 70-620 exam 70-642 70-643 exam photo retouching ulcer treatment how to hack facebook account


CategoryDocumentacao

GerenciamentoDePacotes (last edited 2012-01-18 17:52:48 by SirMap)