2016-03-15 3 views
1

Я пытаюсь установить пакет 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.

+0

Я хотел бы предложить, включая каталог '/ USR/include' в' LD_LIBRARY_PATH'. В качестве альтернативы можно разместить символическую ссылку на '/ usr/include' в'/usr/local/'. Последнее требует привилегий sudo. – RHertel

+0

Да, я мог бы софтлировать файлы, но я ищу «правильный» способ передать флаги install.packages(). Просто будь чистым :) –

ответ

0

Попробуйте install_github("omegahat/Rcartogram", args = c('--configure-vars="--with-fftw3=/usr"'))

поскольку в https://github.com/omegahat/Rcartogram/blob/master/configure.in,

if test -r $FFTW3_DIR/include/fftw3.h ; then 
    PKG_CPPFLAGS="-I$FFTW3_DIR/include/" 
    ... 
fi; 

и https://github.com/omegahat/Rcartogram/blob/master/configure

# Check whether --with-fftw3 or --without-fftw3 was given. 
if test "${with_fftw3+set}" = set; then 
    withval="$with_fftw3" 
    FFTW3_DIR="$withval" 
fi; 
Смежные вопросы