2013-06-07 3 views
1

Итак, я пытался установить пакет R с именем igraph. В конце концов, когда он пытается загрузить пакет, я получаю следующее сообщение об ошибке:Путь к libstdC++ при установке пакета R

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /tools/R/2.15.2/lib64/R/library/igraph/libs/igraph.so) 

Для меня эта ошибка означает, что есть неправильная версия libstdc++.so.6. Я, однако, не использую этот файл. Быстрый взгляд на мой LD_LIBRARY_PATH:

echo $LD_LIBRARY_PATH 
/tools/gcc/4.7.0/lib64 

В этом каталоге есть файл с именем libstdC++ so.6 и следующие показывает, что GLIBCXX_3.4.15 там на самом деле:.

strings /tools/gcc/4.7.0/lib64/libstdc++.so.6 | grep GLIB 
GLIBCXX_3.4 
GLIBCXX_3.4.1 
GLIBCXX_3.4.2 
GLIBCXX_3.4.3 
GLIBCXX_3.4.4 
GLIBCXX_3.4.5 
GLIBCXX_3.4.6 
GLIBCXX_3.4.7 
GLIBCXX_3.4.8 
GLIBCXX_3.4.9 
GLIBCXX_3.4.10 
GLIBCXX_3.4.11 
GLIBCXX_3.4.12 
GLIBCXX_3.4.13 
GLIBCXX_3.4.14 
GLIBCXX_3.4.15 
GLIBCXX_3.4.16 
GLIBCXX_3.4.17 
GLIBC_2.2.5 
GLIBC_2.3 
GLIBC_2.3.2 
GLIBCXX_FORCE_NEW 
GLIBCXX_DEBUG_MESSAGE_LENGTH 

Я не понять, почему R является упрямым и не использует файл в каталоге gcc и продолжает пытаться ссылаться на каталог/user/lib64. Кто-нибудь есть идеи?

ответ

2

Оказывается, есть файл под: $RHOME/etc/ по имени ldpaths, который по какой-то причине очищает переменную среды . Я сброшу LD_LIBRARY_PATH на мои предпочтительные пути в этом файле, перезапустил R, и пакет был установлен довольно плавно.

На стороне узла: Я думаю, что это смехотворное поведение для такого зрелого программного обеспечения.

+1

Это звучит так, как будто это характерно для вашей среды. –

+2

Это не ясно: оно добавляет к нему каталоги, которые использовались при компиляции R. Вы, очевидно, что-то изменили в своей системе между моментом установки R и моментом установки играфа. Ожидайте других вещей, чтобы сломать ... –

+0

может быть дубликат http://stackoverflow.com/questions/11658687/ld-library-path-precendence-and-trouble-with-compiling –

Смежные вопросы