Chroot

Fedora 和 Ubuntu 上不同的 fakechroot 行為

  • April 21, 2014

考慮以下目錄樹 ( 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 …

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