существует ли общий формат упаковки для доставки готовых файлов (не исходных текстов) в Redhat Linux, IBM AIX и Solaris?
К сожалению нет. По крайней мере, не так, чтобы интегрироваться со "стандартными" системными пакетами. Я видел пакеты RPM в AIX, он в основном используется для установки там пакетов с открытым исходным кодом. А на Solaris упаковка полностью убита. В OpenSolaris есть улучшения, но он по-прежнему не поддерживает кроссплатформенность.
Хотя все три упомянутых варианта Unix работают на архитектуре x86 (и других), более вероятно, что вы столкнетесь с AIX на PowerPC, Solaris на SPARC и RedHat на x86. В этом случае один пакет для данного приложения будет довольно большим при попытке работать с несколькими версиями ОС и несколькими наборами инструкций.
Это возвращает нас в классический режим Unix: архивы исходного кода или сценарии Shar с make config
и make install
для обработки зависимостей ОС на уровне CLI, не пытаясь запекать детали низкого уровня.
IPS (система упаковки изображений), основанная на сетевых репозиториях, а не на файлах распространения, является недавним, но многообещающим кроссплатформенным решением (на основе Python), которое поддерживает указанные ОС и некоторые другие (включая Windows и MacOS X):
http://wikis.sun.com/display/IpsBestPractices/Multi-platform+Packaging+for+Layered+Distros
http://wiki.updatecenter.java.net/Wiki.jsp?page=UC2Documentation.ReleaseNotes.2.3
Нет, RPM в основном специфичен для Linux, и двоичные форматы различны на всех трех платформах. Вы не можете использовать один пакет для нацеливания на них. Самое близкое, что вы сможете получить, - это сценарий оболочки с закодированными внутри него данными. Sun делает нечто подобное со своим установщиком Java для Linux. Фактически, когда вы запускаете сценарий оболочки, он записывает архив на диск, затем извлекает этот архив и выполняет установку.