Vamos ter uma idéia básica de como o repositório é mantido no Ubuntu e na distribuição geral do Linux. As distribuições Ubuntu e Linux usam o repositório para fornecer software, que são instaladas instalando um ou mais pacotes.
Alguma terminologia
Software: Podemos dizer que um software é um programa ou um conjunto de programas que satisfazem uma necessidade ou objetivo. Tal como "Cheese" é um software, que é usado para tirar fotos, gravar vídeos, etc.
Pacote: Um pacote é a menor unidade de software, que é distribuída pela distribuição do Ubuntu. Um pacote pode ser um software completo ou parte de um software. Um software consiste em zero ou mais pacotes.
Package-list: O Ubuntu ou, em geral, as distribuições Linux usam a package-list, que contém informações sobre os pacotes disponíveis. Essas listas são armazenadas on-line, recuperadas pelo software Gerenciamento de pacotes , como apt-get
, aptitude
, synaptic
ou o centro de software do Ubuntu no seu computador. Depois que essas listas forem baixadas no seu computador, o software de gerenciamento de pacotes (como o apt-get) saberá quais pacotes estão disponíveis online no repositório.
Repositório: Um repositório é o nome do armazenamento online, que contém pacotes, lista de pacotes e informações de verificação de pacotes. Por vezes, estas também são referidas como fontes de pacotes .
sources.list : este arquivo armazena informações sobre repositórios ativados. Está localizado no diretório /etc/apt
no sistema Ubuntu. Você pode visualizar o conteúdo desse arquivo acessando a pasta /etc/apt
e clicando duas vezes no arquivo sources.list
. Observe também que, algumas linhas de repositório também são armazenadas em arquivos no diretório /etc/apt/sources.list.d
. Os arquivos que contêm a linha de repositório nesse diretório precisam ter as extensões .list
. apt-get
e outros softwares de gerenciamento de pacotes reconhecem as linhas de repositório nesse diretório também.
Linha de repositório: A linha de repositório se refere ao formato de cada linha (não comentada) no arquivo sources.list
. Também chamado de linha de origem ou linha de repo .
Pacote fonte: Não confunda com a fonte do pacote, que se refere a um repositório contendo pacotes. O pacote fonte é o pacote contendo códigos fonte que podem ser compilados para obter programas binários reais, que podem então ser executados e, portanto, executados.
O formato correto da linha de origem do repositório é
<type of repository> <location i.e URI> <dist-name> <components>
Por exemplo, uma linha de recompra pode ser como esta
deb http://archive.ubuntu.com/ubuntu precise main
Aqui, isso significa que o repositório é para pacotes binários, que estão hospedados no link e este repositório é para O Ubuntu precisa (12.04) e este repositório contém o componente principal (software oficialmente suportado pela Canonical).
-
Tipo: deb
é o tipo de repositório, indica que é um repositório binário, não um repositório de origem, que possui o tipo deb-scr
. O repositório binário contém pacotes compilados, ao contrário do repositório de origem que contém pacotes de código-fonte.
-
Localização: http://archive.ubuntu.com/ubuntu
localização do repositório.
-
Nome-dist: precise
é o nome da distribuição do lançamento do Ubuntu. Para o Ubuntu 12.04 é precise
, 11.10 é oneiric
.
-
Componente: main
está indicando o componente do repositório. O repositório do Ubuntu está dividido em quatro partes.
-
Principal - Que contém software gratuito e de código aberto, oficialmente suportado
-
Universe - Estes softwares não são suportados pela Canonical, mas são mantidos pela comunidade.
-
Restricted - Esses softwares são suportados pela Canonical, mas não são gratuitos. Estes são suportados para fornecer alguns drivers essenciais
-
Multiverse - Estes também são softwares não-livres e não são suportados pela Canonical.
Veja esta página para mais informações.
Explicação dos comandos
-
sudo apt-get update
Este comando verifica se o seu sistema tem uma lista de pacotes atualizada e se não recupera os arquivos da lista de pacotes armazenados no repositório on-line. Por exemplo, se o arquivo sources.list
contiver linhas como essa deb http://archive.ubuntu.com/ubuntu precise main
, ele verificará seu sistema se você tem a lista de pacotes (de pacotes binários) para o componente principal. Se achar que você não tem a lista ou sua lista está desatualizada, ela buscará a lista do repositório.
Se você estiver realmente interessado em ver a lista de pacotes armazenada em seu sistema Ubuntu, vá para o diretório /var/lib/apt/lists
para vê-los. A lista de pacotes é armazenada após a busca.
Observação: pode haver muitos métodos para buscar essa lista, que estão além do escopo desta resposta.
-
sudo apt-get upgrade
Este comando faz o download e instala a versão atualizada dos pacotes. Este comando não faz o download e instala os pacotes se você já os instalou. Além disso, não remove nenhum pacote. Portanto, se uma atualização de um pacote X
exigir a remoção do pacote Y
, esse comando não atualizará o pacote X
.
-
apt-add-repository
Este comando é usado para adicionar um repositório em seu sistema. Adicionando um repositório significa, adicionando a capacidade de instalar pacotes de uma certa fonte online, não instalando todos os pacotes de lá.
Este comando precisa da linha de origem do repositório ou de links PPA.
Para adicionar um repositório regular: use sudo apt-add-repository <repo-line>
como sudo apt-add-repository deb http://archive.ubuntu.com/ubuntu precise universe
Para adicionar um repsitory do PPA: use sudo apt-add-repository PPA-Name
como sudo apt-add-repository ppa:gwibber-daily/ppa
Observação 1: lembre-se de que você pode usar o comando apt-add-repository
ou add-apt-repository
.
Nota 2: Adicionar PPA com este comando, na verdade, verifica Launchpad.net site para a existência desse PPA e cria um arquivo no diretório /etc/apt/sources.list.d
com o nome do PPA contendo o formato padrão da linha de repositório.
Da Wikipedia:
O Launchpad é um aplicativo da web e website que permite aos usuários desenvolver e manter software, especialmente software livre. O Launchpad é desenvolvido e mantido pela Canonical Ltd.
E é a mesma Canonical Ltd, que é patrocinadora oficial do Ubuntu.
Notas sobre o repositório PPA: Você deve ter notado que, se você adicionar um PPA, a linha de origem do repositório não será copiada no arquivo /etc/apt/sources.list
. Então, para onde eles vão?
Essas linhas vão para um arquivo no diretório /etc/apt/sources.list.d
e o arquivo é salvo com este formato: <PPA-name>-<dist-name>.list
. (O formato do nome do arquivo nem sempre pode seguir a regra acima nesse diretório para alguns PPAs)
Por exemplo, se você usar PPA:gwibber-daily/ppa
, um arquivo será criado com o nome gwibber-daily-ppa-precise.list
, que conterá a linha de repositório no formato padrão.
O conteúdo do arquivo no meu Ubuntu é -
deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu precise main
deb-src http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu precise main
Você notou que esse comando adicionou uma linha de reporte no formato padrão. Além disso, ativou automaticamente o repositório para pacotes de origem. (Observe a linha que começa com deb-src
indicando um repositório de pacotes de código-fonte)
Essa conversão do nome do PPA para a linha de repositório é feita por apt-add-repository
e não é nenhuma surpresa, porque a Launchpad.net é de propriedade da Canonical Ltd, que também é a patrocinadora do Ubuntu.