젠투에서 동일한 패키지의 여러 버전을 설치하는 방법은 무엇입니까?


9

젠투 시스템에 동일한 패키지의 두 개 이상의 버전을 설치하고 싶습니다. 파일이 거의 설치되어 있지 않으며 파일 이름이 버전 이름으로 지정되어 있기 때문에 파일 충돌이 발생하지 않습니다.

슬롯에 대해 알고 있지만 ebuild 파일에 지정되어 있으며 여러 가지 이유로 ebuild 파일을 편집하고 싶지 않다고 가정합니다.

설치된 버전이 월드 패키지의 일부가되기를 원하므로 평소처럼 다시 설치하거나 제거 할 수 있습니다.

동일한 패키지의 여러 버전을 설치하는 방법이 있습니까? 이를 달성하기위한 포티지 트릭에 대해 알고 있습니까?


이것이 바로 슬롯입니다. 패키지가 슬롯되지 않은 경우, 내가 생각할 수있는 유일한 것은 개인 오버레이와 슬롯이있는 새로운 패키지 / 빌드를 만드는 것입니다.
Keith

@Keith-정답입니다. 답변으로 게시하지 않으시겠습니까?
HedgeMage

@ Keith : 실제로 그것을 할 수있는 유일한 방법이라면 답변으로 게시하면 기꺼이 받아들입니다.
Laurent Pireyn

답변:


9

이것이 바로 슬롯입니다. 패키지가 슬롯되지 않은 경우, 내가 생각할 수있는 유일한 것은 개인 오버레이와 슬롯이있는 새로운 패키지 / 빌드를 만드는 것입니다.


2
슬롯 을 사용하는 실용적인 방법에 대한 작은 힌트 는 초보자를 도울 것입니다 :)
Stefano

1

이론적으로는 바보 같은 것을 할 수 있다고 생각합니다.

$ ROOT=~/package-1.0 emerge =package-1

그러나 기본적으로 모든 비 오버레이 항목에는 정보가 많지 않은 몇 가지 추가 제한 사항과 요구 사항이 적용됩니다.


1

당신이 시도 할 수있는 것은 (예상대로 작동하는지 확실하지 않습니다) /etc/portage/env특정 패키지 버전의 슬롯을 설정하는 데 사용 하는 것입니다. 메타 데이터 캐싱으로 인해 작동하지 않을 수 있습니다. 그것이 작동하더라도 이것은 혼란이며 예기치 않은 행동을 초래할 수 있습니다. 항상 그렇듯이 그것이 깨지면 조각을 유지해야합니다.


1

이것은 오래된 질문이지만 여전히 유효하며 아무도 다음과 같은 간단한 접근 방식을 제안하지 않았습니다.

슬롯을 만들지 않고 파일이 충돌하지 않는 것을 알고 있다면 로컬 오버레이에서 새 ebuild를 만들고 (make.conf에서 로컬 오버레이를 설정 한 후) 이름을 다르게 지정하면됩니다. 아마도 'mypkg.ebuild'와 같은 것입니다. ebuild 이름과 설치 파일이 동일한 이름을 공유해야한다는 법칙은 없습니다. 포티지의 pkg.ebuild 파일을 /usr/local/portage/app-class/mypkg-newversion.ebuild에 복사하고 새 버전에 필요한 변경을 수행 한 후 ebuild하고 시작하십시오.

소스를 가져올 때 사전 정의 된 변수 이름 ($ {P} 등) 중 일부를 사용할 수 없습니다.


0

탐색해야 할 또 다른 가능성은 젠투 접두사입니다.

"대체"패키지를 제공하기 위해 젠투의 2 가지 생태계를 유지하는 것이 마음에 들지 않으면 실행 가능한 대안이 될 수 있습니다.

이것은 본질적으로 주어진 프로젝트 범위에 대해 "하위 공간"을 생성 한 다음 해당 프로젝트 범위에서 젠투를 다르게 사용하는 것입니다.

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