apt vs. apt-get: Qual é a diferença no Linux?
Você deve usar apt ou apt-get no Linux?
Principais conclusões
- apt-get e apt são ferramentas do sistema de gerenciamento de pacotes Debian.
- apt-get é uma interface completa para o dpkg, enquanto apt é uma versão um pouco simplificada, mas mais amigável do apt-get.
- apt e apt-get têm alguns comandos comuns, como instalar, remover, limpar, atualizar, atualizar e remover automaticamente, mas o apt também inclui comandos adicionais como pesquisar, mostrar, listar e editar fontes.
Por que as distribuições Linux baseadas em Debian têm apt
e também apt-get
? O apt
substituiu o apt-get
ou eles têm finalidades diferentes? Explicamos a relação entre esses dois comandos.
O sistema de gerenciamento de pacotes Debian
Um grande esforço na criação de uma distribuição Linux é projetar e criar um sistema de gerenciamento de pacotes. Seus usuários precisam ter uma maneira de instalar e desinstalar pacotes de software. Isso requer software para recuperar os arquivos do pacote do seu repositório de software e instalá-los corretamente nos computadores dos usuários.
Este não é um empreendimento pequeno. Mesmo deixando a engenharia de software de lado, hospedar os repositórios de software leva tempo, esforço e despesas. Essa é uma das razões pelas quais tantas “novas” distribuições Linux são derivações de uma distribuição Linux existente.
Isto leva a famílias ou genealogias de distribuições Linux, como as distribuições baseadas em Debian, as distribuições baseadas em Red Hat, as distribuições baseadas em Arch e assim por diante.
A família de distribuições Debian — incluindo Ubuntu e todas as distribuições derivadas do Ubuntu — usa o Gerenciador de Pacotes Debian. Isso usa arquivos de pacote com a extensão de arquivo “.deb”, conhecidos como arquivos DEB. Arquivos DEB são arquivos compactados que contêm outros arquivos compactados. Os arquivos compactados contêm os arquivos executáveis, páginas de manual, bibliotecas do aplicativo e assim por diante.
Instalar o software a partir de um arquivo DEB significa descompactar todos esses arquivos componentes e colocá-los nos locais corretos em seu computador. Também requer interação com o sistema operacional e o ambiente de área de trabalho para que o aplicativo apareça nas pesquisas de aplicativos e seu ícone possa ser adicionado aos docks ou menus do sistema.
Os comandos apt-get
e apt
fazem isso. Mas por que temos dois comandos para a mesma coisa?
A Cadeia de Comando
O pacote que realmente realiza a instalação é chamado dpkg
. Na verdade, é uma família de comandos que inclui dpkg-split
, dpkg-trigger
e dpkg-divert
. Eles são chamados, se e conforme necessário, pelas ferramentas do conjunto Advanced Package Tool, ou APT. APT é outra coleção de ferramentas, incluindo apt-get
, apt-cache
e apt
.
O comando dpkg
é considerado um comando de baixo nível. Além da mais simples das interações, torna-se muito complicado com muitas opções. O comando apt-get
atua como um front end para o conjunto de comandos dpkg
. Isto simplifica consideravelmente as coisas. apt-get
foi projetado como um comando voltado para o usuário e não como um comando em segundo plano de baixo nível. Mesmo assim, apesar de seu papel voltado para humanos, outro comando chamado apt-cache
foi usado para exibir informações ao usuário.
O comando apt
fornece outra maneira de "conversar" com o dpkg
através de uma ferramenta de linha de comando mais acessível e fácil de usar. Ele fornece um subconjunto de recursos do apt-get
, mas é um subconjunto grande e fornece todos os recursos comumente usados e também inclui funcionalidades do apt-cache
.
O Linux Mint precisa de uma menção especial aqui. Os mantenedores do Linux Mint desenvolveram sua própria versão do apt
, que é um wrapper Python para o apt-get
. Não é desse apt
que estamos falando aqui. Estamos nos referindo ao Debian apt
mainstream, que foi lançado em 2014 e ganhou atenção e tração no verso do usuário quando foi incluído no Ubuntu 16.04 em 2016.
As diferenças entre apt e apt-get
Portanto, dpkg
é o aplicativo em segundo plano de baixo nível. O comando apt-get
é uma interface completa, mas simplificada para dpkg
, e apt
é mais amigável, mas um pouco despojado versão do apt-get
.
Mas apt-get
e apt
fornecem mais do que apenas uma interface fácil para dpkg
. Eles fazem coisas que o dpkg
não faz. Eles recuperarão arquivos dos repositórios e tentarão ajudar com dependências e conflitos ausentes.
Por sua vez, o comando apt
faz algumas coisas que apt-get
não faz. Ele fornece mais informações do tipo que o usuário médio deseja ver durante uma instalação e suprime algumas das informações mais obscuras que o apt-get
exibe. apt
fornece feedback visual superior e usa destaques coloridos e barras de progresso na janela do terminal.
Existem alguns comandos comuns entre apt
e apt-get
. Todos esses comandos podem ser precedidos por apt
ou apt-get
e se comportarão da mesma forma:
- instalar nomedopacote: instala um pacote.
- remover nomedopacote: Remove (desinstala) um pacote.
- purgepackagename: remove um pacote e seus arquivos de configuração.
- update packagename: Atualize as informações do repositório.
- upgrade: Atualize todos os pacotes.
- autoremove: Remove bibliotecas e outros pacotes que não são mais necessários.
A opção apt full-upgrade
substitui a opção apt-get dist-upgrade
.
Estes são os novos comandos para apt
:
- apt search: Pesquise o nome de um pacote nos repositórios. Isto é o mesmo que
apt-cache search
- apt show: Mostra informações sobre um pacote. É o mesmo que
apt-cache show
. - opção apt list: Mostra listas de pacotes instalados ou atualizáveis.
- apt edit-sources: edita diretamente a lista de repositórios onde o
apt
procura pacotes.
Instalando um aplicativo com Apt
Você pode usar apt search
para ver se existe um pacote nos repositórios ou para verificar se você tem o nome correto para o pacote. Digamos que você queira instalar o Scribus, mas não sabe o nome do pacote. Você pode tentar procurar por scribus-desktop
.
apt search scribus-desktop
Essa pesquisa não encontrou nada. Tentaremos novamente com uma pista de pesquisa mais curta e genérica.
apt search scribus
Isso retorna vários resultados, e podemos ver que existe um chamado "scribus" e que certamente parece ser o pacote principal do aplicativo de editoração eletrônica Scribus. O comando apt show
nos dará mais detalhes.
apt show scribus
Obtemos um monte de informações sobre o pacote, incluindo o que será instalado e uma descrição do software.
Também sugere outros pacotes que podem ser necessários, dependendo de nossas necessidades.
Para instalar o pacote precisamos usar sudo
.
sudo apt install scribus
Os arquivos são recuperados dos repositórios. O arquivo que está sendo recuperado está destacado em marrom.
Quando os arquivos forem recuperados, eles serão instalados. O progresso da instalação é mostrado como uma porcentagem exibida em dígitos e como uma barra de progresso.
Outros comandos
Os comandos apt list
e apt edit-sources
são opções em apt
que não existem em apt-get
.
O comando apt list
pode ser usado com as opções --installed
ou --upgradeable
para ver os pacotes instalados em seu computador e quais poderiam ser atualizados.
Para ver a lista de aplicativos instalados em seu computador, use:
apt list --installed
Percorrendo a saída, podemos ver duas entradas para nosso aplicativo Scribus recém-instalado.
Para ver se algum dos aplicativos instalados pode ser atualizado, use a opção --upgradeable
.
apt list --upgradeable
O comando apt
também fornece uma maneira de editar as informações armazenadas sobre os repositórios que o apt
procura por pacotes. Só faça isso se você souber o que está fazendo.
sudo apt edit-sources
Este comando abre seu editor padrão e carrega o arquivo que contém as informações do repositório.
Devo usar o apt ou o apt-get?
O comando apt-get
não é atualizado com frequência, e isso é bom. Tem que manter a compatibilidade com versões anteriores. A compatibilidade com versões anteriores não é uma preocupação para o apt
. É considerado e tratado como um comando voltado para o usuário.
Para uso diário, use apt
.
Se você criar scripts relacionados à instalação do pacote, use apt-get
. Isso lhe dá a maior chance de portabilidade e compatibilidade em seus scripts.