我在我的旧 x86 上网本上运行 Puppy Linux(准确地说是 Puppeee),我喜欢它:它为我的上网本注入了新的活力,并使其适合作为低功耗家庭服务器。
然而,一些云和电话公司只是勉强地为 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
或者你可以在图像中获取一个 shell:
docker run -ti name_of_image_you_created bash