У меня есть несколько серверов (10), на которых запущен Debian Lenny на x86. Мне нужно собрать несколько пакетов из исходников. Я знаю, что иметь инструмент компиляции на рабочем сервере (в целях безопасности) - не лучшая практика.
Я хочу знать, могу ли я скомпилировать эти пакеты на одном компьютере (x86) и просто установить их на серверах?
Есть ли проблема ?
Примеры пакетов
Большое тебе спасибо.
У вас есть десять серверов Lenny, на которых работает архитектура x86. Вполне возможно создать единый пакет, который будет устанавливаться на любой компьютер с определенной архитектурой. Хорошая практика - создавать пакеты Debian с pbuilder
, чтобы избежать каких-либо проблем, связанных с "работает на коробке разработчика".
Пересобрать пакет относительно просто. apt-get
имеет source
команда, которая загрузит исходный код. Если все, что нужно, это простой configure
параметры меняются, то вы почти готовы. Отредактируйте debian/rules
файл, а версия удаляет пакет с чем-то вроде ~jldugger0
, поэтому вы переопределяете версию Debian, от которой вы произошли, но не что-нибудь более новое от Debian. Просто увеличьте конечный 0, чтобы продолжить работу с локальными версиями. Не бейте версию Debian напрямую, и, ради бога, НЕ БУДЬТЕ ЭПОХУ- если вы хотите убедиться, что новые версии не отменяют локальные изменения, закрепите пакет. Имейте в виду, что вы подвергаетесь значительному риску безопасности и вам необходимо найти способ подписаться на изменения в пакете для проверки.
Есть две проблемы с локальными версиями пакетов: необходимо стараться идти в ногу с новыми версиями. Если ваше изменение достаточно простое, вы можете обойтись скриптом, который применяет исправления. Если это агрессивно, то отказ от продвижения изменений будет стоить вам все больше и больше времени по мере накопления конфликтов. Другая проблема - это зависимости. Ядро, Apache и PHP - это основные компоненты, от которых зависят другие пакеты. Подумайте, повлияют ли изменения, которые вы хотите внести в пакет, на другие пакеты в зависимости от этого.
Если серверы принадлежат к одному дистрибутиву (и имеют одинаковую платформу, x86), компиляция на одном из них и установка на нескольких не имеет значения. Было бы так же хорошо, как получить предварительно скомпилированные двоичные файлы или сам пакет.
Фактически, вы также можете упаковать (или просто tar.bz2 скомпилированный каталог, перенести его на каждый сервер, распаковать локально и запустить make install
там.
После завершения установки просто удалите извлеченный каталог с этих серверов.
Если архитектура такая же, то все будет довольно просто. Если нет, то это называется кросс-компиляцией и требует немного настройки.
Возможно, стоит создать внутренний репозиторий Debian для пользовательских пакетов. Таким образом, пакет будет доступен вашим серверам через apt (если они знают о вашем пользовательском репозитории).
Ты мог:
Вы также можете использовать команду make-kpkg для создания пакетов .deb, которые будут очень похожи на те, которые вы можете найти в стандартных репозиториях.