Ini bukan duplikat karena ini berurusan dengan kekhasan yang saya perhatikan ketika saya gunakan /etc/ld.so.conf
.
Untuk mendapatkan jalur yang dicari oleh tautan dinamis untuk pustaka, saya menjalankan perintah ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
. Ketika /etc/ld.so.conf
tidak memiliki jalur yang terdaftar di dalamnya. Output dari perintah sebelumnya adalah
/lib
/usr/lib
Saya pikir itu mencari /lib
pertama dan kemudian /usr/lib
. Saat saya menambahkan jalur baru, seperti /usr/local/lib
, ke /etc/ld.so.conf
dan kemudian membuat kembali /etc/ld.so.cache
, output dari ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
menjadi
/usr/local/lib
/lib
/usr/lib
Saya menemukan ini aneh karena jika saya benar bahwa urutan direktori yang terdaftar dicari adalah dari atas ke bawah, maka direktori tambahan dicari sebelum /lib
dan /usr/lib
. Direktori tambahan dicari sebelum direktori tepercaya tidak aneh dengan sendirinya, tetapi ketika /lib
dicari sebelumnya /usr/lib
, itu aneh karena /bin
& /sbin
dicari setelah /usr/bin
& /usr/sbin
masuk PATH
.
Bahkan jika jalur yang terdaftar oleh ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"
dicari dari bawah ke atas, itu masih akan menjadi pemesanan miring karena direktori tambahan akan dicari setelah yang tepercaya sementara /lib
akan dicari setelah /usr/lib
.
Jadi, bagaimana urutan ld.so
pencarian jalur untuk perpustakaan? Mengapa /lib
dicari sebelumnya /usr/lib
? Jika tidak, lalu mengapa direktori tambahan dicari /lib
?