Cách xuất LD_LIBRARY_PATH cho tất cả người dùng và dịch vụ hệ thống


12

Tôi muốn xuất LD_LIBRARY_PATHsang dịch vụ hệ thống và tất cả người dùng. Dịch vụ hệ thống được chạy trước khi đăng nhập, do đó .bashrckhông áp dụng.

Làm thế nào để đạt được điều này?


1
Bạn có thể giải thích vấn đề thực sự bạn đang cố gắng giải quyết là gì không?
Keith

Câu trả lời:


20

Bạn không cần. Thêm thư mục vào /etc/ld.so.confhoặc một tệp mới /etc/ld.so.conf.d/, tùy thuộc vào distro.

Sau đó, bạn phải chạy (ít nhất là trên Redhat) ldconfigvới quyền root.

Để thận trọng, bạn cần cẩn thận những thư viện nào bạn thêm vào đường dẫn thư viện chia sẻ hệ thống (thông qua môi trường, ld.so.conf hoặc đưa vào / usr / local / lib). Cụ thể, bạn hãy cẩn thận với hai phiên bản khác nhau của cùng một thư viện có cùng soname. Ví dụ: nếu bạn có libfoo.0.1 (soname libfoo.0) được cài đặt qua dpkg / vòng / phút, v.v., bạn không muốn có libfoo.0.2 (cũng là soname libfoo.0) trong thư mục thư viện tùy chỉnh của bạn.

(Thật ra không dễ để loại bỏ biến môi trường toàn hệ thống. Bạn có thể nhận được hầu hết thông tin đăng nhập của người dùng /etc/environment. Tập lệnh sẽ phụ thuộc vào hệ thống init của bạn, nhưng (ví dụ) với sysv init trên Debian, bạn có thể đặt nó vào /etc/default/rcS. chạy thẳng ra khỏi inittab, tôi không nghĩ bạn có thể.)


@bahamat Tôi đoán là do một chỉnh sửa chồng chéo, bạn đã lấy ra một đoạn từ câu trả lời của tôi. Tôi sẽ thêm nó trở lại ..
derobert

Không, tôi chỉ gỡ bỏ nó vì "bạn không cần" đã tổng hợp nó và nó ngắn gọn hơn nhiều.
bahamat

@bahamat Kiểm tra nhật ký chỉnh sửa, unix.stackexchange.com/posts/46620/revutions ... Tôi nghĩ điều gì đã xảy ra là cả hai chúng tôi đều nhấn liên kết chỉnh sửa, sau đó tôi đã gửi thay đổi của mình (đoạn thêm), sau đó bạn đã gửi thay đổi của mình (tất nhiên không bao gồm đoạn thêm). Có vẻ như StackExchange phải phát hiện ra điều này và cảnh báo lớn, nhưng dường như không ...
derobert

Không, tôi chỉ xóa đoạn đó một cách rõ ràng vì tôi nghĩ nó không cần thiết. Tôi đã không thực hiện bất kỳ thay đổi khác. Các chỉnh sửa của chúng tôi cách nhau 6m và một lần sau tôi là 12m. Đó không phải là một vụ va chạm.
bahamat

@bahamat Ah, để lại một bình luận chỉnh sửa sẽ xóa tan sự nhầm lẫn ...
derobert

3

Bạn có thể thêm mọi đường dẫn trong tệp vào /etc/ld.so.conf.drồi chạy:

ldconfig -v 

Sau đó tải chúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.