ДЛЯ НАЧАЛА: ЖИВЫЕ

- Knoppix -
Линукс за пять минут
- Puppy Linux -
Хороший друг


ДЛЯ ДЕЛА: ПРОФИ

- Debian -
Он такой один
- Linux Mint -
С родинкой на щеке!
- CentOS -
Копейка рубль бережёт!
- Fedora -
По следам Red Hat
- Ubuntu Linux -
Мы одной крови!
- Mageia -
Красота и удобства
- openSUSE -
Настоящее немецкое качество
- Slackware -
Линукс из кубиков
- ALT Linux -
Что русскому хорошо





ДЛЯ ДЕЛА: РОЛЛЫ

- ArchLinux -
Гениальное - просто!
- PCLinuxOS -
Просто линукс
- Aptosid -
Почувствуй силу!


ДЛЯ ДЕЛА: СОБЕРИ САМ

- Gentoo -
Каждому своё
- LinuxFromScratch -
Линукс с нуля


ДЛЯ ДЕЛА: ЛЁГКИЕ

- DeLiCate -
Старость в радость!
- SLAX -
Тысяча и один модуль


ЗАЩИТА

- OpenWall -
Не стучите, закрыто!
- Kali -
Вам, хакеры!


ПРИЛОЖЕНИЯ

- Planet CCRMA -
Работа со звуком
- VegaStrike -
Каждому по планете!


ЭКСПЕРИМЕНТ

- коЛинуксы -
Не выходя из Виндоус
- GoboLinux -
Очевидно и вероятно
- ReactOS -
Освободите Виндоус!


РОДНЯ

- BSD-семейство -
На плечах гигантов
- OpenIndiana -
До звёзд рукой подать


АРХИВ (2003-2016)
ФОРУМ




НАШИ ПРОЕКТЫ

MATRIX GL
ПОЛЕЗНЫЕ СОВЕТЫ
ПИНГВИН В КАРМАНЕ
ЗАКЛАДКИ
СТАТЬИ
КОНТАКТЫ


ПОМОЧЬ






Личный архив ЕЗ

Запуск программы, собранной с другой версией glibc

Иногда необходимо на системе с 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. Для этого и приходится указывать путь к нему вручную.

Вернуться к оглавлению


При частичной или полной перепечатке, переводе, переработке материалов сайта ссылка на Knoppix.ru обязательна.
(c) Knoppix.ru 2003 - 2016