Restaurar repositórios apt padrão no sources.list a partir da linha de comando

17

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

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

Soluções excluídas

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

Também revisei essa pergunta em que a solução aceita é alguém colou o conteúdo do sources.listarquivo. Essa 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 as novas versões.

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

Ryan Burnette
fonte

Respostas:

20

Não tenho certeza do que você deseja, mas:

  • O repositório pai é sempre http://archive.ubuntu.com/ubuntu - tudo o resto é um espelho disso. Os outros espelhos principais têm um domínio no formato <cctld>.archive.ubuntu.com, onde o código curto de dois caracteres é o domínio de nível superior do código do país . Você pode encontrar espelhos adicionais com seus status no Launchpad .
  • O codinome de distribuição faz parte do canal (o terceiro termo). Você pode lsb_release -scdescobrir isso, e é a primeira palavra do nome bonito do lançamento em letras minúsculas ( trustypara Trusty Tahr, por exemplo).
  • Há cinco canais: <codename>, <codename>-security, <codename>-updates, <codename>-backportse <codename>-proposed. O primeiro é necessário, pois é a base, o segundo é altamente recomendado, pois contém correções de segurança, o quarto apenas se você precisar de algum pacote suportado de uma versão mais recente e o quinto apenas se um desenvolvedor solicitar que você o habilite para testar uma possível consertar.
  • Há quatro seções do repositório: main, multiverse, universee restricted( Qual é a diferença entre o multiverso, universo, restrito e principal? )

Assim, você sempre pode criar um cofre sources.listque contenha 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ê deseja 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 da Barra de ativação, a lista fornecida pelo programa Software Sources é de /usr/share/python-apt/templates/Ubuntu.mirrors, que é do python-apt-commonpacote. Este pacote é apenas uma dependência indireta de Suggestsapt , portanto, pode não ser instalado por padrão em um servidor.

muru
fonte
Era exatamente sobre isso que eu queria esclarecimentos. Obrigado!
Ryan Burnette
estas respostas perfeitamente para mensagens boths (a ligada e este)
Brian Thomas
Mas você ainda teria que validar esta resposta com a documentação no próprio site do Ubuntu, pois não pode verificar as intenções da pessoa que está fornecendo essa resposta?
Herbert Van-Vliet
7

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

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

Possui 4 seções:

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

  • Seção 4: Esta seção contém "nomes de seção" do repositório. Normalmente existem 4 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 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.

heemail
fonte