Ubuntu vs. CentOS i kompatybilność binarna

9

Próbuję zainstalować oprogramowanie oparte na CentOS 4.7. Czy wiesz, czy będzie działać również w Ubuntu? Czytałem, że CentOS jest w 100% kompatybilny binarnie. Czy to samo dotyczy najnowszej wersji Ubuntu?

Zaniepokojony obywatel
źródło
1
„W 100% zgodny binarnie” jest bez znaczenia: kompatybilny z czym? Jak mówi Caleb, odpowiedzią na to pytanie jest RHEL.
Gilles 'SO - przestań być zły'

Odpowiedzi:

3

Pliki binarne Linux Standard Base (LSB) powinny być kompatybilne między dystrybucjami obsługującymi LSB. CentOS ma obsługę LSB. Obsługa LSB jest również dostępna w Ubuntu, ale nie wiem, czy odpowiednie pakiety LSB są instalowane domyślnie, czy nie. Możliwe jest sprawdzenie, czy aplikacja jest kompatybilna binarnie.

Należy zauważyć, że LSB jest kontrowersyjny, zarówno sam standard, jak i / / jak duży wpływ miał.

Alexander
źródło
15

Plik wykonywalny skompilowany dla dystrybucji Linux będzie działał na innej dystrybucji, jeśli ta inna dystrybucja ma wymagane biblioteki współużytkowane. CentOS ma dość stare wersje bibliotek, więc wersje Ubuntu mogą być zbyt nowe; ale często, jeśli Ubuntu ma libfoo5i libfoo6potrzebujesz libfoo3, możesz pobrać go z wcześniejszej wersji Ubuntu.

CentOS i Ubuntu używają różnych systemów pakowania: rpm vs. deb. Możesz przekonwertować RPM na deb za pomocą alien. Wynikowy pakiet może, ale nie musi być instalowany, w zależności od tego, czy masz wymagane zależności. Łatwiej może być konwersja rpm do zwykłego archiwum (ponownie za pomocą alien) i rozpakowanie go w osobnym katalogu w /optlub /usr/local.

Jeśli program nie zawiera listy zależności, możesz uruchomić, ldd /path/to/binaryaby zobaczyć, jakich bibliotek potrzebuje. Zobaczysz wynik, libfoo.so.4 => not foundjakby czegoś brakowało.

Gilles „SO- przestań być zły”
źródło
Jak korzystać z funkcji „kosmita”? w wierszu polecenia Gnome?
Concerned_Citizen
@GTyler Tak, aliento program wiersza poleceń. Nie wiem, czy jest wokół niego GUI. Jeśli nie znasz wiersza poleceń, polecam próbę uzyskania pakietu binarnego dla Ubuntu.
Gilles 'SO - przestań być zły'
12

CentOS jest „w 100% kompatybilny binarnie” ze swoim komercyjnym odpowiednikiem , RedHat Enterprise Linux . Ponieważ RHEL jest licencjonowanym systemem zawierającym umowy wsparcia i różne przedsięwzięcia biznesowe, nie wszyscy chcą go uruchamiać. Jednak w świecie o otwartym kodzie źródłowym cały rozwój musi być współużytkowany, więc chociaż pobierają opłaty za umowy o wsparcie, media i cokolwiek innego, nadal muszą dzielić się źródłem. CentOS to przepakowanie, aby udostępnić je społeczności za darmo.

Ponadto, a następnie „100% zgodność” jest tylko między równoważnych wersji z RHEL i CentOS . Wersje bibliotek zmieniają się z każdą główną wersją, ale ponieważ te projekty są zsynchronizowane, możesz wymieniać pakiety między nimi, o ile oba są skonfigurowane dla tej samej głównej wersji.

Różnice między dystrybucjami, szczególnie dystrybucjami opartymi na RPM, takimi jak CentOS i Debianami, takimi jak Ubuntu, mogą być legionowe, a dany pakiet nie będzie między nimi przenośny. Jednak ogólne systemy są w przybliżeniu takie same, oprogramowanie opracowane dla jednego z nich można zwykle łatwo skompilować dla drugiego, wystarczy skompilować i nieco inaczej spakować. Jeśli chcesz pobrać wszystkie odpowiednie wersje bibliotek, pliki binarne z jednej będą faktycznie działały na drugiej. Zobacz odpowiedź Gillesa .

Caleb
źródło
0

CentOS jest długoterminowo stabilny, więc ma starsze biblioteki, z którymi binaria skompilowane na nowszych systemach nie będą się łączyły. CentOS korzysta z menedżera pakietów rpm, a Ubuntu używa apt Debiana. Więc pakiety nie są nawet kompatybilne.

Ogólnie, jeśli chcesz go na CentOS i nie ma go już, będziesz musiał zbudować RPM ze źródła, na innej maszynie CentOS.

Keith
źródło