Ubuntu против CentOS и бинарная совместимость

9

Я пытаюсь установить программное обеспечение, основанное на CentOS 4.7. Знаете ли вы, будет ли он работать в Ubuntu? Я читал, что CentOS на 100% совместим с двоичными файлами. То же самое относится к самой последней версии Ubuntu?

Concerned_Citizen
источник
1
«100% бинарная совместимость» не имеет смысла: совместимо с чем? Как говорит Калеб, ответ на этот вопрос - с помощью RHEL.
Жиль "ТАК - прекрати быть злым"

Ответы:

3

Предполагается, что двоичные файлы Linux Standard Base (LSB) совместимы между дистрибутивами, которые поддерживают LSB. CentOS имеет поддержку LSB. Поддержка LSB также доступна в Ubuntu, но я не знаю, установлены ли соответствующие LSB-пакеты по умолчанию или нет. Можно проверить , является ли приложение двоичным совместимым.

Обратите внимание, что LSB является спорным как с самим стандартом, так и с тем, насколько сильно он повлиял.

Александр
источник
15

Исполняемый файл, скомпилированный для дистрибутива 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будто что-то отсутствует.

Жиль "ТАК - перестань быть злым"
источник
Как вы используете функцию «чужой»? в командной строке Gnome?
Concerned_Citizen
@GTyler Да, alienэто программа командной строки. Я не знаю, есть ли GUI вокруг этого. Если вы не знакомы с командной строкой, я рекомендую попробовать получить бинарный пакет для Ubuntu.
Жиль "ТАК - прекрати быть злым"
12

CentOS является "100% бинарно совместимыми" с его коммерческой коллегой , RedHat Enterprise Linux . Поскольку RHEL является лицензированной системой, включающей в себя контракты на поддержку и различные корпоративные вещи, не все хотят ее запускать. Однако в мире открытого исходного кода все разработки должны быть разделены, поэтому, хотя они взимают плату за контракты на поддержку, средства массовой информации и все остальное, им все равно приходится делиться источником. CentOS - это переупаковка, чтобы предоставить его сообществу бесплатно.

Кроме того, затем «100% совместимость» только между эквивалентными версиями в RHEL и CentOS . Версии библиотеки меняются с каждым основным выпуском, но поскольку эти проекты выпускаются синхронно, вы можете обмениваться пакетами между ними, если они оба настроены на одну и ту же основную версию.

Различия между дистрибутивами, в частности дистрибутивами на основе RPM, такими как CentOS, и дистрибутивами на основе Debian, такими как Ubuntu, могут быть легионами, и данный пакет не будет переносимым между ними. Однако в целом системы примерно одинаковы, программное обеспечение, разработанное для одной, обычно легко компилируется для другой, его просто нужно скомпилировать и упаковать немного по-другому. Если вы хотите получить все нужные версии библиотек, двоичные файлы из одного будут работать на другом. Смотри ответ Жиля .

Калеб
источник
0

CentOS долгосрочно стабилен, поэтому он имеет более старые библиотеки, с которыми двоичные файлы, скомпилированные в более новых системах, не будут связаны. CentOS использует менеджер пакетов rpm, а Ubuntu - Debian apt. Таким образом, пакеты даже не совместимы.

Как правило, если вы хотите использовать его в CentOS, но у вас его еще нет, вам придется создать RPM из исходного кода на другом компьютере CentOS.

Кит
источник