Як експортувати LD_LIBRARY_PATH для всіх користувачів та системних служб


12

Я хочу експортувати LD_LIBRARY_PATHв системні сервіси та всіх користувачів. Системні послуги запускаються перед входом у систему, тому .bashrcце не застосовується.

Як цього досягти?


1
Не могли б ви детальніше зупинитися на тому, що саме є проблемою, яку ви намагаєтеся вирішити?
Кіт

Відповіді:


20

Вам не потрібно. Додайте каталог /etc/ld.so.confабо новий файл у /etc/ld.so.conf.d/, залежно від дистрибутива.

Після цього потрібно запустити (принаймні на Redhat) ldconfigяк root.

Як обережне слово, ви повинні бути обережними, які бібліотеки ви додаєте до загальнодоступного шляху до бібліотеки (через оточення, ld.so.conf або вводячи в / usr / local / lib). Зокрема, ви остерігайтеся двох різних версій однієї бібліотеки з тим самим іменем. Наприклад, якщо у вас встановлено libfoo.0.1 (ім'я libfoo.0), встановлене через dpkg / rpm / тощо., Ви не хочете, щоб libfoo.0.2 (також ім’я libfoo.0) у вашому користувальницькому каталозі бібліотеки.

(Насправді не так просто зняти загальну систему змінної середовища. Ви можете отримати більшість входів користувачів /etc/environment. Сценарії залежатимуть від вашої системи init, але (наприклад) із системою sysv init на Debian, ви можете це ввести /etc/default/rcS. біжи прямо з inittab, ну, я не думаю, що ти можеш.)


@bahamat Я здогадуюсь через перекриття редагування, ви завершили дістаючи абзац з моєї відповіді. Я додам його назад ..
derobert

Ні, я просто її видалив, тому що "вам не потрібно" це підсумовує, і це набагато більш стисло.
Багамат

@bahamat Перевірте журнал редагування, unix.stackexchange.com/posts/46620/reitions ... Я думаю, що сталося так, що ми обидва потрапили на посилання редагування, потім я подав свою зміну (додатковий абзац), потім ви подали свою зміну (що, звичайно, не включало зайвий абзац). Схоже, StackExchange повинен виявити це і попередити голосно, але, мабуть, ні ...
derobert

Ні, я явно вилучив цей абзац, бо вважав, що це непотрібно. Я не вносив жодних інших змін. Наші зміни були на відстані 6 м один від одного, і той, що прийшов за мною, був через 12 м. Це було не зіткнення.
bahamat

@bahamat Ах, залишивши коментар для редагування, очистить плутанину ...
derobert

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.