Как перенаправить путь по умолчанию для библиотеки общего доступа компоновщика /lib64/libc.so.6, /lib64/libc.so.6: версия `GLIBC_2.14' не найдена

Как перенаправить путь по умолчанию для библиотеки общего доступа компоновщика /lib64/libc.so.6, /lib64/libc.so.6: версия `GLIBC_2.14' не найдена

Моя машина Linux — x86_64-redhat-linux.

Однако я использую другую цепочку инструментовaarch64-linux-gnu-gccна этой машине для сборки (мне не нужно запускать то, что я собираю, на этой машине, просто сборка, поэтому будет неплохо использовать arm toolchain для сборки)

Я получаю следующую ошибку:

aarch64-linux-gnu-gcc: /lib64/libc.so.6: 
version `GLIBC_2.14' not found (required by aarch64-linux-gnu-gcc)

Итак, текущий путь к общей библиотеке по умолчанию указывает на /lib64/libc.so.6, я не хочу его обновлять, так как я не единственный пользователь этой машины. Как мне использовать свою собственную libc.so.6, могу ли я перенаправить путь поиска в другой каталог?

решение1

Проблема

Установлен GLIBC 2.12 и, как следует из заголовка OP, набор инструментов кросс-компиляции, который он пытается использоватьтребуетGLIBC >2.14. ОП утверждает, что он также ограничен, поскольку не может обновить систему.

Предостережения

Список ниже в шаге 3 используется для сборки changeroot. По возможности используйте пакеты, включенные из репозиториев дистрибутивов. Если последняя версия в вашем репозитории совпадает с версией, установленной вне changeroot, остановите шаг 3 и воспользуйтесь поиском пакетов в Интернете, напримерRPMНайтичтобы найти более новую версию и продолжить. Не устанавливайте новую или онлайн-версию вне changroot. Это приведет к поломке системы, за которую я НЕ несу ответственности!

Решение

Теперь ОП должен построитьизменить root тюрьмадля установки кросс-компилятора ARM, так как версии GLIBC не могут быть установлены Side By Side. Смотрите такжеВикипедия - Chroot. Для этого выполните следующие действия:

  1. Создайте каталог для changeroot:mkdir -pv $HOME/newroot
  2. Создайте переопределение для перенаправления пакетов RPM для установки в chroot: export ROOT=$HOME/newroot && echo $ROOT. Если вам интересно, см. Шаг 4.
    • Пожалуйста, повторите новую переменную, так как она скоро станет очень важной.
  3. Загрузите рекомендуемые пакеты rpm для changeroot (вот названия пакетов):cd $ROOT && mkdir -v download && cd download
    • настраивать
    • файловая система
    • базоваясистема
    • ldconfig
    • глибк <--Обратите внимание на предостережение, изложенное выше, иначе вы проделали эту работу напрасно.
    • mktemp
    • termcap
    • ncurses
    • Информация
    • fileutils
    • bash && libtermcap
    • гдбм
    • тчш
    • перл
    • chkconfig
    • текстовые утилиты
    • крэклиб
    • cracklib-dicts
    • пвдб
    • бойкий
    • таращиться
    • пам --nodeps
    • shadow-утилиты
    • сленг
    • util-linux --nodeps
    • sh-утилиты
    • зш
    • сед
    • bzip2
    • поп
    • zlib
    • об/мин
    • Ваш набор инструментов кросс-компиляции и его зависимости
  4. Используйте следующую команду для установки списка выше . rpm -i --root=$ROOT packagenameОбратите внимание на --rootаргумент. Это переопределяет поведение установки RPM по умолчанию. Обратите внимание на пакеты в списке с дополнениями, например, bash && libtermcap. Пожалуйста, выполните команду rpm -i, как указано в списке, включая аргумент --root. В примере выше libtermcap устанавливается в тот же каталог, что и bash.
  5. Наконец, можно chroot $ROOT && export PS1="(chroot) $PS1".

Ссылка

Шаги выше адаптированы изКак настроить среду chroot с RedHat Linux 6.2 — для FTP и веб-сервисов

Связанный контент