RPM : 설정 필요 : somepackage> = 0.5.0 및 somepackage <0.6.0


14

다음과 같이 종속 버전 요구 사항을 설정할 수 있습니까?

Required: somepackage >= 0.5.0 AND somepackage < 0.6.0

따라서 일부 패키지 0.5.x 만 자동으로 설치됩니다.

답변:


18

예, 매우 쉽습니다.

그냥 써:

Requires: somepackage >= 0.5.0, somepackage < 0.6.0

당신에 .spec파일.

버전 요구 사항 추가

패키지에 약간 더 엄격한 요구 사항이있는 경우 특정 버전의 패키지가 필요할 수 있습니다. 필요한 버전 번호를 추가하고 다음 비교 연산자 중 하나를 추가하기 만하면됩니다.

  • 지정된 버전보다 낮은 버전의 패키지가 필요합니다.

  • 지정된 버전 이하의 패키지가 필요합니다.

  • 지정된 버전과 동일한 버전의 패키지가 필요합니다.

  • 지정된 버전 이상의 패키지가 필요합니다.

  • 지정된 버전보다 큰 버전의 패키지가 필요합니다.

이 예에서 계속해서 필요한 패키지 막대 버전이 실제로는 2.7 이상이어야하고 baz 패키지 버전이 2.1이어야한다고 가정 해 봅시다 (다른 버전은 수행 할 수 없음). require 태그 라인은 다음과 같습니다. requires : bar> = 2.7, baz = 2.1

출처 : http://rpm.org/user_doc/more_dependencies.html

가상 기능주의 / 제공

위에서 설명한 시스템은 대부분의 패키지에서 작동합니다. 그러나 필요한 패키지가 [가상 기능] [1]으로 제공되거나 다른 이름 ( 서로 충돌하지 않는 )의 패키지로 제공되는 경우 (예 : "제공": "키워드) 두 개의 서로 다른 패키지가 설치 될 수 있으며 각 패키지는 개별적으로 요구 사항 중 하나를 충족시킵니다. 예를 들어, 스펙 파일에 다음이 포함 된 경우 :

Requires: postgresql-server >= 8.4, postgresql-server < 9.0

다음과 같은 설치가 발생할 수 있습니다 (yum에 이러한 패키지를 사용할 수있는 경우).

  • postgresql-server 8.1.23-6.el5_8 (postgresql-server <9.0)
  • postgresql92- 서버 9.2.5-1PGDG.rhel5 (postgresql- 서버> = 8.4)

그러나 postgresql84-server 는 설치 하지 않을 것으로 예상되는 패키지는 설치 하지 않습니다 .

(이 경우 해결책은 단순히 postgresql84-server를 요구하는 것이지만 쉬운 해결책이없는 다른 예제가있을 수 있습니다.)


"somethingdev (name)> = 1.0.14"에 대한 가상 종속성이 있었지만 yum install에 갔을 때 RPM 종속성에 있음에도 불구하고 가상 종속성이 필요한 버전을 설치하지 않았습니다. 가상 종속성을 RPM "something-name-dev> = 1.0.14"이름으로 변경 한 다음 작동했습니다.
Trevor Boyd Smith

1

패키지를 빌드하거나 패키지를 설치하고 종속성을 "제한"하려고하는지 확실하지 않습니다.

패키지를 다시 빌드하지 않고 두 번째 사례를 만드는 방법을 찾지 못했습니다.

SRPM을 검색하고 사양 파일을 편집하고 다음과 같은 항목에 require (somepackage 0.5.x, 원하지 않습니까?)를 추가 / 수정할 수 있습니다.

Requires: somepackage = 0.5.0

그런 다음

rpmbuild -bb -v yourpackage.spec

당신이 그것을하지 않은 경우, 협박 것처럼 보이지만 문제를 해결합니다. 배포판 용 공개 패키지를 만드는 경우이 방법으로 종속성을 설정하는 것은 일반적으로 권장되지 않으므로 지침을 읽으십시오.


2
나는 실제로 OP에 대해 말할 수는 없지만 때로는 특정 버전뿐만 아니라 특정 버전 시리즈의 최신 업데이트를 원할 수도 있습니다. 예를 들어 2.4.x가 패키지에서 제대로 작동하지 않기 때문에 Apache 2.2.x가 필요하다는 것을 알고있을 것입니다. 특히 2.2.23이 필요하면 2.2.x의 향후 업데이트를 설치할 수 없습니다.
Alan Krueger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.