Open2

R のパッケージをインストールするコツ

d01d01

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

https://note.com/ash_coding/n/n88bb4f8584d5

d01d01

パッケージをソースからインストール

Mac を使っている場合、install.packages() コマンドでパッケージをインストール時、バイナリ(コンパイル不要)のパッケージがインストールされると思います。

何かの都合で、ソースからインストールする必要がある時は、type="source" を指定して、コンパイルしてからインストールできます。

例えば、 シングルセルデータの解析用に Seurat v5 をインストールした場合、SeuratObject の再インストールの警告が出ることがあります。

通常は、 install.packages("Seurat") としただけで、パッケージの依存関係が調べられ、その時点の Seurat に適合した SeuratObject パッケージがインストールされるはずですが、v5 あたりから、微妙に古い SeuratOjbect がインストールされるようです。

この時、install.packages("SeuratOjbect")としても、インストールされるのは同じく微妙に古いバージョンとなります。バイナリでは最新版が提供されていないようです。このような場合は、install.packages("SeuratOjbect", type="source") として、ソースからコンパイルしてインストールします。

*コンパイルが必要になるので、gcc などの環境が必要になります。