私は古い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