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