Você provavelmente está familiarizado com o conceito de gerenciadores de pacotes e repositórios.
Um repositório é basicamente um servidor web que possui pacotes (software). O gerenciador de pacotes obtém esses pacotes dos repositórios.
Como o gerenciador de pacotes apt sabe o endereço dos repositórios? A resposta é o arquivo sources.list
.
O que o sources.list
faz?
É basicamente um arquivo de texto que contém os detalhes do repositório. Cada linha não comentada representa um repositório separado.
As linhas seguem um formato específico, no entanto. Geralmente é composto por isto:
tipo-de-archive url-do-repositório distribução componente
Talvez não seja fácil de entender. Vamos dar uma olhada em uma das linhas reais:
deb http://archive.ubuntu.com/ubuntu kinetic main restricted
O tipo de arquivo é deb
aqui, o que significa que você receberá pacotes de deb
pré-compilados. Outro tipo de arquivo é o deb-src
, que fornece o código-fonte real, mas geralmente é comentado (não usado pelo sistema) porque um usuário comum não precisa do código-fonte de um aplicativo. O arquivo deb permite que você instale o pacote.
O URL do repositório é http://archive.ubuntu.com/ubuntu
. Na verdade, você pode visitar esse URL e ver várias pastas disponíveis (que contêm os detalhes do pacote).
Em seguida, a distribuição é kinetic
. No repositório real, ele é representado comodists. É porque existem várias categorias de repositórios, como kinetic-security
(para pacotes de segurança), kinetic-backports
(para pacotes backported) etc. É por isso que não é apenas o nome da distribuição.
Então, você pode ir para este URL http://archive.ubuntu.com/ubuntu/dists/ e ver que kinetic (codinome para Ubuntu 22.10) é uma das pastas disponíveis entre muitas outras opções aqui.
O componente é um dos cinco tipos de repositórios padrão do Ubuntu.
Você pode combinar mais de um (se disponível) na mesma linha, na verdade. Em vez de escrever duas linhas como esta:
deb http://archive.ubuntu.com/ubuntu kinetic main
deb http://archive.ubuntu.com/ubuntu kinetic restricted
Você escreve dois deles juntos assim:
deb http://archive.ubuntu.com/ubuntu kinetic main restricted
Isso significa que quando você tem um detalhe do repositório como deb http://archive.ubuntu.com/ubuntu kinetic main
no sources.list, ele obtém detalhes de pacotes de software armazenados em http://archive.ubuntu.com/ubuntu/dists/impish/main/
O codinome da distribuição é importante
Isso soa interessante? Aposto que sim.
Agora imagine se alguém está usando uma versão antiga e não suportada do Ubuntu como o Ubuntu 20.10 codinome Groovy Gorilla.
O arquivo sources.list conterá URL do repositório, como deb http://archive.ubuntu.com/ubuntu groovy main
. E então isso se torna problemático porque se você visitar http://archive.ubuntu.com/ubuntu/dists
URL, você não encontrará a pasta groovy aqui. Como o Ubuntu 20.10 não é mais mantido, sua pasta foi removida.
Como resultado, o Ubuntu mostrará um erro como 'arquivo de lançamento não encontrado' ou 'erro 404 repositório não encontrado'.
arquivo sources.list
e diretório sources.list.d
Se você olhar para o diretório /etc/apt
, notará um diretório chamado sources.list.d
.
A ideia é que o arquivo sources.list primário seja para os repositórios oficiais do Ubuntu e para quaisquer repositórios externos e PPA, você adicione um arquivo .list
(com os detalhes do repositório) neste diretório sources.list.d
.
Isso facilita o gerenciamento dos repositórios, pois você não atrapalha os repositórios padrão. Os repositórios externos podem ser facilmente desativados (adicionando # na frente dos detalhes do repositório) ou removidos (removendo seu arquivo .list
correspondente).
Você pode usar a ferramenta gráfica Programas e atualizações
para a mesma finalidade se você usar o Ubuntu desktop. As entradas na guia 'Ubuntu Software' vêm do arquivo sources.list
e as entradas na guia Outros programas
vêm dos arquivos no diretório sources.list.d
.
O próximo passo
Isso está claro até agora? Você aprendeu muitas coisas "por trás das cortinas".
Se as entradas em sources.list
estiverem incorretas ou duplicadas, seu sistema lançará erros quando você tentar atualizar seu sistema Ubuntu.
Como você está familiarizado com o conceito de gerenciamento de pacotes, repositório e sources.list, entender a causa raiz e corrigir os erros comuns de atualização no Ubuntu torna-se uma tarefa mais fácil. Você também terá uma melhor compreensão de como repositórios externos funcionam.
Ainda tem dúvidas ou perguntas? Por favor, deixe um comentário abaixo.