Không thể tìm thấy tệp đối tượng chia sẻ mở libjli.so - không có tệp hoặc thư mục như vậy


8

Trên 64-bit RHEL5 chạy bản cập nhật Java 1.6.0 16, root có thể chạy thành công chương trình Java nhưng người dùng không thể vì libjli.sokhông thể tìm thấy. SELinux bị tắt và môi trường giống nhau trước khi chương trình được chạy. Tôi đã thử đưa libjli.sovào LD_LIBRARY_PATHnhưng nó không tạo ra sự khác biệt.

Làm cách nào để khắc phục lỗi này?

Câu trả lời:


9

Khả năng đầu tiên mà lò xo trong tâm trí là libjli.sochỉ có thể đọc được bằng root. Vì vậy, bước một:

ls -l $(locate libjli.so)

Nếu nó ở một vị trí kỳ lạ (không phải trong /usr/libhoặc /lib), hãy tạo tệp /etc/ld.so.conf.d/java.confchứa đường dẫn đến thư mục chứa libjli.sovà chạy /sbin/ldconfigdưới dạng root.

Để biết thêm thông tin khắc phục sự cố, hãy chạy lệnh này, một lần là root và một lần với tư cách là người dùng không root:

ldd java

Trong một thế giới lành mạnh, đầu ra của cả hai sẽ giống hệt nhau. Làm thế nào chúng khác nhau sẽ cho bạn biết rất nhiều về lý do tại sao điều này là thất bại.


Sheesh, tôi đã thiết lập LD_LIBRARY_PATH, tôi nghĩ conf của ldconfig sẽ không có kết quả. ldd java trả về một đường dẫn tương đối có chứa '..' cho libjli, tôi đoán rằng nó đã không hoạt động như các trình đóng gói hy vọng cho ứng dụng khách 16 FCS cập nhật Java 1.6.0 cụ thể này.
joeforker
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.