ПредишенСледващото

Управление на споделени библиотеки
Идеята на споделената библиотека е съвсем проста: парче компилиран код, който предоставя услугите и функциите на други фрагменти от компилиран код. Споделени библиотеки често предоставят подлежащо на поискване изплащане функции и други програми са проектирани така, че най-много програми могат да ги използват отново.
Споделени библиотеки за предоставяне на функциите за подкрепа на други програми. Този подход намалява средният размер на програми, освобождавайки значителна част от системната памет.
По време на зареждане FreeBSD система създава кеш на наличните споделени библиотеки. Програми не трябва да сканира целия диск, когато те търсят за; те просто питам за кеш необходимите функции. В действителност, способността за управление на кеш библиотека - е една от функциите, които правят разлика новака от професионален.
FreeBSD предоставя много разумни параметрите, зададени по подразбиране, но тук ние ще разгледаме необходимите инструменти за конфигуриране и управление на кеша при различни обстоятелства. Споделено библиотеки - това означава сприхав, но с помощта на ldconfig. ДЛД и глава на раменете си може да бъде опитомен.

Основният инструмент за управление на споделени библиотеки - ldconfig (8). Обсъдихме няколко различни отбори, принадлежащи към ldconfig: rtld (л), LDD (л), а самата програма ldconfig.
На първо място, погледнете видовете изпълними файлове: Aout и ELF. Като администратор, не е нужно да има добро разбиране на Aout и ELF, но трябва да сте наясно, че Aout - е остарял стандарт, а ELF - новото, и че двоичните файлове от същия тип не могат да използват различен тип библиотека. ELF-програми не могат да се използват Aout-библиотека. (В FreeBSD Netscape изпълним файл е Aout формат, така че използването му трябва да се инсталира с библиотеки съвместимост Aout среда XFree86.) Въпреки че Aout-изпълними файлове са на изчезване, FreeBSD система за неопределено време трябва да подкрепят и двата вида.
Когато стартирате на елфите-програмите, които са необходими библиотека, системата изисква rtld (л), «свръзка по време на работа» (по време на работа агент), rtld изследва изтеглили програмата, определя кои библиотеки от която се нуждаят, а след това се зарежда тези библиотеки. За Aout-nporpamm отделни линкер наречен LD (Aout).

Ако се изисква библиотеката не е в нито една от сканираното директория, тя трябва да бъде намерен. Най-общо казано, ако отреже първите букви на името на библиотеката и се прилага> намерете или> намерете >> / >> име >> libname >> печат>, файлът ще бъде намерен. В най-лошия случай, ще трябва да бродят из дълъг списък от редовете с резултати, един от които ще бъдат намерени необходимите библиотеки.
След инсталирането на програмата в системата, може да получите нова директория с библиотеките. Използвайте -м ключа просто да "излее" на новия библиотечен каталог на съществуващ кеш. Някои от "портове" дори да използвате този ключ, за да изберете библиотеката при процеса на стартиране, което премахва досадно объркване с /etc/rc.conf. За "инфузия" на моята библиотека в съществуващ кеш пиша тази команда:
# Ldconfig -m / ЮЕсАр / местни / пилот / ИЪ

LD_LIBRARY_PATH
Ключови -м работи чудесно от гледна точка на системния администратор на, но тя не е подходяща за скромен потребител без корен привилегии. Освен това, ако средният потребител има свой собствен набор от библиотеки, системен администратор може да не позволи на универсален достъп до тях. И тъй като собственикът на споделена библиотека директория трябва да бъде корен, обикновените потребители не могат да получат достъп до тази директория. Вероятно администраторът на системата ще се опита да не напускат най-малък шанс да се асоциира с личен библиотека за потребителя на софтуера на системата. Той е тук, че се притекат на помощ, променлива LD_LIBRARY_PATH на околната среда. Вместо да създаде кеш, LD_LIBRARY_PATH променлива указва на системата да се търси нова библиотека в директориите, списъкът на които е zadaet.V LD_LIBRARY_PATH да зададете произволен брой директории, разделени със запетая. Например, мога да сложа край на директорията / Начало / mwlucas / ИЪ и / COMPAT / Linux / ЮЕсАр / ИЪ / местно в LD_LIBRARY_PATH, за да инсталирате софтуера. За да направите това, аз въведете следната команда:
S SetEnv LD_LIBRARY_PATH / Начало / mwlucas / ИЪ: / COMPAT / Linux / ЮЕсАр / ИЪ / местно
Например, аз обикновено се инсталира StarOffice ръчно, и не се прилагат към пристанището. В този случай, на инсталационната процедура премахва различни библиотеки в /tmp/sv001.tmp и очаква да ги намери, когато стартирате графичния инсталатор. Да наистина са открити тези библиотеки, да започна с инсталационния пакет, който е посочен в каталог LO_LIBRARY_PATH къс / sv001.tmp:
№ SetEnv LD_IIBRARY_PATH /tmp/sv001.tmp # ./setup
Когато графичния инсталатор ще стартира StarOffice, той ще намери в този каталог уроците на библиотеката. По този начин, няма нужда да се преконфигурира цялата система на ДДС FreeBSD е само да се прилага за дадена програма.

На последно място, възниква въпросът: какво библиотеки се нуждаят от програмата?

Това заключение съдържа имената на споделени библиотеки, които са необходими Emacs, и определя местоположението на файловете, които съдържат тези библиотеки. Този списък може да се сравни с изхода на ldconfig -r на команди, за да сте сигурни, че програмата има всичко необходимо. Или търси за необходимите библиотеки.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!