Stack Overflow では、システムにインストールされておらず、後で再利用する予定のないパッケージに関する質問が時々あります。
でパッケージをインストールするとinstall.packages()
、R インストール ライブラリの 1 つに配置され、実行するたびにストレージ スペースが必要になり、更新されますupdate.packages()
。
現在の R セッションのみにパッケージをインストールする方法はありますか?
Stack Overflow では、システムにインストールされておらず、後で再利用する予定のないパッケージに関する質問が時々あります。
でパッケージをインストールするとinstall.packages()
、R インストール ライブラリの 1 つに配置され、実行するたびにストレージ スペースが必要になり、更新されますupdate.packages()
。
現在の R セッションのみにパッケージをインストールする方法はありますか?
次の関数を使用して、パッケージを一時的にインストールできます。
tmp.install.packages <- function(pack, dependencies=TRUE, ...) {
path <- tempdir()
## Add 'path' to .libPaths, and be sure that it is not
## at the first position, otherwise any other package during
## this session would be installed into 'path'
firstpath <- .libPaths()[1]
.libPaths(c(firstpath, path))
install.packages(pack, dependencies=dependencies, lib=path, ...)
}
この方法で簡単に使用できます:
tmp.install.packages("pkgname")
パッケージは一時ディレクトリにインストールされ、そのファイルは次のシステム再起動時に削除されます (少なくとも Linux システムでは)。
この問題の別の解決策はdevmode
、devtools
. Devmode を使用すると、パッケージを開発リポジトリにインストールできるため、開発バージョンをインストールしても他のパッケージは変更されません。例えば:
library(devtools)
devmode()
install_github('ggplot2', 'hadley')
devmode()
バージョンが変更されていないことがわかります。
pacman
次のようなパッケージ管理の問題を扱います。
library(pacman)
これで、次を使用できます。
p_load("pkgname") #installs or loads package if already installed
#at end of session:
p_delete("pkgname") #deletes package from lib
これは、ディレクトリにインストールして最後に削除する簡単な方法です (実際には一時的なインストールではありません)。
タイラーの答えに加えて、最近、質問が求めることを正確に実行するp_temp
関数がpacmanパッケージに追加されました。
library(pacman)
p_temp(pkgname) # or p_temp("pkgname") either work...
これにより、パッケージと依存関係が一時的にインストールされます。
開示:タイラーと私はpacmanパッケージの共著者です...