Listar vários repositórios em sources.list.d?

4

Posso adicionar vários repositórios alternativos a um arquivo *.list em /etc/apt/sources.list.d , para que, para um pacote especificado, se o primeiro repositório não estiver disponível, apt-get tentará baixar o mesmo pacote do próximo repositório em a lista?

Por exemplo, posso criar um arquivo chamado /etc/apt/sources.list.d/games.list com o seguinte conteúdo? ...

deb http://archive.getdeb.net/ubuntu trusty-getdeb apps
deb http://mirrors.dotsrc.org/getdeb/ubuntu trusty-getdeb games

... para que, se http://archive.getdeb.net/ubuntu estiver inativo, apt-get tente automaticamente http://mirrors.dotsrc.org/getdeb/ubuntu ?

    
por PJ Singh 27.09.2014 / 03:57

1 resposta

4

Acredito que respondi à minha própria pergunta:

O comportamento do apt-get com sources.list.d é recuperar pacotes do primeiro repositório disponível listado em um dado arquivo *.list .

O repositório archive.getdeb.net/ubuntu estava convenientemente desativado hoje, por isso consegui realizar a seguinte experiência para validar isto:

  1. Eu criei um arquivo chamado /etc/apt/sources.list.d/games.list com o seguinte conteúdo:

    deb http://archive.getdeb.net/ubuntu trusty-getdeb apps
    
  2. Em seguida, ressincronizei os arquivos de índice de pacote das origens:

    $ sudo apt-get update | grep getdeb
    Hit http://archive.getdeb.net trusty-getdeb InRelease
    Hit http://archive.getdeb.net trusty-getdeb/apps amd64 Packages
    Hit http://archive.getdeb.net trusty-getdeb/apps i386 Packages
    Ign http://archive.getdeb.net trusty-getdeb/apps Translation-en_US
    Ign http://archive.getdeb.net trusty-getdeb/apps Translation-en
    

    Notei que o apt-get avisou que estava ignorando ( Ign ) o repositório. Isso ocorre porque o apt-get recebeu uma mensagem 404 de que a URL não estava disponível.

  3. A tentativa de simular a instalação de um pacote deste repositório mostrou que o repositório não estava realmente disponível.

    $ sudo apt-get -s install warsow
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package warsow
    
  4. Em seguida, editei /etc/apt/sources.list.d/games.list , adicionando um repositório espelho que contém os mesmos pacotes:

    deb http://archive.getdeb.net/ubuntu trusty-getdeb apps
    deb http://mirrors.dotsrc.org/getdeb/ubuntu trusty-getdeb games
    
  5. Como antes, sincronizei novamente os arquivos de índice de pacote das origens:

    $ sudo apt-get update | grep getdeb
    Get:1 http://mirrors.dotsrc.org trusty-getdeb InRelease [8,131 B]
    Hit http://archive.getdeb.net trusty-getdeb InRelease
    Get:2 http://mirrors.dotsrc.org trusty-getdeb/games amd64 Packages [69.8 kB]
    Hit http://archive.getdeb.net trusty-getdeb/apps amd64 Packages
    Hit http://archive.getdeb.net trusty-getdeb/apps i386 Packages
    Get:3 http://mirrors.dotsrc.org trusty-getdeb/games i386 Packages [71.5 kB]
    Ign http://archive.getdeb.net trusty-getdeb/apps Translation-en_US
    Ign http://archive.getdeb.net trusty-getdeb/apps Translation-en
    Ign http://mirrors.dotsrc.org trusty-getdeb/games Translation-en_US
    Ign http://mirrors.dotsrc.org trusty-getdeb/games Translation-en
    

    Surpreendentemente, o apt-get alertou que estava ignorando ambos os repositórios!

    Uma pequena pesquisa na Internet revelou que o apt-get exibe um aviso Ign se um repositório não estiver disponível ou se uma tradução do pacote não estiver disponível. No caso de mirrors.dotsrc.org , o repositório estava ativo, mas o apt-get solicitava uma tradução do inglês para o inglês, o que obviamente não existe. Portanto, a mensagem Ign para o novo repositório não foi um erro, afinal.

  6. Quando eu tentei simular a instalação do mesmo pacote de antes, com ambos repositórios em /etc/apt/sources.list.d/games.list , o apt-get achou o pacote.

    $ sudo apt-get -s install warsow
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following extra packages will be installed:
      warsow-data
    The following NEW packages will be installed:
      warsow warsow-data
    0 upgraded, 2 newly installed, 0 to remove and 24 not upgraded.
    Inst warsow-data (1.51-1~getdeb2 GetDeb:14.04/trusty-getdeb [all])
    Inst warsow (1.51-1~getdeb1 GetDeb:14.04/trusty-getdeb [amd64])
    Conf warsow-data (1.51-1~getdeb2 GetDeb:14.04/trusty-getdeb [all])
    Conf warsow (1.51-1~getdeb1 GetDeb:14.04/trusty-getdeb [amd64])
    
  7. Portanto, o comportamento do apt-get com sources.list.d é recuperar pacotes do primeiro repositório disponível listado em um determinado arquivo *.list .

por PJ Singh 01.10.2014 / 16:54