問題は次のとおりです。 apt-cacher-ngを使用するノードがたくさんあります。すべての適切なURLの形式は次のとおりです。
deb http://192.168.1.2:3142/archive.ubuntu.com/ubuntu/ jammy-updates main restricted
deb [arch=amd64] http://192.168.1.2:3142/HTTPS///packages.microsoft.com/ubuntu/22.04/prod jammy main
deb http://192.168.1.2:3142/HTTPS///developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /
APTのデフォルト設定を次のように設定しても効果はありません。たとえば、ディレクトリ内のファイルの次の内容/etc/apt/preferences.d
Package: dotnet* aspnet* netstandard*
Pin: origin *microsoft.com
Pin-Priority: 500
Package: dotnet* aspnet* netstandard*
Pin: origin *ubuntu.com
Pin-Priority: 1
apt-cacher-ngを使用するときにAPT設定をどのように設定する必要がありますか?Pin: origin
うまくいかないので、これを達成するには別のトリックが必要です。合理的な検索では見つかりません。
たとえば、UbuntuとMicrosoftのdotnetパッケージとNVidiaとUbuntuのnvidia CUDAパッケージは、最上位レベルで同様の名前を持ちますが、依存関係名が異なるため、混合時にSDKを使用できないため、デフォルト設定が必要です。キャッシュを使用する理由は明らかです。これは、更新を受信するためのネットワークトラフィックがN倍少ないためです。
答え1
サーバーアドレスで固定するのではなく、各ストレージに含まれている情報を利用して固定することができます。特に、各リポジトリのファイルで「Origin」フィールドを使用できますRelease
。
Pin: release o=Ubuntu
Ubuntuリポジトリの場合、
Pin: release o=microsoft-ubuntu-jammy-prod
Microsoft リポジトリの場合
Pin: release o=NVIDIA
NVIDIAリポジトリの場合。
使用する値を決定するには、関連Release
ファイル(例えば https://packages.microsoft.com/ubuntu/22.04/prod/dists/jammy/Release)ファイルの上部にある「Origin」エントリを見つけます。