답변:
다른 배포에 필요한 공유 라이브러리가있는 경우 Linux 배포를 위해 컴파일 된 실행 파일은 다른 배포에서 작동합니다. CentOS에는 꽤 오래된 라이브러리 버전이 있으므로 Ubuntu의 버전이 너무 최신 버전 일 수 있습니다. 하지만 우분투는이 자주있는 경우 libfoo5
와 libfoo6
당신이 필요 libfoo3
하면 이전 우분투 버전에서 잡아 수 있습니다.
CentOS와 Ubuntu는 rpm과 deb의 다른 패키징 시스템을 사용합니다. 로 rpm을 deb로 변환 할 수 있습니다 alien
. 필요한 종속성이 있는지 여부에 따라 결과 패키지를 설치하거나 설치하지 못할 수 있습니다. rpm을 일반 아카이브로 다시 변환하고 (와 함께 alien
) /opt
또는 아래의 별도 디렉토리에 압축을 푸는 것이 더 쉬울 수 있습니다 /usr/local
.
프로그램에 종속성 목록이 제공되지 않으면 ldd /path/to/binary
필요한 라이브러리를 확인하기 위해 실행할 수 있습니다 . libfoo.so.4 => not found
무언가 빠진 것처럼 출력이 나타납니다 .
alien
명령 행 프로그램입니다. GUI가 있는지 모르겠습니다. 커맨드 라인에 익숙하지 않다면 우분투를위한 바이너리 패키지를 구하는 것이 좋습니다.
에 CentOS는 "100 % 바이너리 호환"입니다 상업 대응으로 , 레드햇 엔터프라이즈 리눅스 . RHEL 은 지원 계약 및 다양한 엔터프라이즈를 포함하여 라이센스가있는 시스템 이므로 모든 사람이이를 실행하려는 것은 아닙니다. 그러나 오픈 소스 세계에서는 모든 개발을 공유해야하므로 지원 계약, 미디어 등을 청구하는 동안 여전히 소스를 공유해야합니다. CentOS 는 커뮤니티에 무료로 제공하기 위해 재 포장되었습니다.
또한 "100 % 호환성"은 동등한 버전 의 RHEL 과 CentOS 사이에만 있습니다. 라이브러리 버전은 각 주요 릴리스마다 변경되지만 이러한 프로젝트 릴리스는 동기화되어 있기 때문에 둘 다 동일한 주 버전으로 설정되어 있으면 패키지를 서로 교환 할 수 있습니다.
배포판, 특히 CentOS 와 같은 RPM 기반 배포판과 우분투 와 같은 데비안 기반 배포판의 차이점은 군단이 될 수 있으며 주어진 패키지는 그 사이에 이식성이 없습니다. 그러나 전체 시스템은 대략 동일하며, 하나를 위해 개발 된 소프트웨어는 일반적으로 다른 하나를 위해 쉽게 컴파일 될 수 있으며, 약간 다르게 컴파일되고 패키지되어야합니다. 올바른 라이브러리 버전을 모두 가져와야 할 경우 하나의 바이너리는 실제로 다른 바이너리에서 작동합니다. Gilles 's answer을 참조하십시오 .