Chroot
Fedora 和 Ubuntu 上不同的 fakechroot 行為
考慮以下目錄樹 (
mychroot
):mychroot/ ├── proc │ └── cpuinfo └── usr └── bin └── ls
在 Fedora 20 上:
$ fakechroot chroot ./mychroot/ /usr/bin/ls proc cpuinfo
版本:
$ fakechroot --version fakechroot version 2.9
在 Ubuntu 上:
$ fakechroot chroot ./mychroot/ /usr/bin/ls proc
列出來自 chroot 外部的 /proc 條目。
版本:
$ fakechroot --version fakechroot version 2.17.2
這裡會發生什麼?感謝您的任何見解。
更新:
絕對看起來像是行為的改變。我在 Ubuntu 上安裝了 2.10,我看到了與 Fedora(2.9)相同的結果:
$ /usr/local/bin/fakechroot --version fakechroot version 2.10 $ /usr/local/bin/fakechroot chroot ./mychroot /usr/bin/ls proc cpuinfo
向上游送出了一個問題。
Fakechroot 可以配置為排除某些路徑,即這些路徑將引用(假)chroot 內部和外部的相同位置。這對於像這樣的目錄特別有用,
/dev
並且/proc
因為很多程序都依賴於它們,所以到處都有它很有用。排除路徑可以通過以下方式定義:
- 環境
FAKECHROOT_EXCLUDE_PATH
變數;- 和
FAKECHROOT_EXCLUDE_PATH
中的配置文件中的設置,其中COMMAND是由(例如)呼叫的命令。~/.fakechroot``/etc/fakechroot``*COMMAND*.env``fakechroot``chroot.env
通過環境、in或 in檢查是否
/proc
在 Ubuntu 的排除列表中。在 Debian 軟體包中,添加和到. 如果您不希望這樣,請複制並編輯相關行,或者傳遞參數以指定不同的配置文件(例如)。~/.fakechroot/chroot.env``/etc/fakechroot/chroot.env``/etc/fakechroot/chroot.env``/dev``/proc``/sys``FAKECHROOT_EXCLUDE_PATH``/etc/fakechroot/chroot.env``~/.fakechroot/chroot.env``-e``fakechroot -e /dev/null chroot …