LINUX.ORG.RU

Поиск библиотек загрузчиком


0

1

Добрый день.

Подключаю к системе новый диск (структура папок: bin, lib, etc, boot, tools и тд) для новой системы, монтирую к папке /mnt/newSystem.

Собираю glibc следующими опциями: ../configure --prefix=/mnt/newSystem/tools/glibc --with-headers=....

make

make install

Сначала копирую все получившиеся библиотеки в папку /mnt/newSystem/lib.

Пытаюсь загрузиться с нового диска, выдается ошибка «Не могу загрузить разделяемую библиотеку libc.so.6», хотя она есть в папке lib.

Если в папке lib оставить только ld-linux.so.2, а остальные скинуть в папку (на новом диске, предварительно создав) /mnt/newSystem/tools/glibc/lib, все грузится.

Создание файла ld.so.conf в папке /lib со строкой «/lib» ситуацию не изменило.

Вопрос: где и какие параметры надо указывать для нормальной работы?

Заранее всем спасибо


glibc будет некорректно работать с другим префиксом нежели /usr

/lib/ld-linux.so.2
прописывается статически во все бинарники как интерпретатор ELF (32 бит)

Sylvia ★★★★★
()

>Создание файла ld.so.conf в папке /lib со строкой «/lib» ситуацию не изменило.

файл создается в /etc

после чего делается ldconfig
который создает кеш линкера с путями ко всем имеющимся динамическим библиотекам ( пути указанные в /etc/ld.so.conf )

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

// оффтопик: вы кажется полгода или год назад также собирали LFS ?
может стоит собрать дистрибутив попроще ? Slackware? Gentoo? серьезно...


у Glibc есть много жестко заданных параметров, путь к загрузчику ELF - один из них, переопределять его - равносильно тому что напрашиваетесь на достаточно большие проблемы и глюки.
Да и не обязательно так бутстрапить ЛФС, есть более простые пути

собрать на текущей системе основу, make install делать с

make install DESTDIR=/lfs install_root=/lfs INSTALL_ROOT=/lfs

как соберете тулчейн и основные утилиты с библиотеками - делайте chroot туда и дособирайте остальное...

Sylvia ★★★★★
()
Ответ на: комментарий от IlyamI

номинально в /etc

хотя при переопределении --prefix

возможны и такие варианты

* вы задаете --sysconfdir=/etc
отдельно

* sysconfdir может быть установлена и как ${PREFIX}/etc

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

вообщем я к тому что сложно будет разобраться что вы там насобирали и что куда положили, можете сами поискать ошибки с помощью strace
из chroot'a

Sylvia ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.