Langkau ke kandungan utama

Rantaian isyarat Java

Pustaka Glasswall menggunakan pengendalian isyarat untuk mengelakkan kerosakan berlaku, tetapi ini boleh mengganggu JVM apabila Glasswall dijalankan daripada Java. Untuk memastikan ini berfungsi dengan betul, signal chaining perlu disediakan bagi mengelakkan ralat dalam Glasswall daripada merebak ke JVM. Semasa penyediaan, anda memerlukan lokasi pustaka libjsig.so. Contoh lokasi biasa pustaka ini ditemui:

  • /usr/lib/jvm/jre/lib/libjsig.so
  • /usr/lib/jvm/jre/lib/amd64/libjsig.so
  • /usr/lib/jvm/java/lib/libjsig.so

Ini akan berbeza bergantung pada konfigurasi sistem anda dan lokasi Java dipasang. Dalam contoh kami, laluan yang digunakan ialah /usr/lib/jvm/java/lib/libjsig.so.

Signal chaining tanpa penyediaan

Disebabkan faktor persekitaran tertentu, pustaka Glasswall mungkin berfungsi tanpa masalah walaupun pustaka libjsig tidak disediakan. Walau bagaimanapun, ini tidak dijamin, dan kami amat mengesyorkan agar penyediaan dilakukan.

Release 16.3 dan lebih awal

Untuk release 16.3 dan lebih awal, anda perlu menyediakan pemboleh ubah persekitaran LD_PRELOAD supaya menunjuk ke lokasi pustaka libjsig.so anda. Maklumat lanjut boleh didapati di Signal Chaining.

Contoh LD_PRELOAD mungkin kelihatan seperti ini export LD_PRELOAD=/usr/lib/jvm/java/lib/libjsig.so atau ENV LD_PRELOAD=/usr/lib/jvm/java/lib/libjsig.so dalam fail Docker anda. Ini bergantung pada laluan sebenar ke pustaka libjsig.so.

Release 16.4 dan kemudian

Untuk release 16.4 dan kemudian, pembalut Java untuk pustaka Editor mempunyai kebergantungan langsung pada pustaka libjsig. Ini memerlukan sedikit penyediaan untuk memastikan bahawa linker boleh mencari pustaka tersebut dan menyelesaikan kebergantungan itu. Laluan akan berubah bergantung pada lokasi pustaka. Beberapa contoh penyediaan didokumenkan di bawah:

Pautan simbolik boleh dicipta sama ada dalam /usr/lib atau /usr/lib64 bergantung pada sistem anda untuk menunjuk ke pustaka libjsig.

Sebagai contoh, jalankan arahan berikut dalam terminal dengan akses pentadbir:

ln -s -T /usr/lib/jvm/java/lib/libjsig.so /usr/lib64/libjsig.so
ldconfig

ln akan mencipta pautan simbolik dan ldconfig akan mengemas kini cache pustaka supaya dependensi dapat diselesaikan.

Contoh 2 - menggunakan pemboleh ubah persekitaran LD_LIBRARY_PATH

Pemboleh ubah persekitaran LD_LIBRARY_PATH boleh disediakan untuk menunjuk ke direktori yang mengandungi pustaka libjsig.

Sebagai contoh, persediaannya mungkin kelihatan seperti ini export LD_LIBRARY_PATH=/usr/lib/jvm/java/lib atau ENV LD_LIBRARY_PATH=/usr/lib/jvm/java/lib dalam fail Docker anda.

Semua pustaka dalam direktori tersebut kemudiannya akan tersedia kepada pemaut.

Contoh 3 - konfigurasi baharu dalam /etc/ld.so.conf.d/

Konfigurasi baharu boleh dicipta dalam /etc/ld.so.conf.d yang akan mengandungi direktori pustaka libjsig.

Sebagai contoh, jalankan arahan berikut dalam terminal dengan akses pentadbir:

echo "/usr/lib/jvm/java/lib/" | tee -a /etc/ld.so.conf.d/jvm.conf
ldconfig

Perintah pertama mencipta fail konfigurasi dengan kandungan /usr/lib/jvm/java/lib/. Apabila perintah ldconfig dipanggil, cache pustaka akan dikemas kini untuk memasukkan semua pustaka dalam direktori yang dinyatakan dalam fail konfigurasi.