Debianに2つの異なるRバージョンをインストールする方法は?
-
27-10-2019 - |
質問
サーバーでは、の指示に従ってr 2.12.1がインストールされています http://cran.r-project.org/bin/linux/debian/ 、使用 apt-get install
など
状況により、古いレニーマシンは新しい安定したDebianに更新されていません。これはすぐに起こることはないようです。ここでの研究のいくつかはVGAMの最新バージョンに依存しているため、DebianにインストールされているR 2.14.0が必要です。しかし、古いコードの実行を続けるために、R 2.12.1をドロップすることはできません(このバージョンにVGAM 0.8.4をインストールするとエラーが発生します)。
したがって、2つのRバージョンをインストールする必要があります。私たちがただ使用した場合、私が理解した小さなことから apt-get upgrade
古いバージョンは新しいものに置き換えられます。私は多くのドキュメントを経験してきましたが、そうする最適な方法が見つかりません。
私が今想像できる唯一のことは、ソースから最新のRを構築しようとすることですが、私の同僚はその考えにあまり熱心ではなく、最初に別の解決策を探すように促しました。私が見逃した情報はありますか、それとも誰かが私にこれを成し遂げるための小さなトリックを見せてくれませんか?ソースからの構築が解決策である場合、落とし穴や可能な問題について聞きたいと思います。
解決
コメントで述べたように、これはそうです 理論的に 一部のパッケージファミリ(EMACS、POSTGRESQL、...)のように、複数の同時バージョンを許可します。
私たちが使用している間、私は今それを提供することはできません /usr/{share,lib}/R
どの矛盾。私がそれを作るなら /usr/{share,lib}/R-$version
そして、使用します dpkg-alternatives
デフォルトの優先希望のものに反転するために、おそらくそれを行うことができます。問題は遷移です。この機能は少数のユーザーが使用しているため、これが安定しているようになると、多数派のバグが導入される可能性があります。さらに、私は余暇がありません(しかし、他の誰かがそれをやりたいなら、そうしてください)。
それまでの間、できます
おそらくの高度な機能を使用してください
dpkg
以下のデフォルトではなく、ローカルディレクトリに開梱します/
- それで/opt/R/oldversions/2.12.1
可能である必要があります。 Rは実行することもできます。再定義する必要があります$RHOME
によると。ローカルバリエーションを作成するだけです
/usr/local
もし、あんたが 本当 しなければならない特定のCran /非Cranパッケージが特定のバージョンのRを必要とすると主張している場合は、既にDamnパッケージを修正してください! ;-)
最後に、これはトピックです r-sig-debian
たとえば、クランメンテナーのマイケルとヨハネスは、ここでこのスレッドを読みません。
他のヒント
適切なコンパイルフラグを使用して、任意のソフトウェアの異なるバージョンをインストールできます。 -helpを使用してConfigureスクリプトを実行すると、インストールルートを表示するオプションが表示されます。
を見てみましょう
./configure --help
...
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
したがって、R-2.14を以下にインストールできます。
/usr/local/R/2.14
そして、R-2.12を以下にインストールできます。
/usr/local/R/2.12
Configureスクリプトを起動するときは、次のことを行います。
./configure --prefix=/usr/local/R/2.14
等々。
複数のバージョンを提供するDebianリポジトリがない場合、RのRの2つのバージョンをソースからコンパイルせずにスムーズに実行することは困難だと思います。
私がしばしばしていることは、私たちの研究所が私たちに根源特権を与えていないので、私の家のディレクトにRを設置することです。 R Systemwideのソースバージョンをインストールするには、これを別のディレクトリ(eg /opt/r2.14)にインストールし、以下を使用できます。
./configure --prefix=/opt/R2.14/
最後のステップは、Rバイナリへのシンボリックリンクを作成することです。
ln -s /opt/R2.14/bin/R /usr/bin/R2.14
ユーザーは、R(RとR2.14)の2つのバージョンを開始できます。お役に立てれば!
ソースからRを構築することは非常に簡単です(私もできます!)。
apt-get build-dep r-base
それ以外の場合、ライブラリタイプのエラーが欠落している場合があります make
. 。 Dirkが過去にその宝石を投稿したことに感謝します。マニュアル、README、またはFAQでそれを見ていません。
それから、それはただです:
./configure
make
これはあなたにとって考慮事項かもしれません:Rは静的または動的システムライブラリを使用していますか?自己構築されたRは、事前にパッケージ化されたバイナリRとは異なるライブラリにリンクできますか? (知らない)。あなたがどれだけ入るかは、Rの適用がどれほど重要であり、どのシステムライブラリがあなたにとって重要であるかによって異なります。