Debian

Debian 是否有任何用於 make install 的虛擬環境?

  • October 2, 2013

如果有人使用 Python virtualenv,他知道我們可以在它自己的環境中執行腳本,安裝所有必要的庫,這些庫不會影響主要的 Python 發行版。

我們在 Linux (Debian) 世界中是否有類似的make實用程序?

  1. 案例 1:我下載了原始碼並且知道我需要哪些依賴項。我將庫放在主目錄中的某個位置,並明確告訴 make實用程序在哪裡搜尋它們。
  2. make案例2:我為實用程序執行某種virtualenv ,我在那裡呼叫,apt-get install lib-required-dev所以下載的庫將被放置在這個虛擬環境中並且不會污染我的作業系統。然後我跑make

第一種情況相對容易,至少對於某些程序來說是這樣。大多數源包都包含一個configure腳本,用於檢查所需庫的可用性。這些腳本通常具有指定搜尋路徑的選項。例如--lib-prefix. 這樣,您甚至不需要自己修改 Makefile。現在這是否可行將取決於依賴項的複雜程度,但值得一試。

對於選項 2,您有以下chroot程序:

  chroot - run command or interactive shell with special root directory

chroot需要存在某些文件和目錄。細節將取決於您究竟需要做什麼(例如,您需要/dev嗎?您需要/proc嗎?)。您可以獲得這樣的最小chroot環境(以root身份):

mkdir foo
cp -r /bin /lib /lib64 foo/
chroot foo

最後一個命令會將您移動到目錄foo並執行您的預設 shell,將foo其視為/. 我概述的程序是一種簡化。例如,您不需要所有內容/lib。根據您要執行的操作,您可能還需要存在更多目錄。最後,您還可以使用mount bind將目錄連結到chroot環境中,但如果您希望它完全獨立於您的真實作業系統,則不能。

創建這樣一個遊樂場的一種簡單方法是採用一個小分區並在該分區上安裝一個最小系統。然後,您可以簡單地進行chroot類似操作(始終以 root 身份):

mount /dev/sda2 foo/
chroot foo/

顯然,更改sda2為您安裝最小系統的分區。有關更多資訊,請參閱以下連結:

引用自:https://unix.stackexchange.com/questions/93350