Saltar para o conteúdo

Gerenciamento de pacotes: diferenças entre revisões

Fonte: Wikiversidade
Conteúdo apagado Conteúdo adicionado
Adicionado repositório de pacotes
Adicionado conteúdo sobre gerenciamento debian
Linha 14: Linha 14:
* Depende de outros usuários empacotarem;
* Depende de outros usuários empacotarem;
* Pode demorar a ser empacotado;
* Pode demorar a ser empacotado;
* Pode ser complexo empacotar.
* Pode ser complexo empacotar;
* Pacotes que tenham as mesmas dependências, mas com versões diferentes.
== Dependências ==
== Dependências ==
Para um simples programa ser executado, muitas vezes é necessário apenas os arquivos binários que a própria linguagem fornece. Quando o programa começa a ficar mais complexo, ou quando é um software, é utilizado código fonte de outros programas além do fornecido pela própria biblioteca nativa da linguagem usada [1].
Para um simples programa ser executado, muitas vezes é necessário apenas os arquivos binários que a própria linguagem fornece. Quando o programa começa a ficar mais complexo, ou quando é um software, é utilizado código fonte de outros programas além do fornecido pela própria biblioteca nativa da linguagem usada [1].
Linha 48: Linha 49:


== Gerenciador de pacotes ==
== Gerenciador de pacotes ==

O gerenciamento dos pacotes são feitos por softwares capazes de ler as informações que contém em um pacote, executar os procedimentos descritos nele para a instalação, realizar a remoção e atualização do pacote[5]. Ou seja, os pacotes são montados para facilitar o uso dos usuários em momentos de instalação, atualização e remoção de programas e softwares e os gerênciadores de pacotes que implementam e disponibilizam essa facilidade de uso.

=== Softwares gerênciadores de pacotes ===

A impressão que se tem é que os gerenciadores de pacotes são somente para sistemas operacionais, porém além dos que são feitos especialmente para distribuições linux, há também a iniciativa de produzir um gerenciador de pacote para o windows como disponível no link [[https://technet.microsoft.com/pt-br/library/cc748979(v=ws.10).aspx]] e para os sistemas da empresa Aple [[https://www.macports.org/]].

Além disso, os gerênciadores de pacotes são utilizados para gerenciar dependências durante o desenvolvimento de um software, no qual a comunidade da linguagem produz códigos fontes que são recorrentemente utilizados durante as implementações e produzem bibliotecas e as distribuem no formato de pacotes e para alguns softwares como é o caso do vim, como exemplo tem-se:
* gems[[https://en.wikipedia.org/wiki/RubyGems]]
* os pypi[[https://pypi.python.org/pypi]]
* packgist [[https://packagist.org/]]
* npm[[https://www.npmjs.com/]]
* bower[[https://bower.io/]]
* vundle [[https://github.com/VundleVim/Vundle.vim]]

=== DPKG ===

Para os sistemas operacionais GNU/linux baseados na distribuição do Debian, tem-se o gerenciador de pacotes chamado dpkg no qual processa os pacotes binários ou com código fonte no formato '''.deb''' [5].

O dpkg é o comando usado para manipular os pacotes debian ('''.deb'''), entretanto ele é limitado no sentido de que somente faz a leitura das informações do pacotes passado a ele por linha de comando e dos que já estão instalados no Sistema Operacional, ou seja a lista de outros pacotes disponíveis nos repositórios não são visíveis a ele [5]. Dessa forma, é uma desvantagem o fato de que, se durante a instalação de um pacote uma das dependências desse software não estiver disponível na máquina, a instalação dará erro e será impossível completa-la sem a instalação manual da dependência.

==== Instalação de pacotes ====
==== Informações de pacotes ====
==== Removendo pacotes ====
=== APT ===

Como o dpkg é um software relativamente limitado e não tão fácil de usar para novos usuários que não possuem muito conhecimento de GNU/linux, foi desenvolvido um outro software que fornece uma interface de uso via terminal mais agradável e que conecta-se aos repositórios em busca de dependências não encontradas na máquina. Assim, o apt é um produto que faz uso do gerenciador de pacotes dpkg e provê ainda mais recursos para gerênciar os pacotes.

==== Instalando pacotes ====

Para fazer a instalação de pacotes, não é necessário ter todas as dependências já instaladas, pois o apt irá buscar nos repositórios as dependências que faltam.

Antes de executar a instalação é importante fazer a sincronização com os repositórios:
<pre>
$ sudo apt-get update
> Atingido:1 http://security.ubuntu.com/ubuntu xenial-security InRelease
> Atingido:2 http://br.archive.ubuntu.com/ubuntu xenial InRelease
> Atingido:3 http://br.archive.ubuntu.com/ubuntu xenial-updates InRelease
> Atingido:4 http://br.archive.ubuntu.com/ubuntu xenial-backports InRelease
> Trabalhando [0%]
> Lendo listas de pacotes... 98%
> Lendo listas de pacotes... Pronto
</pre>


== Referências ==
== Referências ==


[1] OPENSUSE, Gerenciamento de pacotes. <https://pt.opensuse.org/Gerenciamento_de_pacotes>
[1] OPENSUSE, Gerenciamento de pacotes. Disponível em: https://pt.opensuse.org/Gerenciamento_de_pacotes. Acessado em: 19 de Agosto de 2016.

[2] SILVA, Gustavo Noronha. Como usar o APT. Agosto de 2005, disponível em: https://www.debian.org/doc/manuals/apt-howto/apt-howto.pt_BR.pdf

[3] FERREIRA, Rubem E., Gerenciamento de Pacotes de Software no Linux, 02 de Junho de 2008. disponível em: http://www.martinsfontespaulista.com.br/anexos/produtos/capitulos/222719.pdf


[4] Debian: Arquivos sources.list, disponível em: http://www.tutoriaisti.com.br/sistemas-operacionais/linux/debian-arquivos-sources-list/. Acessado em: 27 de Agosto de 2016.
[2] SILVA, Gustavo Noronha. Como usar o APT. Agosto de 2005, <https://www.debian.org/doc/manuals/apt-howto/apt-howto.pt_BR.pdf>


[5] HERTZOG, Raphaë. MAS, Roland. Debian 8 - O Manual do Administrador Debian - Debian Jessie, da Descoberta à Maestria. Edição 1. ISBN: 979-10-91414-10-4. Disponível em: https://debian-handbook.info/browse/pt-BR/stable/
[3] FERREIRA, Rubem E., Gerenciamento de Pacotes de Software no Linux, 02 de Junho de 2008. http://www.martinsfontespaulista.com.br/anexos/produtos/capitulos/222719.pdf
[4] http://www.tutoriaisti.com.br/sistemas-operacionais/linux/debian-arquivos-sources-list/

Revisão das 01h52min de 4 de setembro de 2016

  • Marcelo H. P. Ferreira
  • Mateus Furquim

Introdução

Pacote

Um pacote de software, em geral compactados, contém todos os arquivos binários, shell scripts, de configuração, de dados, de documentação para a sua correta instalação. Além dos arquivos, ele possui as informações de instalação, configuração, manutenção e remoção do software [3].

Benefícios

  • Facilitam a instalação de aplicativos, programas;
  • Contém todas as dependências necessárias;
  • Fácil desinstalação;
  • Bom para usuários leigos;
  • Agiliza instalação dos softwares.

Malefícios

  • Depende de outros usuários empacotarem;
  • Pode demorar a ser empacotado;
  • Pode ser complexo empacotar;
  • Pacotes que tenham as mesmas dependências, mas com versões diferentes.

Dependências

Para um simples programa ser executado, muitas vezes é necessário apenas os arquivos binários que a própria linguagem fornece. Quando o programa começa a ficar mais complexo, ou quando é um software, é utilizado código fonte de outros programas além do fornecido pela própria biblioteca nativa da linguagem usada [1].

As dependências de um programa ou software, são todos os recursos necessários para sua correta compilação e execução. O próprio pacote define quais são os outros pacotes o qual ele possui dependência, dessa forma, o usuário fará a instalação somente por pacotes.

Exemplo: dependências no gerenciador de pacotes debian.

# apt install openstack
Lendo listas de pacotes... Pronto
Construindo árvore de dependências       
Lendo informação de estado... Pronto
The following additional packages will be installed:
  conjure-up distro-info ieee-data jq juju juju-2.0 liblxc1 libonig2 lxc-common lxcfs lxd lxd-client python3-appdirs python3-bson python3-bson-ext python3-cinderclient
Pacotes sugeridos:
  shunit2 juju-core criu lxd-tools python-cliff-doc python-configobj-doc python-debtcollector-doc python-glanceclient-doc python3-pykde4 python-keystoneauth1-doc
Os NOVOS pacotes a seguir serão instalados:
  conjure-up distro-info ieee-data jq juju juju-2.0 liblxc1 libonig2 lxc-common lxcfs lxd lxd-client openstack python3-appdirs python3-bson python3-bson-ext

Repositório de pacotes

Repositórios de pacotes são locais em que os pacotes dos softwares ficam armazenados e disponíveis para serem baixados por um gerênciador de pacotes. Repositórios remotos, em geral, são servidores de arquivos conectados a rede configurado para disponibilizar os pacotes por meio dos protocolos FTP ou HTTP. Há também os repositórios locais, configurados na própria máquina utilizados com o mesmo propósito com os repositórios remotos: prover os pacotes para atualizar, instalar pacotes. Diferentemente dos remotos, este é para fazer atualizações na própria máquina [3].

Nas distribuições debian, pode ser encontrado um arquivo com a lista de repositórios utilizados pelo gerenciador de pacotes apt.

$ cat /etc/apt/sources.list
> deb http://br.archive.ubuntu.com/ubuntu/ trusty main 
> deb-src http://br.archive.ubuntu.com/ubuntu/ trusty main

Pode-se perceber que a estrutura do pacote no arquivo source.list é organizado, no qual o deb ou deb-src indicam se os pacotes são o código fonte ou binário. Em seguida é o protocolo seguido do nome do domínio onde estão os pacotes. O treceiro argumento é uma referência ao codinome da versão da distribuição utilizada (e.g. Ubuntu trusty). O último argumento trata da licença dos pacotes, main é a distribuição oficial, contrib é livrimente distribuído, non-free é de distribuição restrita [4].

Gerenciador de pacotes

O gerenciamento dos pacotes são feitos por softwares capazes de ler as informações que contém em um pacote, executar os procedimentos descritos nele para a instalação, realizar a remoção e atualização do pacote[5]. Ou seja, os pacotes são montados para facilitar o uso dos usuários em momentos de instalação, atualização e remoção de programas e softwares e os gerênciadores de pacotes que implementam e disponibilizam essa facilidade de uso.

Softwares gerênciadores de pacotes

A impressão que se tem é que os gerenciadores de pacotes são somente para sistemas operacionais, porém além dos que são feitos especialmente para distribuições linux, há também a iniciativa de produzir um gerenciador de pacote para o windows como disponível no link [[1]] e para os sistemas da empresa Aple [[2]].

Além disso, os gerênciadores de pacotes são utilizados para gerenciar dependências durante o desenvolvimento de um software, no qual a comunidade da linguagem produz códigos fontes que são recorrentemente utilizados durante as implementações e produzem bibliotecas e as distribuem no formato de pacotes e para alguns softwares como é o caso do vim, como exemplo tem-se:

DPKG

Para os sistemas operacionais GNU/linux baseados na distribuição do Debian, tem-se o gerenciador de pacotes chamado dpkg no qual processa os pacotes binários ou com código fonte no formato .deb [5].

O dpkg é o comando usado para manipular os pacotes debian (.deb), entretanto ele é limitado no sentido de que somente faz a leitura das informações do pacotes passado a ele por linha de comando e dos que já estão instalados no Sistema Operacional, ou seja a lista de outros pacotes disponíveis nos repositórios não são visíveis a ele [5]. Dessa forma, é uma desvantagem o fato de que, se durante a instalação de um pacote uma das dependências desse software não estiver disponível na máquina, a instalação dará erro e será impossível completa-la sem a instalação manual da dependência.

Instalação de pacotes

Informações de pacotes

Removendo pacotes

APT

Como o dpkg é um software relativamente limitado e não tão fácil de usar para novos usuários que não possuem muito conhecimento de GNU/linux, foi desenvolvido um outro software que fornece uma interface de uso via terminal mais agradável e que conecta-se aos repositórios em busca de dependências não encontradas na máquina. Assim, o apt é um produto que faz uso do gerenciador de pacotes dpkg e provê ainda mais recursos para gerênciar os pacotes.

Instalando pacotes

Para fazer a instalação de pacotes, não é necessário ter todas as dependências já instaladas, pois o apt irá buscar nos repositórios as dependências que faltam.

Antes de executar a instalação é importante fazer a sincronização com os repositórios:

$ sudo apt-get update
> Atingido:1 http://security.ubuntu.com/ubuntu xenial-security InRelease
> Atingido:2 http://br.archive.ubuntu.com/ubuntu xenial InRelease
> Atingido:3 http://br.archive.ubuntu.com/ubuntu xenial-updates InRelease
> Atingido:4 http://br.archive.ubuntu.com/ubuntu xenial-backports InRelease
> Trabalhando [0%]
> Lendo listas de pacotes... 98%
> Lendo listas de pacotes... Pronto

Referências

[1] OPENSUSE, Gerenciamento de pacotes. Disponível em: https://pt.opensuse.org/Gerenciamento_de_pacotes. Acessado em: 19 de Agosto de 2016.

[2] SILVA, Gustavo Noronha. Como usar o APT. Agosto de 2005, disponível em: https://www.debian.org/doc/manuals/apt-howto/apt-howto.pt_BR.pdf

[3] FERREIRA, Rubem E., Gerenciamento de Pacotes de Software no Linux, 02 de Junho de 2008. disponível em: http://www.martinsfontespaulista.com.br/anexos/produtos/capitulos/222719.pdf

[4] Debian: Arquivos sources.list, disponível em: http://www.tutoriaisti.com.br/sistemas-operacionais/linux/debian-arquivos-sources-list/. Acessado em: 27 de Agosto de 2016.

[5] HERTZOG, Raphaë. MAS, Roland. Debian 8 - O Manual do Administrador Debian - Debian Jessie, da Descoberta à Maestria. Edição 1. ISBN: 979-10-91414-10-4. Disponível em: https://debian-handbook.info/browse/pt-BR/stable/