2016-11-25 13 views
0

Я пишу приложение, которое использует разные версии glibc. Нижняя версия rpm уже установлена ​​в моем поле RHEL (6.5), но мне нужна более высокая версия glibc rpm, которая доступна в RHEL (7.x).отдельная версия rpm glibc для приложения в RHEL

  1. Можно ли установить другую версию того же обороты в RHEL
  2. Если да, как использовать другую версию оборотов в одном приложении, обеспечивая абсолютный путь или могу я установить более высокую версии в отдельную папку и использовать ее?
ie) /opt/higherverison/glibc <file> 
    /usr/bin/glibc <file> 
+1

Возможный дубликат [Несколько библиотек glibc на одном хосте] (http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host) –

ответ

0
  1. No. Свежая версия foo заменит старую версию foo. Для glibc это означало бы, что у вас есть только новая версия. Это сломает все. Red Hat предоставляет что-то, называемое Software Collections (SCL), которое позволяет устанавливать несколько RPM, чтобы они не конфликтуют, но для glibc нет SCL.

  2. Я советую использовать версию RHEL 7 на RHEL 6. Возможно, вы найдете вещи, недоступные на RHEL 6. Возможно, вы можете собрать glibc (с соответствующими флагами) RHEL 7 на RHEL 6, поставить пользовательское местоположение и ссылка на него явно? Вам все равно придется поддерживать эту версию glibc. Вы можете сделать свое приложение другим libc, используя RPATH.

Как вы настраиваете RPATH? This answer имеет один возможный подход:

RPATH указывает, где находятся предоставленные библиотеки. Эта папка должна содержать: libc.so.6, libdl.so.2, libgcc_s.so.1 и, возможно, больше. Проверьте с помощью strace, чтобы узнать, в каких библиотеках используется ваш двоичный файл.

ld.so является предоставленному компоновщику

GCC -Xlinker -rpath =/по умолчанию/путь/к/библиотеки -Xlinker -I/по умолчанию/путь/к/библиотеки/ld.so program.c

1

Red Hat создала опцию, которая является частью подписки RHEL, чтобы делать именно то, что вы хотите - это называется Red Hat Developer Toolset.

https://developers.redhat.com/products/developertoolset/get-started-rhel6-cpp/

В настоящее время в GCC 6, но НКУ 5 также доступны.

Он работает, устанавливая новые версии gcc «вдоль стороны» оригинала, поэтому не создает конфликтов с ОС.