UBUNTU KUTUBXONALARINI O'RNATISH
Odatda, agar siz yangi dasturlarni o'rnatish uchun distributivingiz paketi menejeridan foydalansangiz, unda kutubxonalar avtomatik ravishda o'rnatiladi. Ammo agar siz manbadan dastur yaratmoqchi bo'lsangiz yoki 64 bitli tizimda 32 bitli dasturni ishga tushirsangiz, muammolar paydo bo'lishi mumkin. Masalan, dasturni boshlash yoki kompilyatsiya qilish paytida siz xatoga yo'l qo'yasiz:
error while loading shared libraries: xxxx.so.0
cannot open shared object file no such file or directory
Odatda Ubuntu-da kutubxona to'plamlari nomlari sizga kerak bo'lgan kutubxonaning nomiga mos keladi. Shuning uchun aksariyat hollarda aniq nomni aniqlash uchun paketdagi ma'lumotlar bazasida qidirishdan foydalanish kifoya:
$ apt search libfuse
Ko'rib turganingizdek, ikkita kutubxona variantlari topildi - libfuse2 va libfuse-dev.
Agar odatiy dastur kutubxonaga muhtoj bo'lsa va uni manbadan yig'ib olish kerak bo'lmasa, ubuntu kutubxonasini dev prefiksisiz o'rnatish kifoya qiladi. Masalan:
$ sudo apt install libfuse2
Agar ilovani manbalardan yig'ib olish kerak bo'lsa, unda odatiy kutubxonaga qo'shimcha ravishda sizga kutubxonada bajarilgan funksiyalar tavsifi bo'lgan sarlavha fayllari kerak bo'ladi. Bunday paketlarda dev prefiksi mavjud, masalan, libfuse-dev, keyin siz ushbu to'plamni o'rnatishingiz kerak:
$ sudo apt install libfuse-dev
64 bitli tizimda 32 bitli dasturni ishga tushirishingiz kerak bo'lganda juda ko'p muammolli vaziyatga olib kelishi mumkin. Masalan, agar siz kutubxonaning 64 bitli versiyasini o'rnatgan bo'lsangiz va dastur hali ham uni topa olmasligingizni aytsa, ehtimol bu 32 bitli dastur bo'lib, unga 32 bitli kutubxona kerak bo'ladi. Agar dastur paket menejeri yordamida o'rnatilmagan bo'lsa, siz kutubxonalarni ham qo'lda o'rnatishingiz kerak bo'ladi.
File utiliti yordamida siz necha razryadli ekanligini ko'rishingiz mumkin:
$ file /usr/bin/skype
Skrinshotda dasturni 32 bit uchun ikkita variant mavjud, bizning holimizda Skype va 64 uchun - mount.
Ubuntu kutubxonasini i386 arxitekturasiga o'rnatish uchun avval dpkg-da i386 arxitekturasini qo'llab-quvvatlashni qo'shishingiz kerak:
$ sudo dpkg --add-architecture i386
Keyin omborlarimizni yangilaymiz:
$ sudo apt update
Va sizga kerak bo'lgan kutubxonani o'rnatish paytida, endi to'plam nomidan keyin libfuse-dev orqali arxitekturani ko'rsatishingiz kerak:
$ sudo apt install libfuse-dev:i386
Agar siz kutubxona o'rnatilganligiga amin bo'lsangiz, lekin dastur hali ham bunday kutubxona yo'qligini aytsa, ehtimol u faqat kutubxonaning boshqa versiyasini talab qilishi mumkin. Masalan, tizimda libudev.so.0 mavjud va dasturga libudev.so.0.1 kerak. Agar siz paketni boshqa distributiv uchun o'rnatishga harakat qilsangiz, ayniqsa Red Hat tizimlarida. Agar omborxonalarda kutubxonaning zarur versiyasi mavjud bo'lmasa, yoki ular bir xil bo’lsa va siz shunchaki ramziy havolani yaratishingiz mumkin:
$ ln -s /lib/libudev.so.0 /lib/libudev.so.0.1
Keyin dastur kerakli kutubxonani topadi.
Do'stlaringiz bilan baham: |