Gentooに同じパッケージの複数のバージョンをインストールする方法は?


9

Gentooシステムに同じパッケージの2つ(またはそれ以上)のバージョンをインストールしたいのですが。インストールされているファイルはほとんどなく、それぞれにバージョンにちなんで名前が付けられているので、ファイルが衝突することはありません。

スロットについては知っていますが、これらはebuildファイルで指定されています。いくつかの理由でebuildファイルを編集したくないとしましょう。

インストールされたバージョンをワールドパッケージの一部にして、通常どおり再インストールまたはアンインストールできるようにしたいと考えています。

同じパッケージの複数のバージョンをインストールする方法はありますか?それを達成するためのいくつかのPortageトリックを知っていますか?


それがスロットの目的です。パッケージにスロットが付いていない場合、私が考えることができるのは、個人用オーバーレイとスロット付きの新しいパッケージ/ ebuildを作成することだけです。
キース、

@キース-それは正しい答えです、答えとして投稿してみませんか?
HedgeMage 2011年

@キース:それが確かにそれを行う唯一の方法である場合は、回答として投稿してください。喜んで受け入れます。
Laurent Pireyn

回答:


9

それがスロットの目的です。パッケージにスロットが付いていない場合、私が考えることができるのは、個人用オーバーレイとスロット付きの新しいパッケージ/ ebuildを作成することだけです。


2
スロットを実際に使用する方法についてのヒントは、初心者には役立ちます:)
Stefano

1

理論的には、次のような愚かなことができると思います:

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

しかし、基本的にすべての非オーバーレイのものは、それほど多くの情報がないいくつかの追加の制限と要件の影響を強く受けます。


1

あなたが試すかもしれないこと(それが期待通りに機能するかどうかはわかりません)は/etc/portage/env、特定のパッケージバージョンのSLOTを設定するために使用することです。ただし、メタデータのキャッシュのため、機能しない可能性があります。それが機能しても、これは策略であり、予期しない動作を引き起こす可能性があります。いつものように、それが壊れた場合、あなたは破片を保つようになります。


1

これは古い質問ですが、まだ有効であり、次のような単純なアプローチを提案した人はいません。

スロットを作成したくなく、ファイルが衝突しないことがわかっている場合は、ローカルオーバーレイに新しいebuildを作成し(make.confでローカルオーバーレイを設定した後)、別の名前を付けます。おそらく 'mypkg.ebuild'のようなものです。ebuildの名前とそれがインストールするファイルが同じ名前を共有しなければならないという法律はありません。portageのpkg.ebuildファイルを/usr/local/portage/app-class/mypkg-newversion.ebuildにコピーし、新しいバージョン、ebuildに必要な変更を加えてそれをemergeします。

ソースを取得するときに、事前定義された変数名($ {P}など)の一部を使用できないことに注意してください。


0

探求するもう1つの潜在的なことは、Gentooプレフィックスです。

「代替」パッケージを提供するためにGentooの2つのエコシステムを維持することを気にしない場合、これは実行可能な代替案になる可能性があります。

これは基本的に、特定のプロジェクトスコープに「サブスペース」を作成し、そのプロジェクトスコープでGentooを別の方法で使用しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.