2017-07-02 3 views
11

私のUbuntu 16.04マシンをR 3.4.1にアップデートしました。デフォルトのR個人用ライブラリの場所はnullです

パッケージをインストールするために「null」という個人用ライブラリを作成しますか?いいえ、必要ではないパッケージ(例えば、潤滑剤)をインストールします。

これはRStudioと私はr-base-core &はapt-getを通じr-baser-base-devを再インストールし、まだ問題を抱えていたアンインストールのコマンドライン・R.の両方で発生しました。

/etc/R/ディレクトリには、インストールプロセス中に一時的に存在していたが、完了した時刻がapt-get install r-base r-base-devであった4つの一時ファイルが含まれていました。私はすぐに再インストールして、すばやくそれらのファイルをデスクトップに貼り付けて貼り付けました。再び再インストールした後、私は/etc/R/にそれらをコピー:

~/Desktop/temp$ sudo cp repositories.dpkg-new /etc/R/repositories 
~/Desktop/temp$ sudo cp Rprofile.site.dpkg-new /etc/R/Rprofile.site 
~/Desktop/temp$ sudo cp ldpaths.dpkg-new /etc/R/ldpaths 
~/Desktop/temp$ sudo cp Makeconf.dpkg-new /etc/R/Makeconf 

第二のステップは、/etc/R/Renvironで見つかった以下のような第二に、コメントを解除することでした。どうやらこれは@ dirk-eddelbuettelのrベースパッケージの最近の変更です。

# edd Jun 2017 Comment-out R_LIBS_USER 
#R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'} 
##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'} 

私は2つの部分からなる質問があります。

  1. が推奨上記のプロセスであり、または私は違った何かをやっているはずですが? (Setting R_LIBS & avoiding "Would you like to use a personal library instead?"など)
  2. このマシンでの今後のRアップグレードには、この2つの手順が必要なのでしょうか?
+2

私だけのコメントを外しR_LIBS_USER内library()require()、およびinstall.packages() - 興味が好ましい方法が何であるかを見るために。 – user20650

+1

ubuntuの比較17.04 Zestyのデフォルトパッケージバージョン(3.3)Renault with Cran(3.4.1)。 パッケージの問題のようです。新しいインストールにのみ影響するため、気付かれなくなった可能性があります。 私は推薦しないことをお勧めし、同じフォルダー形式を維持するために編集します。 : '3.4.1'で終わる ' R_LIBS_USER = $ {R_LIBS_USER- '〜/ R/x86_64-pc-linux-gnu-library/3.4.1'} ' –

答えて

6

あなたは近くです。この問題は、互換性をチェックすることなく作られた、これらの行の "コメントアウト"にあります。

install.packages("survival") 

あなたは「ヌル」の代わりに「NA」エラーが出るの違いで:あなたが使用して、例えばREPLの中に手動でライブラリをインストールしようとすると、同じ問題が起こります。将来のRのアップグレードのための

ソリューション、あなたは最小限の手間たい場合:

  • を、それはあなたの入力を求める(または単にされないように、パッケージのデフォルトには/ etc/R/Renvironを復元上書き)次回のRは、以下の内容で、例えば$HOME/.Renviron、自分のホームディレクトリにRenvironを追加

  • アップグレードされます。

R_LIBS_USER="${HOME}/R/${R_PLATFORM}-library/3.4.1/"

個人的には、Rのアップグレードが行われるたびに、すべてのライブラリを新しいバージョンで再インストールします。ですから、私は3.4.13.4.2か、私が持っている新しいバージョンに変更してから、ライブラリを再インストールします。あなたのライブラリを再インストールしたくない場合は、あなたが完全バージョンのサブディレクトリを削除しようとすることができます

、例えば:

R_LIBS_USER="${HOME}/R/${R_PLATFORM}-library/

古いライブラリがすぐR.

で見られるように、

NB:悲しいことに、RバージョンをRenvironに入れる方法が見つかりませんでしたが、代わりに.Rprofileを使って実現することができました(Rコードを含むことができるので)。

3

お使いのコンピュータでは、現在のライブラリの名前はRバージョンの名前になります。例えば

、私の現在のlibには、次のとおりです。

.libPaths() 
[1] "/home/colin/R/x86_64-pc-linux-gnu-library/3.3" 

私の現在のRバージョンが3.3であるとして。

はい、あなたがRを更新するたびに、このlibの問題に直面します。古いライブラリへのパスを.libPaths(new = "path/to/your/lib")に設定するか、古いライブラリをコピーして新しいライブラリに貼り付けることができます。

コリン

+0

私はパスの構造を理解していると思いますRのバージョンを反映しています)。しかし、私はこのコンピュータを使った〜3年のうちに(例えば、Renvironファイルの)設定を変更する必要があるとは思っていません。 – wibeasley

0

私は私のために最も適したソリューションが/etc/R/Renviron.siteを編集することがわかった:

# nano /etc/R/Renviron

そして、それはR_LIBS_USER環境変数を設定する行のコメントを解除。

Etvoilà!

私は再び使用することができ、十分に思えたR.

関連する問題