문제는 다음과 같습니다. 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
우분투 저장소의 경우,
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" 항목을 찾으세요.