パッケージの特定のソースに適切なリポジトリを指定する

パッケージの特定のソースに適切なリポジトリを指定する

Debian では、sidWeb サービスをインストールするためにnodejsNodeJS リポジトリを追加し、パッケージをインストールするスクリプトを実行しました。 NodeJSリポジトリのバージョンではなく、パッケージaptのDebianバージョンが8.11.2~dfsg-1何らかの理由で含まれていないため、問題が解決されました。不足しているスクリプトは、インストール後に予想される外観を混乱させます。npm8.11.2-1nodesource1npmnodejs

手動で問題を解決しましたが、apt install nodejs=8.11.2-1nodesource1一時的な回避策です。バージョンに関係なく、特定のリポジトリを優先するようにスクリプトに割り当てる方法はありますか?

編集する

# 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

答え1

バージョンに関係なく、特定のリポジトリを優先するようにスクリプトに割り当てる方法はありますか?

origin名前を使用する代わりに、「外部ソース」に高い優先順位割り当てオプションを使用して外部ソースを固定する必要がありますrelease

はい、g:次の行を次の行に追加します/etc/apt/preferences.d/preferences

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

なるでしょうapt-cache policy nodejs

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

パッケージは次の場所からインストールnodejsされます。nodsource.comapt install nodejs

通常、(インストールスクリプトを使用して)nodejsソースを追加すると、完全なパッケージ名を追加したり、事前準備された方法を使用せずにパッケージがインストールされnodejsます。 (これは問題になる可能性があります。nodesource.comaptここに報告してください)。

パッケージが複数のリポジトリ(debianリポジトリと外部リポジトリ)で利用可能な場合は、debianリリースタグを使用してパッケージをインストールできます。Debian リポジトリnodejs問題が解決したと仮定すると、1001debian Sidからパッケージをインストールする必要があります。

apt install nodejs/unstable

適切な好み

編集する

このパッケージはnodejs990に固定され、debianリポジトリからインストールされます。ファイルから nodejs を削除し、preferences次を実行します。

apt update
apt install nodejs

nodejsパッケージはnodesourceリポジトリからインストールする必要があります。

関連情報