Я установил Mathematica 9 в старой системе Red Hat Enterprise Linux AS версии 4. После установки я попытался запустить Mathematica, но вышло следующее сообщение:
/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica: /lib64/tls/libc.so.6: версия `GLIBC_2.4 'не найдена (требуется для / главная / wcbao / M / Вольфрам / Mathematica / 9,0 / SystemFiles / Библиотеки / Linux-x86-64 / libML64i3.so)
/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica: /lib64/tls/libc.so.6: версия `GLIBC_2.4 'не найдена (требуется для / главная / wcbao / M / Вольфрам / Mathematica / 9,0 / SystemFiles / Библиотеки / Linux-x86-64 / libQtCore.so.4)
Я не хочу обновлять систему glibc, потому что это рискованно, и администратор не позволяет мне это делать.
Кто-то предположил, что можно просто установить новую версию glibc в другом месте и запустить программу как
LD_LIBRARY_PATH=/lib/new your_application
и это не повлияет на систему.
Поэтому я спрашиваю, действительно ли этот метод работает. И если это сработает, я хочу знать, как сделать это шаг за шагом (у меня сейчас нет опыта работы с Linux, и я хочу использовать Mathematica на Linux как можно скорее).
Редактировать :
Я заметил, что есть программное обеспечение под названием «Ermine». Кажется, что он может развернуть программное обеспечение как отдельный пакет, который не зависит от внешней среды. К сожалению, это условно. Поэтому я думаю, что, поскольку «Эрмине» может это сделать, должен быть способ использовать новое программное обеспечение на старой системе.
Ответы:
Вы определенно можете скомпилировать новую версию GLIBC и сохранить ее в отдельном каталоге. Первое, что вам нужно сделать, это загрузить нужную версию glibc с http://ftp.gnu.org/gnu/glibc/ .
Запустите
configure
скрипт и установите что---prefix=
то вроде/home/you/mylibs
.После того, как вам удалось установить его в этот каталог, вам нужно будет указать
LD_LIBRARY_PATH
местоположение нового glibc.Вам нужно будет выяснить любые зависимости, которые вам могут понадобиться для компиляции. Вы можете создать сценарий оболочки, который устанавливает переменные LD_ * и запускает вашу программу (что вам все равно придется делать), и запускать ее многократно - загружая / перекомпилируя отсутствующие библиотеки по пути.
Вы также можете использовать,
ldd
чтобы определить, какие разделяемые библиотеки нужны программе, а затем использоватьldd
каждую из библиотек, чтобы выяснить, требуется ли им glibc.Это может быть очень трудоемким процессом и не для нетерпеливых или слабонервных - пересечение / перекомпиляция вашего пути через возможные зависимости, необходимые для работы вашего приложения, может иногда вызывать желание вырвать свои волосы.
Обновление 1:
Я скачал glibc-2.4 и попытался скомпилировать его в CentOS 6. Для
configure
правильной работы мне пришлось изменить проверку версийac
иld
версий, изменив:чтобы:
в строках
4045
и4106
в самомconfigure
файле. Я установил переменные окружения * FLAGS следующим образом:и затем казнен
./configure --prefix=/home/tim/masochist
. Он правильно настроен ... и начал правильно собираться ... но потом я начал сталкиваться с ошибками - в основном компилятор жаловался на переопределение вещей.В этот момент я сдался ... Потому что это становилось слишком много времени . ;)
источник
root
или делаете что-то странное, например, измените LD_PRELOAD в своем скрипте инициализации сеанса и заблокируйте себя.Обновление glibc до версии, поддерживаемой вашим дистрибутивом, является низким риском. Он написан для совместимости с версиями, которые датируются очень давно, и (за исключением ошибок) новая версия должна быть просто заменой. Установка новой версии в каком-то странном месте более рискованна, ИМХО.
источник
В этом конкретном случае я бы сказал, не беспокойтесь, если у вас нет помощи (и разрешения) от администраторов этой общей системы.
Mathematica работает на Windows, Mac и Linux, поэтому просто установите ее на свой настольный компьютер, чтобы вам не пришлось беспокоиться о влиянии на других. Также более вероятно, что операционная система будет более новой, чем RHEL4, и поэтому вам не придется делать какие-либо искажения для ее установки.
источник