Introdução aos Pacotes - Linux
No Linux, programas e outros softwares geralmente são distribuídos em forma de pacotes. Por padrão, uma distribuição Linux pode conter muitos pacotes, representando diferentes aplicações ou bibliotecas. Alguns pacotes podem precisar ser instalados manualmente.
Existem principalmente dois formatos de pacotes no mundo Linux: rpm e deb. O RPM (Red Hat Package Manager) foi criado pela Red Hat e atualmente é utilizado por várias distribuições, como Red Hat e derivados (por exemplo, Fedora) e também SUSE. O RPM utiliza pacotes com a extensão .rpm
google-chrome-stable_current_x86_64.rpm
Outro formato popular de pacote é o .deb
.deb
Os pacotes contendo programas e bibliotecas podem ser distribuídos separadamente. Por exemplo, podemos visitar o site de uma empresa que fornece software para Linux e baixar o pacote necessário. O Google, por exemplo, oferece o navegador Google Chrome nos formatos .deb (para Debian/Ubuntu) e .rpm
Gerenciamento de Pacotes .deb
No sistema Ubuntu, a lista de todos os repositórios de pacotes é armazenada no arquivo /etc/apt/sources.list
É importante diferenciar as várias categorias de pacotes usadas pelo Ubuntu, o que pode indicar o status atual do pacote, como se é considerado seguro ou se sua licença não atende aos padrões comuns de software de código aberto. As categorias de pacotes incluem:
: software oficialmente suportado pela Canonical (desenvolvedora do Ubuntu). Geralmente, esse é o software mais estável e suportado.Main
: principalmente software suportado que possui algumas restrições de licença e, consequentemente, de uso. Por exemplo, drivers para certos componentes de hardware que usam um acordo de licença específico, ou software que precisa ser comprado.Restricted
: software gratuito que não é oficialmente suportado. Você pode usá-lo, e ele provavelmente funcionará sem problemas, mas você não receberá suporte da Canonical para os componentes de software desta categoria.Universe
: software não suportado que está sujeito a restrições de licença e não é considerado gratuito.Multiverse
: software mais recente que pode ser instável.Backports
Por exemplo, o arquivo /etc/apt/sources.list
programicio@Programicio:~$ cat /etc/apt/sources.list # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://pt.archive.ubuntu.com/ubuntu/ mantic main restricted # deb-src http://pt.archive.ubuntu.com/ubuntu/ mantic main restricted ...
Todas as linhas do arquivo sources.list
deb
deb-src
A seguir, é mencionado o URI, que geralmente é o URL do repositório. Depois, vem o nome da distribuição, por exemplo, mantic
Se for necessário usar outros repositórios não listados no arquivo sources.list, eles podem ser adicionados no final do arquivo, em um formato semelhante.
Para o gerenciamento de pacotes deb em Debian, pode ser usada a ferramenta dpkg
apt
apt
/var/lib/apt
A ferramenta apt
: exibe pacotes com base no nome do pacote.list
: busca um pacote por expressão regular.search
: mostra informações sobre o pacote.show
: atualiza a lista de pacotes disponíveis para instalação. Este comando pode ser usado para garantir que você tenha a versão mais recente de um pacote.update
: atualiza os pacotes para a última versão.upgrade
: instala pacotes.install
: remove pacotes.remove
Consultando Informações sobre Pacotes
Comando search
O comando search
programicio@Programicio:~$ sudo apt search python3.12 Sorting... Done Full Text Search... Done idle-python3.12/mantic 3.12.0-1 all IDE for Python (v3.12) using Tkinter libpython3.12/mantic 3.12.0-1 amd64 Shared Python runtime library (version 3.12) # e mais resultados...
Essa busca retorna vários pacotes associados à versão 3.12 do Python, incluindo bibliotecas, ferramentas de desenvolvimento, e a própria instalação do Python.
Comando show
O comando show
programicio@Programicio:~$ sudo apt show python3.12 Package: python3.12 Architecture: amd64 Version: 3.12.0-1 Multi-Arch: allowed Priority: optional Section: universe/python Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Matthias Klose <doko@debian.org> Depends: python3.12-minimal (= 3.12.0-1), libpython3.12-stdlib (= 3.12.0-1), media-types | mime-support, tzdata ...
Essa informação é crucial para entender as dependências do pacote, sua origem, e outros metadados importantes.
Verificando pacotes instalados
Para ver todos os pacotes instalados no sistema, usamos o comando dpkg -l
programicio@Programicio:~$ dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version +++-==============================================-============================ ii accountsservice 23.13.9-2ubuntu2 ii acl 2.3.1-3 ...
Esta lista mostra todos os pacotes juntamente com seu status de instalação, o que é útil para gerenciamento de sistema e resolução de problemas.
Instalando e Removendo Pacotes
Antes de instalar qualquer pacote, é recomendável usar o comando update
programicio@Programicio:~$ sudo apt update # Saída do comando com a atualização das listas de pacotes
Para instalar pacotes, utilizamos o comando install
programicio@Programicio:~$ sudo apt install python3.12 Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: python3.12 0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded. Need to get 629 kB of archives. After this operation, 730 kB of additional disk space will be used. ...
Para remover pacotes, usamos o comando remove
sudo apt remove python3.12 # Saída do comando indicando a remoção do pacote