Python virtualenvを使用している人は、自分の環境でスクリプトを実行し、必要なすべてのライブラリをインストールすることができます。
Linux(Debian)の世界にも同様のmake
ユーティリティがありますか?
- シナリオ1:ソースコードをダウンロードし、どの依存関係が必要かを知っています。私のホームディレクトリのどこかにライブラリを置き、
make
ユーティリティにライブラリを検索する場所を明示的に伝えます。 - シナリオ2:ユーティリティに対して一種のvirtualenvを実行して
make
そこから呼び出すので、apt-get install lib-required-dev
ダウンロードしたライブラリはこの仮想環境に配置され、私のOSを汚染しません。それから私は走ったmake
。
答え1
ケース1は、少なくとも一部のプログラムでは比較的簡単です。ほとんどのソースコードパッケージには、必要なconfigure
ライブラリの可用性を確認するスクリプトが含まれています。これらのスクリプトには検索パスを指定するオプションがあることがよくあります。たとえば--lib-prefix
。これにより、Makefileを直接変更する必要さえありません。これがうまくいくかどうかは、依存関係がどれほど複雑なのかによって異なりますが、試してみる価値があります。
オプション2の場合、次のプログラムがありますchroot
。
chroot - run command or interactive shell with special root directory
chroot
特定のファイルとディレクトリが存在する必要があります。詳細は正確に何が必要なのかによって異なります(たとえば、必要ですか/dev
?必要ですか/proc
?)。chroot
ルートとして、以下の最小限の環境を得ることができます。
mkdir foo
cp -r /bin /lib /lib64 foo/
chroot foo
最後のコマンドはそのディレクトリに移動し、デフォルトのfoo
シェルを実行します。私が説明した手順は単純化されていますfoo
。たとえば、すべてが必要なわけではありません。実行する操作によっては、より多くのディレクトリが必要になる場合があります。最後に、ディレクトリを環境に接続する方法を使用することもできますが、実際のオペレーティングシステムと完全に独立したい場合は使用できません。/
/lib
mount bind
chroot
これらの遊び場を作成する簡単な方法は、小さなパーティションを選択し、そのパーティションに最小限のシステムをインストールすることです。その後、chroot
(常にルートとして)次のように簡単に実行できます。
mount /dev/sda2 foo/
chroot foo/
もちろん、sda2
最小システムをインストールしたパーティションに変更してください。詳細については、次のリンクを参照してください。
答え2
terdonの答えが正しいです。
より複雑ですが、より永続的なもう1つの方法は、実際に仮想環境を作成することです(virtualboxが私が選択したものです)。使用しているオペレーティングシステムのデフォルト/標準バージョンを使用して新しい仮想マシンを作成し、そのマシンの状態を保存してインストールを開始します。通常のシステムと同様に、依存関係もあります。コンパイルが完了したら、仮想マシンを元の状態にリセットできます。
リモートサーバー環境で確実にヘッドレス操作を実行できますが、ローカルシステム(または転送されたXセッションを持つリモートシステム)から仮想マシンを作成する方がはるかに簡単であることは注目に値します。基本的な仮想マシンが良い場合は、アクセス方法がわからない場合は仮想マシンをエクスポートできます。