Tôi muốn xuất LD_LIBRARY_PATH
sang 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 đó .bashrc
không áp dụng.
Làm thế nào để đạt được điều này?
Tôi muốn xuất LD_LIBRARY_PATH
sang 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 đó .bashrc
không áp dụng.
Làm thế nào để đạt được điều này?
Câu trả lời:
Bạn không cần. Thêm thư mục vào /etc/ld.so.conf
hoặ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) ldconfig
vớ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ể.)
Bạn có thể thêm mọi đường dẫn trong tệp vào /etc/ld.so.conf.d
rồi chạy:
ldconfig -v
Sau đó tải chúng.