Скомпилируйте источник с более поздними библиотеками на одном сервере и используйте двоичный файл на более старом сервере

У меня может возникнуть вопрос о том, как скомпилировать программное обеспечение из источника.

Мне нужна последняя библиотека libpcre3-dev для компиляции программного обеспечения из исходного кода, однако в текущем дистрибутиве ОС (Ubuntu) на моем сервере установлена ​​более старая версия libpcre3-dev и нет свободного доступа.

Я собираюсь скомпилировать двоичный файл на отдельном сервере с последней версией libpcre3-dev и установить двоичный файл обратно на мой фактический сервер. У меня есть два вопроса:

  1. Это работает? Моя главная проблема заключается в том, что libpcre3 на моем сервере по-прежнему является более старой версией, требует ли бинарный файл последнего соответствующего libpcre3 во время выполнения, даже если он скомпилирован с последним libpcre3-dev ?

  2. Каков наилучший способ установки двоичного файла обратно на мой сервер? Просто скопируйте двоичный файл или внесите его в пакет .deb , а затем установите с помощью диспетчера пакетов (если это возможно)?

2 Solutions collect form web for “Скомпилируйте источник с более поздними библиотеками на одном сервере и используйте двоичный файл на более старом сервере”

Если программе требуются новые функции, недоступные на вашем сервере, эти функции не будут доступны во время выполнения, поэтому ваша программа, вероятно, не будет работать.

Вы можете связывать библиотеку статически. Это имеет недостаток, что вы не можете обновить библиотеку отдельно от программы. Если в этой версии библиотеки обнаружена уязвимость безопасности, вам нужно будет перестроить программу. Замените -lpcre3 в командной строке компоновщика /usr/lib/libpcre3.a .

Вы можете динамически связывать и копировать библиотеку в тот же каталог, где вы устанавливаете свое программное обеспечение. Запустите программное обеспечение с помощью сценария оболочки, который устанавливает путь загрузки библиотеки для включения этого дополнительного каталога.

 #!/bin/sh export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/my-software/lib" /opt/my-software/bin/foo "$@" 

Ваш первый вопрос действительно связан с привязкой , поэтому это зависит, если вы ставите ссылку или нет. Если вы это сделаете, и обе платформы имеют одинаковую архитектуру, тогда она должна работать.

Хорошим способом установки самокомпилированного двоичного файла является использование checkinstall . Он создает пакет Debian, который можно установить с помощью вашего любимого менеджера пакетов.

  • su: Пользователь не известен базовому модулю аутентификации
  • Скопируйте модуль wifi из Ubuntu в RemixOS?
  • прозрачность терминала, проблема с Imagemagick и X11
  • проблема с печатью: одна страница на ПК печатает на нескольких страницах
  • Как apache определяет, какой каталог будет отображаться из public_html?
  • Черный экран при загрузке с изображения .VDI
  • Chroot debian сжимает доступ к оболочке
  • Что именно делает logrotate для файлов журнала Apache? (apache 2.4 - ubuntu 14.04)
  • Конкретное разрешение каталога для одного пользователя, использующего sftp
  • Почему нам не нужно вводить пароль для установки программного обеспечения в магазине приложений на Deepin?
  • Брандмауэр расширенной политики: allow_hosts.rules не работает
  • Linux и Unix - лучшая ОС в мире.