Zainstalowałem Mathematica 9 na starym systemie Red Hat Enterprise Linux AS wydanie 4. Po instalacji próbowałem uruchomić Mathematica, ale pojawił się następujący komunikat:
/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica: /lib64/tls/libc.so.6: nie znaleziono wersji `GLIBC_2.4 '(wymagany przez / home / wcbao / M / Wolfram / Mathematica / 9.0 / SystemFiles / Libraries / Linux-x86-64 / libML64i3.so)
/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica: /lib64/tls/libc.so.6: nie znaleziono wersji `GLIBC_2.4 '(wymagany przez / home / wcbao / M / Wolfram / Mathematica / 9.0 / SystemFiles / Libraries / Linux-x86-64 / libQtCore.so.4)
Nie chcę aktualizować systemu glibc, ponieważ jest to ryzykowne, a administrator nie pozwala mi tego robić.
Ktoś zasugerował, że można po prostu zainstalować nową wersję glibc gdzie indziej i uruchomić program jako
LD_LIBRARY_PATH=/lib/new your_application
i to nie wpłynie na system.
Pytam więc, czy ta metoda naprawdę działa. A jeśli to działa, chcę wiedzieć, jak to zrobić krok po kroku (brakuje mi teraz doświadczenia w Linuksie i chcę jak najszybciej korzystać z Mathematiki w systemie Linux).
Edytuj :
Zauważyłem, że istnieje oprogramowanie o nazwie „Ermine”. Wygląda na to, że może wdrożyć oprogramowanie jako samodzielny pakiet, który nie zależy od środowiska zewnętrznego. Niestety jest to shareware. Myślę więc, że skoro „Ermine” może to zrobić, musi istnieć sposób na użycie nowego oprogramowania na starym systemie.
Odpowiedzi:
Zdecydowanie możesz skompilować nową wersję GLIBC i przechowywać ją w osobnym katalogu. Pierwszą rzeczą, którą musisz zrobić, to pobrać żądaną wersję glibc ze strony http://ftp.gnu.org/gnu/glibc/ .
Uruchom
configure
skrypt i ustaw na--prefix=
coś podobnego/home/you/mylibs
.Po zainstalowaniu go w tym katalogu musisz ustawić
LD_LIBRARY_PATH
lokalizację nowego glibc.Będziesz musiał dowiedzieć się, jakie zależności mogą być potrzebne do skompilowania. Możesz utworzyć skrypt powłoki, który ustawia zmienne LD_ * i uruchamia Twój program (co i tak musiałbyś zrobić), i uruchamiać go wielokrotnie - po drodze pobierz / rekompiluj brakujące biblioteki lib.
Możesz także użyć
ldd
do ustalenia, jakich bibliotek współdzielonych potrzebuje program, a następnie użyj ichldd
w każdej z bibliotek, aby dowiedzieć się, czy wymagają glibc.Może to być bardzo czasochłonny proces i nie jest dla niecierpliwych lub słabo odczuwających bicie serca - przemierzanie / ponowne kompilowanie przez możliwe zależności wymagane do uruchomienia aplikacji może czasami sprawić, że będziesz chciał wyciągnąć włosy.
Aktualizacja 1:
Pobrałem glibc-2.4 i próbowałem go skompilować na CentOS 6. Aby
configure
działać poprawnie, musiałem zmienić sprawdzanie wersjiac
ild
wersji, zmieniając:do:
w wierszach
4045
iw4106
samymconfigure
pliku. Ustawiam zmienne środowiskowe * FLAGS w następujący sposób:a następnie stracony
./configure --prefix=/home/tim/masochist
. Skonfigurował się poprawnie ... i zaczął też poprawnie budować ... ale potem zaczęły mi się pojawiać błędy - głównie kompilator narzekał na przedefiniowanie.W tym momencie poddałem się ... Ponieważ stało się to zbyt czasochłonne . ;)
źródło
root
lub robisz coś dziwnego, na przykład zmieniając LD_PRELOAD w skrypcie inicjującym sesję i blokując się.Aktualizacja glibc do wersji obsługiwanej przez twoją dystrybucję wiąże się z niskim ryzykiem. Jest napisany, aby obsługiwać kompatybilność z wersjami, które pochodzą z bardzo dawnych czasów, a (z wyjątkiem błędów) nowa wersja powinna być tylko kroplą zastępczą. Instalowanie nowej wersji w jakimś dziwnym miejscu jest bardziej ryzykowne, IMHO.
źródło
W tym konkretnym przypadku powiedziałbym, że nie przejmuj się, chyba że masz pomoc (i pozwolenie) od administratorów tego wspólnego systemu.
Mathematica działa na systemach Windows, Mac i Linux, więc po prostu zainstaluj go na komputerze stacjonarnym, gdzie nie musisz się martwić o wpływ na innych. Jest również bardziej prawdopodobne, że system operacyjny będzie nowszy niż RHEL4, dlatego nie będziesz musiał robić żadnych skrupułów, aby go zainstalować.
źródło