
안녕하세요 여러분 새해 복 많이 받으세요..
최근에 나는 debian 백포트 소스에서 nginx deb 패키지 v1.4.4를 만들었고 물론 apt source.list에 추가했고 모든 것이 잘 진행되었습니다.
내 질문:공식 소스에서 개인적으로 만든 패키지를 데비안에서 자동으로 업데이트하나요? 보안 업데이트를 의미합니다.
업데이트:
apt-get update
나는 오늘 debian 7 apt가 어떻게 작동하는지 확인하기 위해 실행했습니다 apt-get -V upgrade
. 그리고 이것이 내가 얻은 것입니다:
root@debian-lab:~/nginx-1.4.4-packages# apt-get -V upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
nginx-full (1.4.4-1~bpo70+1 => 1.4.4-1~bpo70+1)
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/464 kB of archives.
After this operation, 9,027 kB disk space will be freed.
Do you want to continue [Y/n]?
보시다시피, apt는 다음에서 업그레이드하려고 합니다.(1.4.4-1~bpo70+1 => 1.4.4-1~bpo70+1)기본적으로 두 개의 동일한 버전이지만 설치된 deb 패키지에는 기본 nginx-full에 사용자 정의 nginx 모듈이 추가되어 있으며 업데이트 후 내 사용자 정의 모듈은 모두 사라지고 표준 debian wheezy 백포트 deb로 대체되었습니다.. nginx를 구축했습니다. debian backport 소스의 backport deb 패키지와 backport를 통해 build-deb도 설치했지만 일부 종속 항목은 stable에서 자동으로 설치되었으며 이는 자세한 출력에서 본 것입니다.
예를 들어 이 문제를 방지하도록 도와주실 수 있나요?
업데이트
패키지를 적절하게 고정하려고 시도했지만 작동하지 않았으며 여기에 내가 얻은 출력이 있습니다.
apt-cache policy nginx-full
nginx-full:
Installed: 1.4.4-1~bpo70+1
Candidate: 1.4.4-1~bpo70+1
Version table:
1.4.4-1~bpo70+1 0
100 http://ftp.uk.debian.org/debian/ wheezy-backports/main amd64 Packages
*** 1.4.4-1~bpo70+1 0
100 /var/lib/dpkg/status
1.2.1-2.2+wheezy2 0
500 http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packages
500 http://security.debian.org/ wheezy/updates/main amd64 Packages
다음은 apt-cache 정책 nginx입니다.
/etc/apt/preferences.d# apt-cache policy nginx
nginx:
Installed: 1.4.4-1~bpo70+1
Candidate: 1.4.4-1~bpo70+1
Package pin: 1.4.4-1~bpo70+1
Version table:
*** 1.4.4-1~bpo70+1 1001
100 http://ftp.uk.debian.org/debian/ wheezy-backports/main amd64 Packages
100 /var/lib/dpkg/status
1.2.1-2.2+wheezy2 1001
500 http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packages
500 http://security.debian.org/ wheezy/updates/main amd64 Packages
하지만 여전히 APT는 업그레이드하고 교체하려고 합니다!!
Sources.list 콘텐츠:
deb http://ftp.uk.debian.org/debian/ wheezy main
deb-src http://ftp.uk.debian.org/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
# wheezy-updates, previously known as 'volatile'
deb http://ftp.uk.debian.org/debian/ wheezy-updates main
deb-src http://ftp.uk.debian.org/debian/ wheezy-updates main
# Wheezy Backports repository
deb http://ftp.uk.debian.org/debian wheezy-backports main
deb-src http://ftp.uk.debian.org/debian wheezy-backports main
패키지 이름이 'nginx'인 경우와 nginx-full을 사용한 경우에 한 번은 적절한 고정을 시도했습니다.
하지만 둘 다 패키지를 잡지 못했습니다!!!
답변1
패키지 버전을 올려보시는 걸 추천드립니다. APT는 두 패키지가 동일하지 않다는 것을 알고 신뢰할 수 있는 소스에서 패키지를 설치하려고 합니다. dch -i
필요한 것은 전부입니다. 간단한 설명을 추가하고 패키지를 다시 빌드하기만 하면 됩니다.
패키지를 다르게 고정할 수도 있습니다.
Package: nginx-full
Pin: origin ""
Pin-Priority: 999
이렇게 하면 로컬에 설치된 패키지에 더 많은 우선 순위가 부여됩니다.
저장소 버전 문자열이 현재 설치된 버전을 대체하고 고정이 없는 경우그리고일부 버전이 출시됩니다. 예, 올바른 소스가 있는 경우 apt는 리포지토리에서 패키지를 설치합니다(이미 적용된 패치와 함께).
답변2
패키지를 고정하면 apt-get은 패키지 업그레이드를 시도하지 않습니다.
패키지를 고정하려면 /etc/apt/preferences.d에 파일을 생성합니다(예: /etc/apt/preferences.d/nginx).
이것을 파일에 넣으십시오 :
Package: nginx
Pin: version 1.4.4-1~bpo70+1
Pin-Priority: 1001