repo에 최신 버전이있는 경우 특정 버전을 설치 하시겠습니까?


13

다음 패키지에 의존하는 메타 패키지를 만들어 보자

Depends: A (=2),
 B (=2),
 C (=2)

'='에 주목하십시오-가장 최신 버전이 아닌 특정 버전을 설치하고 싶습니다.

또한 :

BA에 의존합니다 (> = 1)

CB (> = 1) 및 A (> = 1)에 따라 다름

리포지토리에서 A, B, C의 최신 버전이 2 인 경우 작동합니다.

repo sudo apt-get install에 버전 3 A와 버전 3 B를 넣었으므로 my-meta-package는 다음 정보로 끝나기를 거부합니다.

The following packages have unmet dependencies:
  my-meta-package: Depends: B (= 2) but 3 is to be installed
                   Depends: A (= 2) but 3 is to be installed

A 및 B 버전 2를 수동으로 설치하면 메타 패키지가 올바르게 설치되므로 A3 또는 B3에 숨겨진 종속성이 없음을 강력하게 제안합니다. 메타 패키지는 많은 컴퓨터에 자동으로 설치되므로이 문제에 대한 해결책은 아닙니다.

질문 : sudo apt-get install my-meta-package 설치 버전 2,2,2를 만들려면 어떻게해야합니까?

또한 실제로 A 버전 3과 B 버전 3이 필요한 확장 정보를 얻을 수있는 방법이 있습니까?


아, 나는 대답하기 전에 전체 질문을 읽지 않았습니다. 메타 패키지를 재 포장 할 수 있습니까?
int_ua 2016 년

2
@int_ua 메타 패키지를 리 패키징하는 것이 무엇인지 이해할 수 없습니다.
tymtam

@belacqua-나는 당신과 함께 있지만, 우리는 복귀 및 의존성 등이있을 때 일어나는 일을 다루는 확실한 대답이 필요합니다.
RobotHumans

메타 패키지의 제어 파일에 다음과 같은 종속 패키지의 명시 적 버전이 포함되어 있지 (a=2), (b=2)않습니까?
Anwar

답변:


11

설치할 특정 버전을 선택하고 메타 패키지를 설치할 때 동시에 설치해야합니다.

sudo apt-get install meta-package package1=2 package2=2 package3=2

int_ua의 답변 에서 알 수 있듯이 다음 과 같이 역 종속성을 찾을 수 있습니다.

apt-cache rdepends package

해당 패키지에 대한 자세한 정보 ( 사용 가능한 버전, 종속성 등) 를 알고 싶으면 다음을 사용하십시오.

apt-cache show package

설치를 완료하고 시스템 업그레이드를 수행하는 동안 해당 버전을 유지하려면 belacqua에서 제안한대로 적절한 고정사용해야 합니다.

APT 피닝

APT 고정 기능을 통해 관리자는 APT가 다른 리포지토리의 다른 버전으로 제공되는 특정 버전의 패키지를 선택하도록 할 수 있습니다. 이를 통해 관리자는 패키지가 시스템의 다른 패키지와 충돌 할 수 있거나 적절하지 않은 변경에 대해 충분히 테스트되지 않은 버전으로 업그레이드되지 않도록 할 수 있습니다. 이렇게하려면 APT 환경 설정 파일 (/ etc / apt / preferences)의 핀을 수정해야합니다.


이것이 정답이라고 믿습니다. = 다음에 패키지 이름을 버전과 함께
넣으십시오

1
나는 Tymek의 동료이며 실제로 문제를 해결합니다. 메타 패키지를 리버스 엔지니어링하여 메타 패키지를 발생시켜야합니다. 창의적인 파이썬이 순서대로 있습니다. 답변 주셔서 감사합니다.
Igor Zevaka

1
시간이 지남에 따라 더 나은 해결책이 있는지 궁금합니다.
ygrek

1

먼저 의존성을 설치해 볼 수 있습니다

sudo apt-get install package=2 여기서 2는 버전입니다

패키지에 따라 어떤 패키지가 의존하는지 확인할 수 있습니다.

apt-cache rdepends package


1
rdepends는 버전에 대한 세부 정보를 제공하지 않습니다.
tymtam

2
종속성을 먼저 설치하면 메타 패키지가 없어집니다. 그것은 해결책이지만 내가 찾고있는 것은 아닙니다.
tymtam

1
이 작업을 수행하려면 리포지토리에 지정한 버전의 사용 가능한 버전이 있어야합니다. 그렇지 않은 경우 오류가 발생하지 않습니다.
토마스 워드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.