설치된 패키지 버전을 위조하는 방법?


23

얼리 어답터이기 때문에 일일 빌드 11.04를 사용하면 일부 패키지에 내가 설치 한 것보다 이전 버전의 다른 패키지가 필요한 경우가 있습니다. 필요한 패키지의 최신 (그러나 거부 된) 버전은 이전 버전의 모든 기능을 제공합니다.

내가 사용하는 경우 dpkg -i --force-depends-version종속 패키지 모든 작업의 벌금을 설치, 내가 문제를 본 적이 없습니다.

모든 패키지를 수동으로 다운로드하여 설치하는 대신 최신 버전이있을 때 시스템에 특정 패키지 버전이 설치되어 있다고 가정 할 수 있습니까? 아니면 --force-depends-version동등한 키가 apt-get있습니까?

답변:


16

equivs 장비 설치 패키지를 사용하여 설치중인 주어진 패키지를 가짜로 만드는 더미 패키지를 만들 수 있습니다 . 여기에 몇 가지 지침이 있습니다 .


이것으로 충분합니다. 그러나 링크가 조만간 끊어 질 수 있습니다. 답변 내에서 최소한 교육을 재개하는 것이 좋습니다. 내 대답은 여기에 도움이 될 수 있습니다 askubuntu.com/a/1181415/26246 . 따라서 우리는 동등성과 관련하여 더 높은 표를 얻은이 질문을 참조 할 수 있습니다.
user.dz

23

이미 받아 들여진 답변에도 불구하고 수락 된 내용을 더 잘 설명하면 다음과 같은 과정이 전달됩니다.

  1. equivs더미 패키지를 생성 할 수 있는 데비안 패키지 가 있습니다. 다음을 실행하여 설치하십시오.sudo apt-get install -y equivs

  2. 설치되면 다음 명령을 사용하여 템플릿 "control"파일을 생성합니다 equivs-control postfix( postfix패키지 이름으로 대체 ). 필자의 경우 다른 패키지 이름, 예를 들어 postfix-custom사용자 정의 패키지가 충족하거나 Provides설치 종속성을 충족시키는 다른 패키지 이름을 사용할 수 있습니다 postfix(다시 postfix원하는 패키지로 교체) .

  3. 템플릿 제어 파일이 생성되면 일반적으로 주석 처리 된 많은 명령문 (로 시작하는 명령문)을 제거합니다 #. 내가 특별히 유지하기 위해 좋아하는 하나는 것입니다 Provides:내 패키지 내가 예를 들어, 가짜 시도하고있는 다른 패키지가 제공하는 기능을 제공한다고 말할 수있는 문 Provides: postfix데비안 / 우분투 의존성 해결 메커니즘을 지시를 내 패키지의 어떤 이름 - 그 대상 패키지와 동일한 기능을 다시 제공합니다 postfix. 이를 통해 혼동을 피하기 위해 대상 패키지와 독립적으로 패키지 이름을 지정할 수 있습니다. Erlang Factory는이를 esl-erlang제공 erlang합니다 ( 예 : offers) .

  4. 마지막으로 템플릿 제어 파일이 equivs-build생성되면 가짜 패키지를 생성하는 데 사용 됩니다 (예 :) equivs-build /path/to/generated/control/file.

  5. 패키지를 빌드하는 데 몇 초가 걸리며 실행할 수 있습니다 sudo dpkg -i my_package_name*.deb

고급 사용자의 경우, 템플리트 제어 파일에 Requires:종속성 행 이있는 경우 gdebi패키지로 설치 하는 도구와 종속성으로 선언하는 다양한 패키지를 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.