sf を使う為に install.packages(“sf”) した所、以下のエラーでインストールできなかったので、解消した際のメモです。
ERROR: dependencies ‘s2’, ‘units’ are not available for package ‘sf’
環境
- Amazon Linux release 2 (Karoo)
- R version 4.0.2
また、以下のコマンドで EPEL レポジトリを有効化済みです。
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
必要なパッケージのインストール
GDAL 2.0.1 以上が必要なのですが、yum で入れられるのが 1.11.4 なので、3.5.3 のソースをコンパイルしてインストールします。
また、その際に PROJ 6 が必要になるのですが、こちらも yum で入れられるのが 4.8.0 なので、先に 6.1.1 のソースをコンパイルしてインストールします。
yum でインストール
まずは、yum で行けるパッケージから。
sudo yum install -y openssl-devel geos-devel sqlite-devel udunits2-devel cmake3
ちなみに、以下のパッケージは既にインストール済みだったので含めませんでした。
- gcc-c++
- cpp
- libtiff
PROJ のインストール
ソースコードをコンパイルしてインストール。
cd /tmp
wget https://download.osgeo.org/proj/proj-6.1.1.tar.gz
tar -xvf proj-6.1.1.tar.gz
cd proj-6.1.1
./configure
sudo make
sudo make install
GDAL のインストール
ソースコードをコンパイルしてインストール。
cd /tmp
wget https://github.com/OSGeo/gdal/releases/download/v3.5.3/gdal-3.5.3.tar.gz
tar -xvf gdal-3.5.3.tar.gz
cd gdal-3.5.3
./configure --with-proj=/usr/local
sudo make
sudo make install
共有ライブラリの反映
コンパイルしたライブラリが /usr/local/lib にインストールされます。
既に共有ライブラリとして設定済みの場合は良いのですが、自分の環境ではできていなかったので設定しました。
sudo bash -c "echo /usr/local/lib>/etc/ld.so.conf.d/usr.local.lib.conf"
/etc/ld.so.conf.d/usr.local.lib.conf ファイルを新規作成してパスを設定しました。
既に usr.local.lib.conf ファイルが存在することは無いと思いますが、あるなら追記するなり別のファイル名で作成します。
設定を反映にするために、次のコマンドを実行します。
sudo ldconfig
sf パッケージのインストール
後は通常通り R から install.packages(“sf”) でインストールできました。
問題なければ、コンパイルで使ったファイルを削除しておきます。
sudo rm -rf /tmp/proj-6.1.1.*
sudo rm -rf /tmp/gdal-3.5.3.*
コメント