R のパッケージをインストールするコツ
R でパッケージをインストールするとき、 install.packages()
を使うことが多いと思います。通常、これでインストールする場合は、ライブラリの依存関係も含めて、足りないパッケージも含めてインストールしてくれるはずです。
しかしながら、パッケージの依存関係をクリアできないケースも多いです。これは、途中のパッケージのインストール中、必要なヘッダーやライブラリなどのファイルが見つからず、エラーになっているからです。
それらの必要とされるヘッダーや、ライブラリのファイルというのは、R 以外で提供されているものです。
エラーメッセージで表示されるファイル名をネットで検索すると、github などでソースの状態で提供されていることもありますが、それをコンパイルするのに、また別のライブラリが必要だったりすると、もうお手上げです。
まずは、独自にコンパイルせずに、コンパイル済みのパッケージで提供されているものを探すべきです。(最新版にこだわらないのであれば)
パッケージをインストールする例
ライブラリパッケージのインストールには、 Linux では apt 、Mac の場合は homebrew などのパッケージ管理ツールを用います。これらのパッケージ群を検索して、必要なヘッダーやライブラリのファイルを含むパッケージをインストールします。
例えば、R で igraph というパッケージをインストールする install.pakages('igraph')
には、 gfortran が必要になります。
Linux (Ubuntu) の例
Ubuntu であれば、 apt を使ってインストールできます。
sudo apt install gfortran
Mac の例
Mac の場合は、homebrew で gcc をインストールすると gfortran も一緒にインストールされます。
brew install gcc
パッケージをソースからインストール
Mac を使っている場合、install.packages()
コマンドでパッケージをインストール時、バイナリ(コンパイル不要)のパッケージがインストールされると思います。
何かの都合で、ソースからインストールする必要がある時は、type="source"
を指定して、コンパイルしてからインストールできます。
例えば、 シングルセルデータの解析用に Seurat v5 をインストールした場合、SeuratObject の再インストールの警告が出ることがあります。
通常は、 install.packages("Seurat")
としただけで、パッケージの依存関係が調べられ、その時点の Seurat に適合した SeuratObject パッケージがインストールされるはずですが、v5 あたりから、微妙に古い SeuratOjbect がインストールされるようです。
この時、install.packages("SeuratOjbect")
としても、インストールされるのは同じく微妙に古いバージョンとなります。バイナリでは最新版が提供されていないようです。このような場合は、install.packages("SeuratOjbect", type="source")
として、ソースからコンパイルしてインストールします。
*コンパイルが必要になるので、gcc などの環境が必要になります。