Saya menginstal Mathematica 9 pada sistem Red Hat Enterprise Linux AS rilis 4 lama. Setelah instalasi, saya mencoba memulai Mathematica, tetapi pesan berikut keluar:
/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica: /lib64/tls/libc.so.6: versi `GLIBC_2.4 'tidak ditemukan (diperlukan oleh / 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: versi `GLIBC_2.4 'tidak ditemukan (diperlukan oleh / home / wcbao / M / Wolfram / Mathematica / 9.0 / SystemFiles / Libraries / Linux-x86-64 / libQtCore.so.4)
Saya tidak ingin memperbarui sistem glibc, karena berisiko dan administrator tidak mengizinkan saya untuk melakukan itu.
Seseorang menyarankan bahwa mungkin saja menginstal versi baru glibc di tempat lain, dan menjalankan program sebagai
LD_LIBRARY_PATH=/lib/new your_application
dan ini tidak akan mempengaruhi sistem.
Jadi saya bertanya di sini apakah metode ini benar-benar berfungsi. Dan jika berhasil, saya ingin tahu bagaimana melakukannya langkah demi langkah (saya kurang pengalaman di Linux sekarang, dan ingin menggunakan Mathematica di Linux sesegera mungkin).
Edit :
Saya perhatikan bahwa ada perangkat lunak yang disebut "Ermine". Tampaknya ia dapat menggunakan perangkat lunak sebagai paket mandiri yang tidak bergantung pada lingkungan eksternal. Sayangnya, ini adalah shareware. Jadi saya pikir karena "Ermine" dapat melakukannya, pasti ada cara untuk menggunakan perangkat lunak baru pada sistem lama.
Jawaban:
Anda pasti dapat mengkompilasi versi GLIBC baru dan menyimpannya di direktori yang terpisah. Hal pertama yang harus Anda lakukan adalah mengunduh versi glibc yang Anda inginkan dari http://ftp.gnu.org/gnu/glibc/ .
Jalankan
configure
skrip dan atur--prefix=
ke sesuatu seperti/home/you/mylibs
.Setelah Anda berhasil menginstalnya ke direktori itu, Anda harus mengatur Anda
LD_LIBRARY_PATH
ke lokasi glibc baru.Anda harus mencari tahu setiap dependensi yang perlu Anda kompilasi. Anda dapat membuat skrip shell yang menetapkan variabel LD_ * dan menjalankan program Anda (yang harus tetap Anda lakukan), dan menjalankannya berulang kali - unduh / kompilasi ulang lib yang hilang di sepanjang jalan.
Anda juga dapat menggunakan
ldd
untuk menentukan perpustakaan bersama apa yang dibutuhkan oleh program, kemudian gunakanldd
pada masing-masing perpustakaan untuk mencari tahu apakah mereka memerlukan glibc.Ini bisa menjadi proses yang sangat memakan waktu dan bukan karena tidak sabar atau lemah hati - melintasi / mengkompilasi ulang jalan Anda melalui kemungkinan ketergantungan yang diperlukan untuk membuat aplikasi Anda berfungsi kadang-kadang membuat Anda ingin mencabut rambut Anda.
Pembaruan 1:
Saya mengunduh glibc-2.4 dan mencoba untuk mengompilasinya pada CentOS 6. Agar dapat
configure
berfungsi dengan benar, saya harus mengubahac
danld
memeriksa versi dengan mengubah:untuk:
pada baris
4045
dan4106
dalamconfigure
file itu sendiri. Saya mengatur variabel lingkungan * FLAGS saya seperti:dan kemudian dieksekusi
./configure --prefix=/home/tim/masochist
. Ini dikonfigurasi dengan benar ... dan mulai membangun dengan benar juga ... tapi kemudian saya mulai mengalami kesalahan - kebanyakan kompiler mengeluh tentang hal-hal yang didefinisikan ulang.Pada saat itu saya menyerah ... Karena itu terlalu memakan waktu . ;)
sumber
root
atau Anda melakukan sesuatu yang aneh seperti mengubah LD_PRELOAD Anda dalam skrip init sesi dan mengunci diri Anda.Memperbarui glibc ke versi yang didukung oleh distribusi Anda berisiko rendah. Ini ditulis untuk menangani kompatibilitas dengan versi yang tanggal jauh , dan (bug baring) versi baru seharusnya hanya setetes penggantian. Menginstal versi baru di tempat yang aneh lebih berisiko, IMHO.
sumber
Dalam contoh khusus ini saya akan mengatakan jangan repot-repot, kecuali jika Anda memiliki bantuan (dan izin) dari administrator sistem bersama ini.
Mathematica berjalan di Windows, Mac dan Linux jadi pasang saja di mesin desktop Anda di mana Anda tidak perlu khawatir tentang mempengaruhi orang lain. Ini juga lebih mungkin bahwa OS akan lebih baru daripada RHEL4 dan oleh karena itu Anda tidak perlu melakukan liuk untuk menginstalnya.
sumber