Я пытаюсь установить программное обеспечение, основанное на CentOS 4.7. Знаете ли вы, будет ли он работать в Ubuntu? Я читал, что CentOS на 100% совместим с двоичными файлами. То же самое относится к самой последней версии Ubuntu?
Я пытаюсь установить программное обеспечение, основанное на CentOS 4.7. Знаете ли вы, будет ли он работать в Ubuntu? Я читал, что CentOS на 100% совместим с двоичными файлами. То же самое относится к самой последней версии Ubuntu?
Ответы:
Предполагается, что двоичные файлы Linux Standard Base (LSB) совместимы между дистрибутивами, которые поддерживают LSB. CentOS имеет поддержку LSB. Поддержка LSB также доступна в Ubuntu, но я не знаю, установлены ли соответствующие LSB-пакеты по умолчанию или нет. Можно проверить , является ли приложение двоичным совместимым.
Обратите внимание, что LSB является спорным как с самим стандартом, так и с тем, насколько сильно он повлиял.
Исполняемый файл, скомпилированный для дистрибутива Linux, будет работать в другом дистрибутиве, если этот другой дистрибутив имеет необходимые общие библиотеки. CentOS имеет довольно старые версии библиотек, поэтому версии Ubuntu могут быть слишком свежими; но часто , если Ubuntu имеет только libfoo5
и , libfoo6
и вы должны libfoo3
вы можете получить его от более ранней версии Ubuntu.
CentOS и Ubuntu используют разные системы упаковки: rpm против deb. Вы можете конвертировать обороты в деб с alien
. Полученный пакет может или не может быть установлен в зависимости от того, есть ли у вас необходимые зависимости. Может быть проще преобразовать rpm в простой архив (снова с alien
) и распаковать его в отдельный каталог в /opt
или /usr/local
.
Если программа не имеет списка зависимостей, вы можете запустить, ldd /path/to/binary
чтобы увидеть, какие библиотеки ей нужны. Вы увидите вывод, как libfoo.so.4 => not found
будто что-то отсутствует.
alien
это программа командной строки. Я не знаю, есть ли GUI вокруг этого. Если вы не знакомы с командной строкой, я рекомендую попробовать получить бинарный пакет для Ubuntu.
CentOS является "100% бинарно совместимыми" с его коммерческой коллегой , RedHat Enterprise Linux . Поскольку RHEL является лицензированной системой, включающей в себя контракты на поддержку и различные корпоративные вещи, не все хотят ее запускать. Однако в мире открытого исходного кода все разработки должны быть разделены, поэтому, хотя они взимают плату за контракты на поддержку, средства массовой информации и все остальное, им все равно приходится делиться источником. CentOS - это переупаковка, чтобы предоставить его сообществу бесплатно.
Кроме того, затем «100% совместимость» только между эквивалентными версиями в RHEL и CentOS . Версии библиотеки меняются с каждым основным выпуском, но поскольку эти проекты выпускаются синхронно, вы можете обмениваться пакетами между ними, если они оба настроены на одну и ту же основную версию.
Различия между дистрибутивами, в частности дистрибутивами на основе RPM, такими как CentOS, и дистрибутивами на основе Debian, такими как Ubuntu, могут быть легионами, и данный пакет не будет переносимым между ними. Однако в целом системы примерно одинаковы, программное обеспечение, разработанное для одной, обычно легко компилируется для другой, его просто нужно скомпилировать и упаковать немного по-другому. Если вы хотите получить все нужные версии библиотек, двоичные файлы из одного будут работать на другом. Смотри ответ Жиля .
CentOS долгосрочно стабилен, поэтому он имеет более старые библиотеки, с которыми двоичные файлы, скомпилированные в более новых системах, не будут связаны. CentOS использует менеджер пакетов rpm, а Ubuntu - Debian apt. Таким образом, пакеты даже не совместимы.
Как правило, если вы хотите использовать его в CentOS, но у вас его еще нет, вам придется создать RPM из исходного кода на другом компьютере CentOS.