|
![]() ЛУЧШЕЕ ИЗ ЛУЧШЕГО
![]()
- Knoppix - ДЛЯ ДЕЛА: ПРОФИ
- Debian - ДЛЯ ДЕЛА: ЛЁГКИЕ
- Moblin - ЗАЩИТА
- BackTrack/WHAX - МУЛЬТИМЕДИЯ
- 64 Studio - ПРИЛОЖЕНИЯ
- OpenDisc - ДЛЯ ЗАБАВЫ
- Линукс Геймер - ЭКСПЕРИМЕНТ
- GoboLinux - РОДНЯ
- OpenSolaris -
![]()
(2003 - 2010) ![]() ![]() ![]() ![]()
ПИНГВИН В КАРМАНЕ ![]() ![]() ![]() ![]() ![]() ![]() корректор ![]() |
Иногда необходимо на системе с glibc 2.2 запустить программу, собранную с glibc 2.3. Если бы вместо glibc была практически любая другая библиотека - можно было бы взять где-нибудь нужную ее версию и поставить рядом с имеющейся. Проблем обычно не бывает. Но в случае с glibc так сделать не удастся, ведь это самая главная системная библиотека, и нескольких ее версий в системе быть не может. А поставить новую версию вместо старой не удастся - не сможет запуститься ни одна программа, требующая старую версию. Безусловно, лучшим решением проблемы является пересборка необходимой программы под имеющуюся версию glibc. Но если этого сделать нельзя - придется запускать программу особым образом. Итак, сначала нам надо где-то взять собственно glibc 2.3. Затем мы кладем ее файлы в какую-нибудь папку, например, в папку lib в своей домашней директории. Тогда запускать требующую glibc 2.3 программу придется так: $ LD_LIBRARY_PATH=~/lib ~/lib/ld-linux.so.2 /usr/local/bin/myprog Здесь сначала устанавливается переменная окружения LD_LIBRARY_PATH=~/lib, которая говорит, что библиотеки должны искаться в папке ~/lib (если вы положили их в другое место - поменяйте путь). Затем запускается динамический загрузчик ld-linux.so.2, который загружает программу myprog вместе с необходимыми ей библиотеками. Технические подробности: При обычном запуске любой программы система незаметно для пользователя запускает системный /lib/ld-linux.so.2, загружающий все библиотеки. Можно запускать его и самому: $ /lib/ld-linux.so.2 /bin/ls / bin boot dev etc home lib mnt opt proc root sbin sys tmp usr var В данном случае неважно, был ли ld-linux.so.2 указан при запуске программы - система и так знает, что запускать его надо из /lib (точнее, это записано в самом файле /bin/ls). Но если мы используем нестандартную (т.е. отличную от установленной в /lib) версию glibc, мы должны использовать соответствующую версию ld-linux.so.2. Для этого и приходится указывать путь к нему вручную. |
|||||||||||||||||||||||||||||||||||
|
материалов cайта ссылка на Knoppix.ru обязательна (c) Knoppix.ru 2003 - 10 |
||||||||||||||||||||||||||||||||||||