주목! 학업과 관련된 업무에 대한 질문입니다. 선생님은 이 작업에 대한 해결책이 없을 수도 있지만 패키지 관리 방법을 배우려면 모든 노력을 기울여야 한다고 말씀하셨습니다. 즉, "해결책이 없습니다"라고 대답하지 마십시오. 해결 방법이 없다면 이유를 알려주시고, 절반 정도 해결 방법이 있으면 알려주시기 바랍니다.
읽어 주셔서 감사합니다
장면 설명
내 가상 머신은 Debian 10을 실행하고 있으며 그 안에 /etc/apt/sources.list
Buster 및 SID 버전용 저장소가 있습니다.
여기 내 것이 있어요sources.list
#
# deb cdrom:[Debian GNU/Linux 10.0.0 _Buster_ - Official amd64 NETINST 20190706-10:23]/ buster main
#deb cdrom:[Debian GNU/Linux 10.0.0 _Buster_ - Official amd64 NETINST 20190706-10:23]/ buster main
deb http://deb.debian.org/debian buster main
deb-src http://deb.debian.org/debian buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
#SID repos
deb http://deb.debian.org/debian sid main
deb-src http://deb.debian.org/debian sid main
둘째, 내 /etc/apt/preferences.d
디렉토리에는 이라는 디렉토리가 있습니다 sid_priority
. 다음은 그 내용입니다.
Package: *
Pin: release a=sid
Pin-Priority: -1
이 파일에 대한 몇 가지 설명
이 파일은 모든 sid 패키지의 우선순위를 -1로 낮추기 위한 것입니다. 따라서 실행하면 sudo apt update
결국 sudo apt upgrade
Buster 패키지만 설치하고 업그레이드하게 됩니다. sid 저장소는 수동 설치 및 업그레이드(예: 실행)에만 사용됩니다. sudo apt install
(또한 패키지 우선 순위가 어떻게 작동하는지 거의 모르고 인터넷을 조금 본 것 뿐이며 기본 사항의 기본만 이해할 수 있습니다. ).
나는 무엇을 성취하고 싶은가?
기본적으로 Buster 저장소를 통해서만 설치하고 업그레이드하고 싶습니다. 즉, sudo apt update' or
sudo apt update , I'm not going to install any sid packages. I'll just install sid packages if I run
sudo apt install을 실행하면 `
나에게 무슨 일이 일어났는가
우선 순위가 유효하다고 생각했지만 실행을 통해 sudo apt upgrade
결국 sid 패킷을 받게 되었습니다. 다음 예를 볼 수 있습니다.
libc6:
Installed: 2.29-2
Candidate: 2.29-2
Version table:
*** 2.29-2 500
500 http://deb.debian.org/debian sid/main amd64 Packages
100 /var/lib/dpkg/status
2.28-10 500
500 http://deb.debian.org/debian buster/main amd64 Packages
그런데, 여러분이 원하는 것이 무엇이든 제안하는 것을 두려워하지 마십시오. 왜냐하면 저는 가상 머신으로 작업하고 있고 이 작업을 위해 특별히 가상 머신을 사용하고 있기 때문입니다. 삭제해야 한다면 삭제하겠습니다.
당신의 도움을 주셔서 감사합니다
답변1
매뉴얼 페이지의 첫 번째 예는 귀하의 질문에 대한 답변입니다.
추적이 안정적입니다.
다음 APT 환경 설정 파일은 APT가 안정적인 배포판에 속하는 모든 패키지 버전에 기본값(500)보다 높은 우선 순위를 할당하고 다른 Debian 배포판에 속하는 패키지 버전에는 매우 낮은 우선 순위를 할당하도록 합니다.
설명: 안정 릴리스 이외의 Debian 파생 패키지 버전을 제거하거나 설치하지 않습니다.
Package: * Pin: release a=stable Pin-Priority: 900 Package: * Pin: release o=Debian Pin-Priority: -10
당신은 sid_preference
다음과 같아야합니다 :
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -1
확인하다:
sudo apt update
apt policy libc6
예제 출력:
libc6:
Installed: 2.28-10
Candidate: 2.28-10
Version table:
2.29-2 -1
-1 http://deb.debian.org/debian sid/main amd64 Packages
*** 2.28-10 900
900 http://deb.debian.org/debian buster/main amd64 Packages
100 /var/lib/dpkg/status
man apt_preferences
:
the Origin: line
names the originator of the packages in the directory tree of
the Release file. Most commonly, this is Debian. Specifying this
origin in the APT preferences file would require the line:
Pin: release o=Debian
답변2
버전 기반 핀 구성에서 (키트 일치) 또는 (코드 이름 일치)를 사용하십시오 a=unstable
. 아무것도 일치하지 않습니다. 을 참조하십시오.n=sid
a=sid
man apt_preferences