Linux上でいくつかのRライブラリ(*)を1つのドライブから別のドライブに移動したいのですが、単純な移動が可能かどうか、またはパッケージをアンインストールして再インストールする必要があるかどうかを知りたいと思います。ライブラリの場所は.libPaths()
で識別され、ライブラリの移行については「Rのインストールと管理」のマニュアルを見ても、推奨されるプロセスは見当たりません。Rライブラリを移行する
私は3つのオプション感じる:非ベースパッケージのすべてのためにファイル名を指定して実行remove.packages()
- を、そして
install.packages(lib = "/path/to/new/location")
を経由して、新たにインストールします。 は
mv
を使用してライブラリ(ディレクトリ)に移動し、新しい場所を指す(そして最終的にはシンボリックリンクを削除)するためにシンボリックリンクを使用し- で提案されているように、ディレクトリの卸売を移動し、
R_HOME/etc/Rprofile.site
で.Library.site
を更新するために、Linuxでのmv
コマンドを使用しますR Installation and Administration manual
オプション#1は鈍いです。オプション#2は機能するはずですが、少し不安なようです。
#3は安全ですか、それとも重大な問題がありますか?私が特定した問題は、ディレクトリのアクセス許可と、パッケージのセットアップが相対パスではなく絶対パスを格納する可能性(不健全で不必要なようです)です。
絶対パスの記憶に関しては、というファイルにrJava
がR_HOME
の場所を格納していることがわかりました。これはライブラリの問題ではありませんそれ自体はですが、絶対パスのプライベートコピーを保持しているのはパッケージ(とそのパッケージ)の1つの指標です。
(*)いくつかのライブラリと多数のパッケージがあります。当然のことながら、ライブラリ(ディレクトリ)だけが移動されますが、パッケージは影響を受ける可能性があります。
UPDATE 1 /明確化:だけ明確にする:私はRのバージョンまたはパッケージのバージョンを変更していない、だけ移行ライブラリをしています。 Rまたはパッケージの更新は別々に行うこともできますが、ライブラリを移動するかどうかは問題になりません。物が正しくインストールされていることを確認するためにすべてのパッケージを更新または再インストールする必要がある場合、それはオプション#3よりもオプション#1に近いパスです。
更新2:another SO postへの回答には、アップグレード時にこの問題を回避するための良いアイデアがあります。私はRをアップグレードしていませんが、RのファイルツリーにパッケージをインストールしないというDirk Eddelbuettelの提案は賢明です。このようにして
update.packages(checkBuilt=TRUE)
新しいバージョンのために再構築する必要がありますパッケージ:
あなたがしようとしていることを正確にはわかりませんが、[this](http://stackoverflow.com/questions/5721942/making-r-installation-self-contained-user-independent/6709445 #6709445)の質問とそれに関連する。 – Fred
+1ライブラリとパッケージの違いを知るために: –
@ gsk3:そのタイプのすべての可能なエラーを修正したいと思っています。私はそのような専門用語のために残酷になりたくはありません。 :) – Iterator