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

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

Мне нужна последняя библиотека 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, который можно установить с помощью вашего любимого менеджера пакетов.

  • Не удалось войти на сервер Ubuntu 10.04 после попытки присоединиться к домену Windows
  • Pagemap на устройствах с отображением памяти не работает
  • Ubuntu remaster создает слишком маленькие ISO
  • Окно программы Window, работающей под Wine, по умолчанию не отображается
  • почему сделал дважды каталог websvn
  • Ubuntu 12.10 всегда висит
  • Мне нужно dhclient, чтобы очистить IP-адрес / маршруты, когда ссылка идет вниз
  • Изменение MAC-адресов после грязного выключения
  • Как установить последнюю версию Node js для элементарной ОС (ubuntu)
  • netstat показать номер порта вместо имени процесса
  • Сделать веб-проект доступным для записи apache и другим пользователем
  • Interesting Posts

    Как преобразовать текст в числа для chmod?

    Почему это было / dev / null?

    Отправить вложение в gmail id из сценария оболочки

    Как настроить сеанс tty таким образом, чтобы символ «\ f» фида формы очистил терминал?

    Почему байты, которые я получаю, не являются байтами, которые я отправил?

    Сканируйте диск для файлов> 10 ГБ и (если еще не сделано) создайте tar, разбитый на 10 Гбайт кусков для каждого

    Почему / etc / passwd открыт для публики для чтения?

    Удалите строки имени файла и оставите других в BASH

    Время, оставшееся для следующего прогона

    Объединение полей из строк с различным количеством полей

    Добавить маршрут по умолчанию без шлюза nmcli

    Debian 8.2 зависание компьютера + сбои случайным образом

    Как заставить эту команду awk работать

    Как выбрать идентификаторы работы с помощью grep / sed / awk

    Используйте find + sed + cp, чтобы найти файлы и скопировать их в каталог с другим именем

    Linux и Unix - лучшая ОС в мире.