Especifique um repositório apt específico para o pacote

0

No Debian sid , para instalar um serviço da web, executei um script que adicionou o repositório NodeJS e instalei nodejs package. O problema é apt resolveu para a versão do pacote do Debian 8.11.2~dfsg-1 , que não inclui npm por algum motivo, ao invés da versão do repo do NodeJS 8.11.2-1nodesource1 . A falta de npm atrapalhou o script que esperava que estivesse presente após a instalação de nodejs .

Eu resolvi manualmente fazendo apt install nodejs=8.11.2-1nodesource1 , mas essa é uma solução temporária. Existe uma maneira que eu possa especificar no meu script para preferir um repositório específico, independentemente da versão?

EDITAR

# apt policy nodejs
nodejs:
  Installed: 8.11.2-1nodesource1
  Candidate: 8.11.2-1nodesource1
  Version table:
 *** 8.11.2-1nodesource1 500
        500 https://deb.nodesource.com/node_8.x sid/main arm64 Packages
        100 /var/lib/dpkg/status
     8.11.2~dfsg-1 990
        990 http://deb.debian.org/debian unstable/main arm64 Packages
    
por Oxwivi 06.06.2018 / 11:12

1 resposta

1

Is there a way I can specify on my script to prefer particular repository regardless of version?

Você deve fixar a fonte externa usando a opção origin para atribuir uma alta prioridade a "fonte externa" em vez de usar o nome release .

e, g: Adicione as seguintes linhas ao seu /etc/apt/preferences.d/preferences :

Package: *
Pin: origin deb.nodesource.com
Pin-Priority: 1001

O apt-cache policy nodejs será:

Candidate: 8.11.2-1nodesource1

Version table:
     8.11.2-1nodesource1 1001
       1001 https://deb.nodesource.com/node_8.x sid/main amd64 Packages
     8.11.2~dfsg-1 500
        500 http://deb.debian.org/debian sid/main amd64 Packages

O pacote nodejs será instalado de nodsource.com a apt install nodejs

Geralmente, se você adicionar a fonte nodejs (usando o script de configuração), o pacote nodejs será instalado a partir de nodesource.com sem adicionar o nome completo do pacote a apt ou usando o modo de fixação. (pode ser um problema e você pode reportá-lo aqui ).

Se o pacote estiver disponível em múltiplos repositórios (repositório debian e repositório externo) você pode usar a tag de lançamento debian para instalar o pacote do repositório debian . digamos que o nodejs esteja fixado em 1001 e você precise instalar o pacote do debian Sid:

apt install nodejs/unstable

AptPreferenecs

Editar

O pacote nodejs está fixado em 990 e será instalado a partir do repositório debian. remova o nodejs do seu arquivo preferences e execute:

apt update
apt install nodejs

O pacote nodejs deve ser instalado a partir do repositório nodesource.

    
por 06.06.2018 / 13:55