Restaurar repositórios apt padrão em sources.list na linha de comando

14

Estou procurando o melhor método para restaurar /etc/apt/sources.list para o padrão na linha de comando.

Não há como referenciar o código-fonte do pacote que gera este arquivo ou algo assim? Eu quero uma maneira confiável e independente de versão de restaurar esse arquivo.

Soluções descartadas

Antes de marcar isso como uma duplicata, observe que eu revi esta pergunta já. Só é aplicável se você tiver a GUI do Ubuntu disponível. Esta questão é específica para a linha de comando.

Eu também revisei esta questão onde a solução aceita é alguém colou o conteúdo do seu arquivo sources.list . Esta não é uma maneira apropriada de restaurar o arquivo, pois as intenções da pessoa que fornece o conteúdo do arquivo não podem ser verificadas e o arquivo está sujeito a alterações com novas versões.

Eu verifiquei o gerador em simplelinux.ch , mas isso também não é do Ubuntu, então eu não pretendo usá-lo.

    
por Ryan Burnette 17.02.2015 / 19:01

2 respostas

17

Não sei o que você quer, mas:

  • O repositório pai é sempre link - todo o resto é um espelho disso. Todos os outros espelhos principais têm um domínio no formato <cctld>.archive.ubuntu.com , em que o código curto de dois caracteres é o País Domínio de nível superior de código . Você pode encontrar espelhos adicionais com seu status em Launchpad .
  • O codinome da distribuição faz parte do canal (o terceiro termo). Você pode usar lsb_release -sc para descobrir isso, e é a primeira palavra do nome bonito do lançamento em letras minúsculas ( trusty para Trusty Tahr, por exemplo).
  • Existem cinco canais: <codename> , <codename>-security , <codename>-updates , <codename>-backports e <codename>-proposed . A primeira é necessária, pois é a base, a segunda é altamente recomendada, pois contém correções de segurança, a quarta apenas se você precisar de algum pacote backported de uma versão mais recente e a quinta apenas se um desenvolvedor solicitar que você a habilite para testar uma possível consertar.
  • Existem quatro seções de repositório: main , multiverse , universe e restricted ( Qual é a diferença entre multiverso , universo, restrito e principal? )

Assim, você sempre pode criar um sources.list seguro, contendo apenas:

deb http://archive.ubuntu.com/ubuntu <codename> main multiverse universe restricted
deb http://archive.ubuntu.com/ubuntu <codename>-security main multiverse universe restricted

Se você quiser um comando para fazer isso:

printf 'deb http://archive.ubuntu.com/ubuntu %s main multiverse universe restricted\n' $(lsb_release -sc){,-security} > /etc/apt/sources.list

Além da lista do Launchpad, a lista fornecida pelo programa Software Sources é de /usr/share/python-apt/templates/Ubuntu.mirrors , que é do pacote python-apt-common . Este pacote é apenas uma indireta Sugestões de apt , por isso pode não estar instalado por padrão em um servidor.

    
por muru 17.02.2015 / 19:20
6

Se você entende o que cada linha representa em /etc/apt/sources.list , você pode gerar sua própria lista. Por exemplo, uma linha no meu sources.list é,

deb http://archive.ubuntu.com/ubuntu/ trusty main

Tem 4 secções:

  • Seção 1: A primeira seção é deb , o que significa que é um repositório de todos os pacotes binários. somente outro valor possível é deb-src , o que significa que é um repositório de códigos-fonte.
  • Seção 2: Esta seção contém o URI do repositório ( link neste caso). O URI pode variar para espelhos, e. Se você quiser usar o espelho oficial dos EUA, o URI será link .
  • Seção 3: Ele contém o codinome (e nome do canal) da versão que você está usando, neste caso trusty , que é o codinome da minha versão do Ubuntu (14.04 LTS). você pode encontrar o seu por lsb_release -sc . Por exemplo, se você estiver usando 12.04, o codinome será "preciso". Agora, para declarar outros canais, por exemplo Para declarar o canal de segurança, você precisa usar trusty-security .

  • Seção 4: Esta seção contém "nomes de seção" do repositório. Geralmente, há quatro nomes de seção usados: main , restricted , universe , multiverse . Você pode colocar todos os nomes de seção na mesma linha de declaração de um repositório ou você pode usar linhas diferentes para cada uma das seções, mas não deve haver nenhuma entrada duplicada. Se você ler o /etc/apt/sources.list , verá a descrição dos pacotes que cada uma dessas seções contém.

por heemayl 17.02.2015 / 19:28