CentOS 4.7 기반 소프트웨어를 설치하려고 합니다. 우분투에서도 작동하는지 아시나요? CentOS는 100% 바이너리와 호환된다는 것을 읽었습니다. 최신 버전의 Ubuntu에도 적용됩니까?
답변1
Linux 배포판용으로 컴파일된 실행 파일은 다른 배포판에 필요한 공유 라이브러리가 있는 경우 다른 배포판에서 실행될 수 있습니다. CentOS의 라이브러리 버전은 꽤 오래되었으므로 Ubuntu 버전이 너무 새롭을 수 있지만 일반적으로 Ubuntu가 사용 가능한 유일한 버전이고 libfoo5
필요한 libfoo6
경우 libfoo3
이전 Ubuntu 버전에서 얻을 수 있습니다.
CentOS와 Ubuntu는 rpm과 deb라는 서로 다른 패키징 시스템을 사용합니다. .rpm을 사용하여 rpm을 deb로 변환할 수 있습니다 alien
. 필요한 종속성이 있는지 여부에 따라 결과 패키지가 설치될 수도 있고 설치되지 않을 수도 있습니다. rpm을 일반 아카이브(다시 사용하기 위해)로 변환하고 alien
또는 아래의 별도 디렉토리에 추출하는 것이 더 쉬울 수 있습니다./opt
/usr/local
프로그램에 종속성 목록이 제공되지 않으면 프로그램을 실행하여 ldd /path/to/binary
필요한 라이브러리를 확인할 수 있습니다. libfoo.so.4 => not found
뭔가 빠진 것처럼 출력되는 것을 볼 수 있습니다 .
답변2
중앙 운영 체제"100% 바이너리 호환"입니다.상업적 대응물,레드햇 엔터프라이즈 리눅스. 왜냐하면RHEL지원 계약 및 다양한 기업 관련 사항을 포함하는 허가된 시스템이지만 모든 사람이 이를 실행하고 싶어하는 것은 아닙니다. 하지만 오픈소스 세계에서는 모든 개발이 공유되어야 하기 때문에 지원 계약, 미디어 등의 비용을 청구하더라도 여전히 소스 코드를 공유해야 합니다.중앙 운영 체제다시 포장해서 커뮤니티에 무료로 제공하는 것입니다.
게다가 "100% 호환성"은 다음과 같은 경우에만 존재합니다.동등한 버전~의RHEL그리고중앙 운영 체제. 라이브러리 버전은 각 주요 버전에 따라 변경되지만 이러한 프로젝트는 동시에 릴리스되므로 모두 동일한 주요 버전으로 설정되어 있는 한 패키지 간에 패키지를 교환할 수 있습니다.
배포판, 특히 RPM 기반 배포판 간의 차이점.중앙 운영 체제다음과 같은 데비안 기반 시스템우분투많은 것이 있을 수 있으며, 주어진 패키지는 그들 사이에서 이식 가능하지 않습니다. 그러나 전체 시스템은 거의 동일하며, 한 시스템용으로 개발된 소프트웨어는 약간 다른 컴파일 및 패키징 방식을 사용하여 다른 시스템용으로 쉽게 컴파일될 수 있는 경우가 많습니다. 올바른 라이브러리 버전을 모두 가져오려는 경우 한 버전의 바이너리가 실제로 다른 버전에서 실행될 수 있습니다.자일스의 답변 보기.
답변3
LSB(Linux Standard Base) 바이너리는 LSB를 지원하는 배포판 간에 호환되어야 합니다. CentOS는 LSB를 지원합니다. 우분투에서도 LSB 지원이 제공되는데, 관련 LSB 패키지가 기본적으로 설치되어 있는지는 모르겠습니다. 가능한시험애플리케이션이 바이너리 호환 가능한 경우.
LSB는 표준 자체와 그것이 미치는 영향 여부와 정도 측면에서 논란의 여지가 있습니다.
답변4
CentOS는 장기적으로 안정적이므로 오래된 라이브러리를 갖고 있으며 최신 시스템에서 컴파일된 바이너리는 링크되지 않습니다. CentOS는 rpm 패키지 관리자를 사용하고 Ubuntu는 Debian apt를 사용합니다. 따라서 이러한 패키지는 호환되지 않습니다.
일반적으로 CentOS에서 사용하고 싶지만 아직 사용할 수 없는 경우 다른 CentOS 시스템의 소스에서 RPM을 빌드해야 합니다.