빌드하지 않고 최신 릴리스의 패키지 설치 (apt pinning)


34

우분투 / natty를 위해 백 업 된 최신 업스트림 버전의 패키지가 필요합니다.

  • libccid_1.4.5-0ubuntu1_amd64.deb
  • libpcsclite1_1.8.1-0ubuntu1_amd64.deb
  • libpcsclite-dev_1.8.1-0ubuntu1_amd64.deb
  • libusb-1.0-0_1.0.9-0ubuntu1_amd64.deb
  • libusb-1.0-0-dev_1.0.9-0ubuntu1_amd64.deb
  • opensc_0.12.2-1 우분투 1ppa1 ~ natty1_amd64.deb
  • pcscd_1.8.1-0ubuntu1_amd64.deb pcsc-tools_1.4.18-0ubuntu1_amd64.deb

업데이트로 소스에서 빌드하려고 시도했지만 실패했습니다. 나는 포장 전문가가 아니며 많은 자습서와 요리법이 있습니다.

Ubuntu 패키지 백 포트에 대한 최신 자습서를 알고 있습니까?

직접 배포하지 않고 다른 릴리스에서 패키지를 얻는 방법은 무엇입니까?

답변:


36

적절한 피닝을 탐색하는 것이 훨씬 좋습니다 man apt_preferences.

Oneiric을 사용 중이고 Precise에서 해당 패키지를 가져오고 싶다고 가정 해 봅시다.

을 읽으면 man관련 섹션을 복사 / 붙여 넣기하고 릴리스 이름을 수정 한 것을 볼 수 있습니다

/etc/apt/preferences:

Package: libccid
Pin: release n=precise
Pin-Priority: 990

Package: libpcsclite*
Pin: release n=precise
Pin-Priority: 990

Package: libusb*
Pin: release n=precise
Pin-Priority: 990

Package: opensc
Pin: release n=precise
Pin-Priority: 990

Package: pcscd
Pin: release n=precise
Pin-Priority: 990


Explanation: Uninstall or do not install any Ubuntu-originated
Explanation: package versions other than those in the oneiric release
Package: *
Pin: release n=oneiric
Pin-Priority: 900

Package: *
Pin: release o=Ubuntu
Pin-Priority: -10

그런 다음 필자는 필자 /etc/apt/sources.list에게 복사 하여 /etc/apt/sources.list.d/precise.list모든 oneiric 항목을 정확한 것으로 바꿨습니다. 그런 다음 apt-get update마침내 실행했습니다 apt-get upgrade.

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  libpcsclite1 libusb-0.1-4 libusb-1.0-0 libusbmuxd1
4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 86.0 kB of archives.
After this operation, 88.1 kB disk space will be freed.
Do you want to continue [Y/n]? y
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-0.1-4 amd64 2:0.1.12-20 [17.6 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-1.0-0 amd64 2:1.0.9~rc3-2 [30.9 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ precise/main libpcsclite1 amd64 1.7.4-2ubuntu1 [23.5 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu/ precise/main libusbmuxd1 amd64 1.0.7-2 [14.1 kB]
 Fetched 86.0 kB in 0s (124 kB/s) 

어떤 이유로 pcscd와 opensc가 설치되지 않았을 것입니다.

apt-get install opensc pcscd -t precise

의 사용에주의하십시오 -t, packagename/precise또한 작동합니다.

최신 릴리스부터 원하는 패키지가 있으며 해당 패키지 자동으로 업데이트됩니다. 더 이상 원하지 않으면 항목을 삭제 /etc/apt/preferences하면 다음에 실행할 apt-get upgrade때 항목 이 제거됩니다. 전체 prefs 파일을 제거하면 해당 precise.list소스 파일도 삭제해야 합니다. 시스템에서 최신 패키지 세트로 업데이트하려고합니다. 또한 나중에 dist-upgrade하기로 결정한 경우 전체 prefs 파일을 제거해야하며 다른 소스를 제거하는 것이 좋습니다. 업데이트 할 패키지가 없습니다.

적절한 고정은 어렵지 않습니다. 조금만 파고 실험하면됩니다. n=etc에 대한 모든 동사는 검사하여 찾을 수 apt-cache policy있습니다.

이것이 노련한 관리자가 apt와 yum에 대해 열광하고 격찬하는 이유입니다. 서비스를 간결하게 업데이트하고 깨끗하고 결정적이며 유지 관리 가능한 방식으로 최신 상태로 유지할 수 있습니다.

더 이상 컴파일 패키지가 없습니다.

이 제안을 계속하기 전에 전체 매뉴얼 페이지를 읽고 개념에 익숙해지고 적절한 피닝에 대한 다른 가이드를 읽으십시오. 행운을 빌고 재미있게 보내!

https://help.ubuntu.com/community/PinningHowto


이것은 훌륭한 답변이지만 나에게는 그렇지 않습니다. 이미 고정을 알고 있지만 일부 패키지는 최신 버전이 아니며 일부 버그 (opensc)가 있습니다. 정말 최신 소스를 갖고 싶습니다.
Janning February

그런 다음 실제로 개발 모드에 있습니다. UDD 안내서를 참조하십시오. developer.ubuntu.com/packaging/html/getting-set-up.html을 참조하십시오 . 일단 패키지를 빌드하면 패치를 제출하고 결국 로컬로 빌드 한 패키지를 제거 할 수 있습니다. PPA를 사용하면 도움이되지만 포장 기본 사항을 먼저 내려야하거나 10 분 동안 빌드 실수를 저지르고 PPA에서 deb를 삭제하고 반복 헹구는 것을 기다릴 것입니다. 이전 답변 협동 조합을 새로운 PPA와 함께 사용하여 해당 패키지가 -updates를 찾을 때까지 기준선보다 우선 순위를 갖도록 할 수 있습니다.
ppetraki


이 방법을 사용하면 동일한 패키지의 amd64 및 i386 버전을 어떻게 선호합니까?
qed
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.