Gerenciamento de pacotes: diferenças entre revisões
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. |
[1] OPENSUSE, Gerenciamento de pacotes. Disponível em: https://pt.opensuse.org/Gerenciamento_de_pacotes. Acessado em: 19 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/ |
|||
⚫ | |||
⚫ |
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/