次のディレクトリツリー(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
提出質問上流。
答え1
Fakechrootは、特定のパスを除外するように設定できます。つまり、これらのパスは(偽)chrootの内側と外側の同じ場所を参照します。これは多くのプログラムがそれに依存しているため、ディレクトリなどのディレクトリに特に/dev
便利です。/proc
除外されたパスは、次の方法で定義できます。
- 環境
FAKECHROOT_EXCLUDE_PATH
変数 - および
FAKECHROOT_EXCLUDE_PATH
名前付き構成ファイルの設定~/.fakechroot
/etc/fakechroot
COMMAND.env
注文するfakechroot
(eg)によって呼び出されるコマンドchroot.env
。
/proc
環境、または経由で~/.fakechroot/chroot.env
Ubuntuの除外リストにあることを確認してください/etc/fakechroot/chroot.env
。 Debianパッケージに、およびを/etc/fakechroot/chroot.env
追加します。これをしたくない場合は、関連行をコピーして編集するか、引数を渡して他の設定ファイル(たとえば)を指定します。/dev
/proc
/sys
FAKECHROOT_EXCLUDE_PATH
/etc/fakechroot/chroot.env
~/.fakechroot/chroot.env
-e
fakechroot -e /dev/null chroot …