Cara mengekspor LD_LIBRARY_PATH ke semua pengguna dan layanan sistem

12

Saya ingin mengekspor LD_LIBRARY_PATHke layanan sistem dan semua pengguna. Layanan sistem dijalankan sebelum masuk, jadi .bashrctidak berlaku.

Bagaimana cara mencapai ini?

linquize
sumber
1
Bisakah Anda menguraikan apa masalah sebenarnya yang Anda coba selesaikan?
Keith

Jawaban:

20

Anda tidak perlu melakukannya. Tambahkan direktori /etc/ld.so.confatau file baru /etc/ld.so.conf.d/, tergantung distro.

Setelah itu, Anda harus menjalankan (setidaknya pada Redhat) ldconfigsebagai root.

Sebagai peringatan, Anda harus berhati-hati di perpustakaan mana yang Anda tambahkan ke jalur pustaka bersama sistem (melalui lingkungan, ld.so.conf, atau memasukkan / usr / local / lib). Secara khusus, Anda berhati-hatilah terhadap dua versi berbeda dari perpustakaan yang sama dengan soname yang sama. Misalnya, jika Anda memiliki libfoo.0.1 (soname libfoo.0) diinstal melalui dpkg / rpm / etc., Anda tidak ingin libfoo.0.2 (juga soname libfoo.0) di direktori perpustakaan khusus Anda.

(Sebenarnya tidak mudah untuk melakukan variabel lingkungan sistem-lebar. Anda bisa mendapatkan login pengguna paling /etc/environment. Script akan tergantung pada sistem init Anda, tetapi (misalnya) dengan sysv init pada Debian, Anda bisa memasukkannya /etc/default/rcS. Apa pun kehabisan inittab, well, saya pikir Anda tidak bisa.)

derobert
sumber
@ Bahaham Saya menduga karena edit tumpang tindih, Anda akhirnya mengambil paragraf dari jawaban saya. Saya akan menambahkannya kembali ..
derobert
Tidak, saya hanya menghapusnya karena "Anda tidak perlu" sudah merangkumnya dan itu jauh lebih ringkas.
bahamat
@ Bahamaat Periksa log edit, unix.stackexchange.com/posts/46620/revisi ... Saya pikir yang terjadi adalah kami berdua menekan tautan edit, lalu saya kirimkan perubahan saya (paragraf tambahan), lalu Anda mengirimkan perubahan Anda (yang tentu saja tidak termasuk paragraf tambahan). Sepertinya StackExchange harus mendeteksi ini dan memperingatkan dengan keras, tetapi ternyata tidak ...
derobert
Tidak, saya hanya menghapus paragraf itu secara eksplisit karena saya pikir itu tidak perlu. Saya tidak melakukan perubahan lain. Hasil edit kami terpisah 6 m dan yang muncul setelahku adalah 12 m kemudian. Itu bukan tabrakan.
bahamat
@ Bahahamat Ah, meninggalkan komentar edit akan menghapus kebingungan ...
derobert
3

Anda dapat menambahkan setiap jalur dalam file di /etc/ld.so.conf.dkemudian jalankan:

ldconfig -v 

Kemudian muat.

Teluk Persia
sumber