Я пытаюсь установить пакет Rcartogram
, который зависит от fftw. У меня нет никаких проблем с установкой FFTW на Ubuntu, благодаря этому вопрос/ответ: How to install the fftw3 package of R in ubuntu 12.04?R, fftw и включают проблемы
library(fftw)
работает хорошо, и у меня есть все необходимые LIBS и включает в себя:
[email protected]:~# ls /usr/include/fftw*
/usr/include/fftw3.f /usr/include/fftw3.h /usr/include/fftw3q.f03
/usr/include/fftw3.f03 /usr/include/fftw3l.f03
и библиотеки:
[email protected]:~# ls /usr/lib/x86_64-linux-gnu/*fftw*
/usr/lib/x86_64-linux-gnu/libfftw3.a /usr/lib/x86_64-linux-gnu/libfftw3l_threads.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3f.a /usr/lib/x86_64-linux-gnu/libfftw3_omp.a
/usr/lib/x86_64-linux-gnu/libfftw3f_omp.a /usr/lib/x86_64-linux-gnu/libfftw3_omp.so
/usr/lib/x86_64-linux-gnu/libfftw3f_omp.so /usr/lib/x86_64-linux-gnu/libfftw3_omp.so.3
/usr/lib/x86_64-linux-gnu/libfftw3f_omp.so.3 /usr/lib/x86_64-linux-gnu/libfftw3_omp.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3f_omp.so.3.4.4 /usr/lib/x86_64-linux-gnu/libfftw3q.a
/usr/lib/x86_64-linux-gnu/libfftw3f.so /usr/lib/x86_64-linux-gnu/libfftw3q_omp.a
/usr/lib/x86_64-linux-gnu/libfftw3f.so.3 /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so
/usr/lib/x86_64-linux-gnu/libfftw3f.so.3.4.4 /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so.3
/usr/lib/x86_64-linux-gnu/libfftw3f_threads.a /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3f_threads.so /usr/lib/x86_64-linux-gnu/libfftw3q.so
/usr/lib/x86_64-linux-gnu/libfftw3f_threads.so.3 /usr/lib/x86_64-linux-gnu/libfftw3q.so.3
/usr/lib/x86_64-linux-gnu/libfftw3f_threads.so.3.4.4 /usr/lib/x86_64-linux-gnu/libfftw3q.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3l.a /usr/lib/x86_64-linux-gnu/libfftw3q_threads.a
/usr/lib/x86_64-linux-gnu/libfftw3l_omp.a /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so
/usr/lib/x86_64-linux-gnu/libfftw3l_omp.so /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so.3
/usr/lib/x86_64-linux-gnu/libfftw3l_omp.so.3 /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3l_omp.so.3.4.4 /usr/lib/x86_64-linux-gnu/libfftw3.so
/usr/lib/x86_64-linux-gnu/libfftw3l.so /usr/lib/x86_64-linux-gnu/libfftw3.so.3
/usr/lib/x86_64-linux-gnu/libfftw3l.so.3 /usr/lib/x86_64-linux-gnu/libfftw3.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3l.so.3.4.4 /usr/lib/x86_64-linux-gnu/libfftw3_threads.a
/usr/lib/x86_64-linux-gnu/libfftw3l_threads.a /usr/lib/x86_64-linux-gnu/libfftw3_threads.so
/usr/lib/x86_64-linux-gnu/libfftw3l_threads.so /usr/lib/x86_64-linux-gnu/libfftw3_threads.so.3
/usr/lib/x86_64-linux-gnu/libfftw3l_threads.so.3 /usr/lib/x86_64-linux-gnu/libfftw3_threads.so.3.4.4
Проблема начинается, когда я хочу установить Rcartogram. Исходный сайт не работает, но, к счастью, они переместили весь код в github: https://github.com/omegahat/Rcartogram. Еще проще установить, подумал я! К сожалению,
install_github("omegahat/Rcartogram")
дает следующее сообщение об ошибке:
> install_github("omegahat/Rcartogram")
Downloading GitHub repo omegahat/[email protected]
from URL https://api.github.com/repos/omegahat/Rcartogram/zipball/master
Installing Rcartogram
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore CMD \
INSTALL '/tmp/Rtmp3BpPB1/devtools5fd876a8a4b4/omegahat-Rcartogram-715cb93' \
--library='/usr/local/lib/R/site-library' --install-tests
* installing *source* package ‘Rcartogram’ ...
checking for pkg-config... /usr/bin/pkg-config
Looking for fftw3 files in /usr/local
Cannot find fftw.h
ERROR: configuration failed for package ‘Rcartogram’
* removing ‘/usr/local/lib/R/site-library/Rcartogram’
Error: Command failed (1)
Сообщение об ошибке ясно, он ищет включает в /usr/local
, но они в /usr/include
. Как я могу сказать R, чтобы найти их в /usr/include
? Мне нужно что-то вроде -I/usr/include
, но
install_github("omegahat/Rcartogram", args = c('--configure-vars="-I/usr/include"'))
или подобные попытки не работали.
Я запускаю Ubuntu 14.10, 64bit.
Я хотел бы предложить, включая каталог '/ USR/include' в' LD_LIBRARY_PATH'. В качестве альтернативы можно разместить символическую ссылку на '/ usr/include' в'/usr/local/'. Последнее требует привилегий sudo. – RHertel
Да, я мог бы софтлировать файлы, но я ищу «правильный» способ передать флаги install.packages(). Просто будь чистым :) –