Setel LD_LIBRARY_PATH untuk aplikasi yang dimulai dari desktop

8

Saya telah menginstal Qt Creator di Ubuntu 10,04 LTS. Ketika saya meluncurkan Qt Creator dari desktop saya dapat membangun aplikasi yang sedang saya kerjakan tetapi tidak dapat menjalankan atau men-debug-nya. Setelah berjuang sedikit, saya menemukan bahwa LD_LIBRARY_PATH tidak disetel untuk aplikasi yang dijalankan dari desktop. Jika saya memulai Qt Creator dari bash (tempat LD_LIBRARY_PATH diatur dalam .bashrc) semuanya berjalan dan men-debug dengan sempurna.

Bagaimana cara mengatur LD_LIBRARY_PATH sehingga diatur untuk semua aplikasi yang berjalan?

dwj
sumber

Jawaban:

6

Ini seperti bug dalam aplikasi itu sendiri. Seharusnya memiliki skrip wrapper yang dengan benar mengatur LD_LIBRARY_PATHvariabel yang diperlukan . Berhati-hatilah saat menulis skrip seperti itu, karena Anda tidak ingin memiliki bagian kosong dari LD_LIBRARY_PATHstring di antara titik dua yang digunakan sebagai pemisah jalur. Sebagai contoh, ini dapat menghasilkan jalur yang buruk, jika variabel awalnya kosong (menghasilkan string kosong yang memimpin sebelum titik dua):

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/some/path/for/app"

Jadi, saat menambahkan jalur, Anda ingin menguji string kosong terlebih dahulu. Misalnya, menggunakan kode shell:

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/some/path/for/app
Kees Cook
sumber
2

Buat file baru /etc/ld.so.conf yang berisi:

# Begin /etc/ld.so.conf
/lib
/usr/lib
/usr/X11R6/lib
# whatever else #

Perbarui cache loader dinamis dengan menjalankan:

ldconfig
Extender
sumber
0

Selain itu .bashrc, juga mengatur variabel lingkungan di .profile. File ini akan diproses dan dimuat oleh sesi Anda, jadi itu akan memengaruhi semua yang berjalan sebagai pengguna Anda. Juga: File ini mengatakan tidak dibaca oleh Bash jika .bashrcada, tetapi tampaknya masih berlaku (mungkin karena Bash mewarisi sesi X dari mana ia dimulai). Tidak ada salahnya untuk memiliki variabel di kedua file.

Jacob Peddicord
sumber
Saya mencoba membuat. Profil juga tanpa hasil.
dwj
Saya membaca di suatu tempat bahwa ada fitur "keamanan" dari Ubuntu (Debian?) Yang tidak dapat membiarkan Anda mengatur LD_LIBRARY_PATH saat startup karena ditimpa setelah memuat .profile. Masih ada solusi.
alfC
0

atur di /etc/bash.bashrc di dekat bagian atas untuk membuat perubahan sistem saat bootup.

Roop
sumber