Chuỗi tín hiệu Java
Thư viện Glasswall sử dụng xử lý tín hiệu để ngăn sự cố sập xảy ra, nhưng điều này có thể gây nhiễu với JVM khi Glasswall được chạy từ Java. Để việc này hoạt động chính xác, cần thiết lập signal chaining nhằm ngăn lỗi trong Glasswall lan truyền vào JVM. Trong quá trình thiết lập, bạn sẽ cần vị trí của thư viện libjsig.so. Ví dụ về những nơi thường có thể tìm thấy thư viện này:
/usr/lib/jvm/jre/lib/libjsig.so/usr/lib/jvm/jre/lib/amd64/libjsig.so/usr/lib/jvm/java/lib/libjsig.so
Điều này sẽ khác nhau tùy theo cấu hình hệ thống của bạn và nơi Java được cài đặt. Trong các ví dụ của chúng tôi, đường dẫn được sử dụng là /usr/lib/jvm/java/lib/libjsig.so.
Signal chaining không cần thiết lập
Do một số yếu tố môi trường nhất định, thư viện Glasswall có thể hoạt động không gặp vấn đề khi thư viện libjsig chưa được thiết lập. Điều này không được đảm bảo, và chúng tôi đặc biệt khuyến nghị thực hiện thiết lập.
Bản phát hành 16.3 trở về trước
Đối với các bản phát hành 16.3 trở về trước, bạn sẽ cần thiết lập biến môi trường LD_PRELOAD để trỏ tới vị trí của thư viện libjsig.so. Có thể tìm thêm thông tin tại Signal Chaining.
Ví dụ về LD_PRELOAD có thể trông như thế này: export LD_PRELOAD=/usr/lib/jvm/java/lib/libjsig.so hoặc ENV LD_PRELOAD=/usr/lib/jvm/java/lib/libjsig.so trong tệp Docker của bạn. Điều này sẽ phụ thuộc vào đường dẫn thực tế tới thư viện libjsig.so.
Bản phát hành 16.4 trở về sau
Đối với các bản phát hành 16.4 trở về sau, Java wrapper cho thư viện Editor có phụ thuộc trực tiếp vào thư viện libjsig. Điều này yêu cầu một chút thiết lập để bảo đảm linker có thể tìm thấy thư viện và phân giải phụ thuộc. Các đường dẫn sẽ thay đổi tùy theo vị trí của thư viện. Một vài ví dụ về cách thiết lập được ghi lại bên dưới:
Ví dụ 1 - liên kết tượng trưng tới thư viện libjsig
Có thể tạo một liên kết tượng trưng trong /usr/lib hoặc /usr/lib64 tùy theo hệ thống của bạn để trỏ tới thư viện libjsig.
Ví dụ, chạy các lệnh sau trong terminal với quyền quản trị:
ln -s -T /usr/lib/jvm/java/lib/libjsig.so /usr/lib64/libjsig.so
ldconfig
ln sẽ tạo liên kết tượng trưng và ldconfig sẽ cập nhật bộ nhớ đệm thư viện để phần phụ thuộc có thể được phân giải.
Ví dụ 2 - sử dụng biến môi trường LD_LIBRARY_PATH
Biến môi trường LD_LIBRARY_PATH có thể được thiết lập để trỏ tới thư mục chứa thư viện libjsig.
Ví dụ, thiết lập có thể trông như thế này: export LD_LIBRARY_PATH=/usr/lib/jvm/java/lib hoặc ENV LD_LIBRARY_PATH=/usr/lib/jvm/java/lib trong tệp Docker của bạn.
Sau đó, tất cả các thư viện trong thư mục sẽ khả dụng cho trình liên kết.
Ví dụ 3 - cấu hình mới trong /etc/ld.so.conf.d/
Có thể tạo một cấu hình mới trong /etc/ld.so.conf.d chứa thư mục của thư viện libjsig.
Ví dụ, chạy các lệnh sau trong terminal với quyền quản trị:
echo "/usr/lib/jvm/java/lib/" | tee -a /etc/ld.so.conf.d/jvm.conf
ldconfig
Lệnh đầu tiên tạo tệp cấu hình với nội dung /usr/lib/jvm/java/lib/. Khi lệnh ldconfig được gọi, bộ nhớ đệm thư viện sẽ được cập nhật để bao gồm tất cả các thư viện trong thư mục được chỉ định trong tệp cấu hình.