저는 오래된 x86 넷북에서 Puppy Linux(정확하게는 Puppeee)를 실행하고 있는데 정말 마음에 듭니다. 이 Linux는 제 넷북에 새 생명을 불어넣고 저전력 홈 서버로 적합하게 만들어줍니다.
그러나 일부 클라우드 및 전화 회사는 마지못해 Linux용 독점 코드만 컴파일하며 종종 Ubuntu와 같은 일부 주요 배포판용으로만 컴파일합니다.
회사에서 제공하는 바이너리 패키지만 있는 경우 Puppy Linux와 같은 다른 배포판에서 Ubuntu에 대한 호환성을 제공할 수 있는 방법이 있습니까?
답변1
내 댓글에서 언급했듯이,도커이것에 매우 효과적일 것입니다. 단점은 디스크 공간을 많이 차지한다는 것입니다. 디스크 공간 외에 CPU나 메모리도 오버헤드가 없습니다.
즉, docker는 기본적으로 전체 운영 체제 이미지 내에 chroot를 설정합니다. 따라서 자신의 배포판 내에서 다른 배포판을 실행하게 됩니다. Docker는 애플리케이션이 실행되는 환경을 설정한 다음 애플리케이션을 시작하는 역할만 담당합니다. 애플리케이션이 시작되면 이는 시스템의 또 다른 프로세스일 뿐입니다. 에 나타나며 편집 등이 ps
가능합니다 .kill
전체 배포판을 실행하고 있기 때문에 실행할 수 있는 유일한 비호환성은 커널에 없는 커널 기능에 의존하는 경우입니다. 그럴 것 같지 않습니다.
시스템에 docker가 설치되면 소프트웨어가 포함된 이미지를 빌드할 수 있습니다. 다음과 같이 "dockerfile"을 생성하면 됩니다.
FROM ubuntu:12.04
RUN apt-get install -y wget
RUN wget http://telephonyco.com/proprietary_code.deb
RUN dpkg -i proprietary_code.deb
빌드 후 프로그램을 직접 실행할 수 있습니다.
docker run -ti name_of_image_you_created proprietary-program-foo
또는 이미지에서 셸을 얻을 수 있습니다.
docker run -ti name_of_image_you_created bash