빌드하지 않고 최신 릴리스의 패키지 설치 (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.