在 schroot 中安裝東西

在 schroot 中安裝東西

我有一個關於 chroots 的問題:假設我有一個程式已編譯並內建到根文件樹結構中,例如:

.
├── bin
│   └── software
├── etc
...

也就是說,要安裝它,我必須將其與根目錄 (/) 合併。現在,我已將其同步到 chroot,但是當我嘗試運行它時,我收到錯誤代碼 127(沒有此類文件)。我還有什麼事情要做嗎?

答案1

如果我正確解釋你所寫的內容,我認為你不太明白 chroot 的作用。如果我有目錄 /mytemproot 並在其上安裝一個包含以下目錄的檔案系統:bin 等、sbin、foo,那麼我可以:

% cd /mytemproot
% pwd
/mytemproot
% chroot /mytemproot
% pwd
/
% ls /
bin etc sbin foo

chroot 的作用是將您置於一個 shell 中,其中 /mytemproot 被視為 /。真正的 / 對您來說是不可見的,就像真正的 / 下的所有其他檔案系統一樣。它不合併檔案系統。

回到過去,當底層系統管理員從頭開始建置每個新的 UNIX 發行版時,我們會建立一個新的磁碟分割區,在該分割區上放置一個檔案系統,然後在其中進行建置和安裝。然後我們將該檔案系統掛載到某個地方,對其進行 chroot 並檢查所有內容,然後再將其釋放給使用者。我想今天的開發人員也應該以同樣的方式使用它。

相關內容