Tôi đang cố gắng cài đặt phần mềm được xây dựng trên CentOS 4.7. Bạn có biết nếu nó cũng sẽ chạy trong Ubuntu? Tôi đọc CentOS tương thích nhị phân 100%. Điều này có đúng với phiên bản Ubuntu mới nhất không?
Tôi đang cố gắng cài đặt phần mềm được xây dựng trên CentOS 4.7. Bạn có biết nếu nó cũng sẽ chạy trong Ubuntu? Tôi đọc CentOS tương thích nhị phân 100%. Điều này có đúng với phiên bản Ubuntu mới nhất không?
Câu trả lời:
Các nhị phân cơ sở tiêu chuẩn Linux (LSB) được cho là tương thích giữa các bản phân phối hỗ trợ LSB. CentOS có hỗ trợ LSB. Hỗ trợ LSB cũng có sẵn trong Ubuntu, nhưng tôi không biết liệu các gói LSB có liên quan có được cài đặt theo mặc định hay không. Có thể kiểm tra nếu một ứng dụng tương thích nhị phân.
Lưu ý rằng LSB đang gây tranh cãi, cả bản thân tiêu chuẩn và mức độ ảnh hưởng của nó.
Một tệp thực thi được biên dịch cho bản phân phối Linux sẽ hoạt động trên bản phân phối khác nếu bản phân phối khác đó có các thư viện chia sẻ bắt buộc. CentOS có các phiên bản thư viện khá cũ, vì vậy các phiên bản của Ubuntu có thể quá gần đây; nhưng thường thì nếu Ubuntu chỉ có libfoo5
và libfoo6
bạn cần libfoo3
bạn có thể lấy nó từ bản phát hành Ubuntu trước đó.
CentOS và Ubuntu sử dụng các hệ thống đóng gói khác nhau: vòng / phút so với deb. Bạn có thể chuyển đổi một vòng / phút để một cuộc tranh luận với alien
. Gói kết quả có thể có hoặc không thể cài đặt được tùy thuộc vào việc bạn có phụ thuộc theo yêu cầu hay không. Có thể dễ dàng hơn để chuyển đổi vòng / phút sang một kho lưu trữ đơn giản (một lần nữa với alien
) và giải nén nó trong một thư mục riêng dưới /opt
hoặc /usr/local
.
Nếu chương trình không đi kèm với một danh sách các phụ thuộc, bạn có thể chạy ldd /path/to/binary
để xem thư viện nào nó yêu cầu. Bạn sẽ thấy đầu ra như libfoo.so.4 => not found
thể thiếu thứ gì đó.
alien
là một chương trình dòng lệnh. Tôi không biết nếu có GUI xung quanh nó. Nếu bạn không quen với dòng lệnh, tôi khuyên bạn nên thử lấy gói nhị phân cho Ubuntu.
CentOS "tương thích nhị phân 100%" với đối tác thương mại của mình , RedHat Enterprise Linux . Bởi vì RHEL là một hệ thống được cấp phép bao gồm các hợp đồng hỗ trợ và nhiều thứ khác nhau, không phải ai cũng muốn điều hành nó. Tuy nhiên, trong một thế giới nguồn mở, tất cả sự phát triển phải được chia sẻ, vì vậy trong khi họ tính phí cho các hợp đồng hỗ trợ, phương tiện truyền thông và bất cứ điều gì, họ vẫn phải chia sẻ nguồn. CentOS là một bao bì lại để cung cấp miễn phí cho cộng đồng.
Hơn nữa, "tương thích 100%" chỉ giữa các phiên bản tương đương của RHEL và CentOS . Các phiên bản thư viện thay đổi theo từng bản phát hành chính, nhưng vì các dự án này phát hành đồng bộ, bạn có thể trao đổi các gói giữa chúng miễn là cả hai đều được thiết lập cho cùng một phiên bản chính.
Sự khác biệt giữa các bản phân phối, đặc biệt là các bản phân phối dựa trên RPM như các bản phân phối dựa trên CentOS và Debian như Ubuntu có thể là quân đoàn và một gói nhất định sẽ không thể di chuyển giữa chúng. Tuy nhiên, các hệ thống tổng thể gần như giống nhau, phần mềm được phát triển cho một cái thường có thể dễ dàng được biên dịch cho cái kia, nó chỉ cần được biên dịch và đóng gói một chút khác nhau. Nếu bạn quan tâm đến tất cả các phiên bản thư viện phù hợp, các nhị phân từ một phiên bản sẽ thực sự hoạt động trên một phiên bản khác. Xem câu trả lời của Gilles .
CentOS ổn định lâu dài vì vậy nó có các thư viện cũ hơn được biên dịch trên các hệ thống mới hơn sẽ không liên kết với. CentOS sử dụng trình quản lý gói vòng / phút và Ubuntu sử dụng apt apt. Vì vậy, các gói thậm chí không tương thích.
Nói chung, nếu bạn muốn nó trên CentOS và nó chưa có thì bạn sẽ phải tạo RPM từ nguồn, trên một máy CentOS khác.