Debian には make install 用の仮想環境はありますか?

Debian には make install 用の仮想環境はありますか?

Python virtualenvを使用している人は、自分の環境でスクリプトを実行し、必要なすべてのライブラリをインストールすることができます。

Linux(Debian)の世界にも同様のmakeユーティリティがありますか?

  1. シナリオ1:ソースコードをダウンロードし、どの依存関係が必要かを知っています。私のホームディレクトリのどこかにライブラリを置き、 makeユーティリティにライブラリを検索する場所を明示的に伝えます。
  2. シナリオ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。たとえば、すべてが必要なわけではありません。実行する操作によっては、より多くのディレクトリが必要になる場合があります。最後に、ディレクトリを環境に接続する方法を使用することもできますが、実際のオペレーティングシステムと完全に独立したい場合は使用できません。//libmount bindchroot

これらの遊び場を作成する簡単な方法は、小さなパーティションを選択し、そのパーティションに最小限のシステムをインストールすることです。その後、chroot(常にルートとして)次のように簡単に実行できます。

mount /dev/sda2 foo/
chroot foo/

もちろん、sda2最小システムをインストールしたパーティションに変更してください。詳細については、次のリンクを参照してください。

答え2

terdonの答えが正しいです。

より複雑ですが、より永続的なもう1つの方法は、実際に仮想環境を作成することです(virtualboxが私が選択したものです)。使用しているオペレーティングシステムのデフォルト/標準バージョンを使用して新しい仮想マシンを作成し、そのマシンの状態を保存してインストールを開始します。通常のシステムと同様に、依存関係もあります。コンパイルが完了したら、仮想マシンを元の状態にリセットできます。

リモートサーバー環境で確実にヘッドレス操作を実行できますが、ローカルシステム(または転送されたXセッションを持つリモートシステム)から仮想マシンを作成する方がはるかに簡単であることは注目に値します。基本的な仮想マシンが良い場合は、アクセス方法がわからない場合は仮想マシンをエクスポートできます。

関連情報