Installieren Sie Dinge in einem Schroot

Installieren Sie Dinge in einem Schroot

Ich habe eine Frage zu Chroots: Angenommen, ich habe ein Programm kompiliert und in eine Stammdateibaumstruktur eingebaut, z. B.:

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

Das heißt, um dies zu installieren, müsste ich dies mit dem Stammverzeichnis (/) zusammenführen. Nun habe ich dies per Rsync in das Chroot-Verzeichnis eingebunden, aber wenn ich versuche, es auszuführen, erhalte ich den Fehlercode 127 (keine solche Datei). Muss ich noch etwas anderes tun?

Antwort1

Wenn ich das, was Sie geschrieben haben, richtig interpretiere, glaube ich, dass Sie nicht ganz verstehen, was chroot macht. Wenn ich ein Verzeichnis /mytemproot habe und darauf ein Dateisystem mounte, das die Verzeichnisse bin, etc, sbin, foo hat, dann könnte ich:

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

Chroot versetzt Sie in eine Shell, in der /mytemproot so behandelt wird, als wäre es /. Das echte / ist für Sie unsichtbar, ebenso wie alle anderen Dateisysteme unter dem echten /. Die Dateisysteme werden nicht zusammengeführt.

Früher, als die einfachen Systemadministratoren jede neue UNIX-Distribution von Grund auf neu erstellten, erstellten wir eine neue Festplattenpartition, legten ein Dateisystem auf diese Partition und führten den Build und die Installation dort durch. Dann mounteten wir dieses Dateisystem irgendwo, führten einen Chroot darauf aus und überprüften alles, bevor wir es für die Benutzer freigaben. Ich könnte mir vorstellen, dass Entwickler es heute auf die gleiche Weise verwenden.

verwandte Informationen