EDITAR - INTRODUÇÃO:
Estou fazendo esta pergunta para entender o comportamento do APT, que deveria ter mudado muito desde então. Não estou tentando instalar esses pacotes antigos no meu sistema atual.
- Estou ciente de que Gazebo Classic <11 é EOL
- Estou ciente de que Ubuntu (LTS) <22.04 (Focal Fossa) e Ubuntu <23.10 (Mantic Minotaur) são EOL
- Estou ciente de que os pacotes empacotados para uma versão podem ter conflitos de dependência com pacotes de outras versões
Se você verificar o tutorial de instalação do Gazebo 3.0 , ele diz que o Gazebo 3.0 pode ser instalado na versão Ubuntu Raring Ringtail.
Mas se você olhar dists/raring/main/binary-AMD64/ , o Packages
arquivo tem 0 bytes.
Então, de alguma forma, recorremos ao pacote disponível no Precise Pangolin. Mas não consigo descobrir como isso acontece. Não deveríamos ter que adicionar manualmente o precise
repositório em Raring se precisarmos usá-lo?
O comando usado é sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu raring main" > /etc/apt/sources.list.d/gazebo-latest.list'
, então ele está apenas olhando o raring
repositório.
O pacote gazebo3
foi empacotado apenas para Precise Pangolin e Trusty Tahr (as instruções não o listavam) e definitivamente deveria estar usando a versão do Precise, porque Trusty é mais recente.
Outro exemplo:
De acordo com o tutorial de instalação do Gazebo 2.2 , ele diz que o Gazebo 2.2 pode ser instalado em todas as versões, do Precise ao Trusty.
Diz que Precise to Roaring deve ser usado gazebo-current
e Saucy e Trusty devem ser usados gazebo2
.
Se você verificar pool/main/g/gazebo-current/ , gazebo-current
(v2.2.5) ele é empacotado apenas para precise
e da mesma forma, pool/main/g/gazebo2/ , gazebo2
(v2.2.6) é empacotado apenas para trusty
.
Portanto, neste caso, Quantal Quetzel e Raring Ringtail estão voltando para Precise Pangolin, enquanto Saucy Salamander está avançando para Trusty Tahr.
E como no caso anterior, o arquivo Packages
em e tem 0 bytes. Não se trata nem de eles serem LTS. Yakkety Yak e Zesty Zapus possuem arquivos não vazios e listam pacotes Gazebo que também estão disponíveis em pool/main/g/ ( para Yakkety e e para Zesty).quantal
raring
saucy
Packages
gazebo8
gazebo7
gazebo8
Como o gerenciador de pacotes sabe qual pacote usar? Nem parece haver um formato padrão, como voltar a versões anteriores. Como estamos especificando o codinome da versão e não o número da versão, o APT não deveria nem ser capaz de deduzir que existem versões mais antigas ou mais recentes das quais extrair.
As instruções posteriores apenas dizem sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable 'lsb_release -cs' main" > /etc/apt/sources.list.d/gazebo-stable.list'
, então qualquer que seja o lançamento, será especificado em sources.list.d
. Faria sentido se apenas as versões para as quais foi empacotado pudessem instalá-lo. Mas esse não é o caso aqui.
Então, minha pergunta é: como esses Packages
arquivos de 0 bytes funcionam com consultas APT? Como o APT escolhe outra versão quando encontra repositórios como esses?
O arquivo dists/raring/Release também mostra que Packages
tem 0 bytes, portanto não é uma instância de um repositório quebrado como mencionado aqui .
Os repositórios listados não estão "quebrados".
Esses repositórios antigos foram fechados e os pacotes neles contidos foram retirados.
Esses repositórios antigos não podem ser usados. Erros do Apt ao tentar usá-los são um comportamento esperado.
Versões do Ubuntu anteriores a 18.04 não são mais suportadas e esses repositórios estão fechados (exceção: Pro/esm).
O Apt não " escolhe outro lançamento "; ele usará apenas a versão especificada em suas fontes do apt. Não sabe sobre nenhum outro lançamento.