##背景
Rで統計用パッケージ(TSSS)をインストールしようとした時に色々と手間取ったのでその備忘録.
##問題点
RでTSSSをインストールしようとすると
> install.packages("TSSS",dependencies=TRUE)
-lgfortran
がないと怒られてしまう
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [TSSS.so] Error 1
ERROR: compilation failed for package ‘TSSS’
* removing ‘/Library/Frameworks/R.framework/Versions/3.5/Resources/library/TSSS’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/3.5/Resources/library/TSSS’
##解決法
gcc
gfortran
のver.を落として,シンボリックリンクを作成してあげれば良い
まず brew
で 'gcc-4.9' をインストールする.
brew install gcc@4.9
次にシンボリックリンクを作成する.
#gccなどのver.を4.9に揃える
ln -fs /usr/local/bin/gcc-4.9 /usr/local/bin/gcc
ln -fs /usr/local/bin/g++-4.9 /usr/local/bin/g++
ln -fs /usr/local/bin/gfortran-4.9 /usr/local/bin/gfortran
#lgfortranを使えるようにする.
ln -fs /usr/local/lib/gcc/4.9/libgfortran.dylib /usr/local/lib/libgfortran.dylib
ln -fs /usr/local/lib/gcc/4.9/libgfortran.a /usr/local/lib/libgfortran.a
ln -fs /usr/local/lib/gcc/4.9/libgfortran.3.dylib /usr/local/lib/libgfortran.3.dylib
ln -fs /usr/local/lib/gcc/4.9/libgfortran.spec /usr/local/lib/libgfortran.spec
#TSSSのインストールしようとしたらld: library not found for -lquadmathとも怒られたのでシンボリックリンク作成.
ln -fs /usr/local/lib/gcc/4.9/libquadmath.0.dylib /usr/local/lib/libquadmath.0.dylib
ln -fs /usr/local/lib/gcc/4.9/libquadmath.a /usr/local/lib/libquadmath.a
ln -fs /usr/local/lib/gcc/4.9/libquadmath.dylib /usr/local/lib/libquadmath.dylib
##結果
installing to /Library/Frameworks/R.framework/Versions/3.5/Resources/library/TSSS/libs
** R
** data
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (TSSS)
やったねヽ(・∀・)ノ