Connect and share knowledge within a single location that is structured and easy to search. In theory the idea of an iterative method of container configuration really appeals to me. Between compilation and runtime dependencies, I'm unsure of the best approach to take; needless to say, my current approach is not working.
I would appreciate any and all hints from experienced practitioners who use rootless container solutions on debian-based distros, esp. Many thanks in advance. How are we doing? Please help us improve Stack Overflow. Take our short survey. Note that this is not a complete dependency resolve in the sense of dpkg or apt, and that it is far better to specify the entire base system than rely on this option. With this option set, this behaviour is disabled. Currently, the variants supported are minbase, which only includes essential packages and apt; buildd, which installs the build-essential packages into TARGET ; and fakechroot, which installs the packages without root privileges.
Downloaded packages are copied into the root filesystem unchanged, then unpacked, configured and installed on the real device. Recent versions of emsandbox use an "unpacking" method that avoids the need to carry the. This reduces the size of the rootfs tarball and decreases the workload for the target device. This method can only support such small images if the appropriate packages already exist in the Emdebian repository or some other repository that can be used by debootstrap.
Issues with the final filesystem image By modifiying the basic set of packages used by debootstrap, the normal Debian init support needs to be hacked. Other components of a standard Debian debootstrap environment may also be missing, e. Issues with replacing debconf with cdebconf See Debian bug This also allows emsandbox to support arbitrary package sets where the packages that would create these files on a normal Debian box are simply omitted.
Support for creating these files is available via emsandbox using the suite script support in debootstrap. Examples are numerous but some of the most common include: fgrep does not support -x start-stop-daemon does not support --oknodo or --retry Packages using such options will be patched in the Emdebian version - note that this may cause unexpected behaviour, in which case a bug should be filed against the package in Debian, requesting support for the busybox implementation, using embug --prepare.
Again, the suite script will provide support for setting up these symlinks. Outputting messages to the user This method still uses debootstrap so the normal STDOUT file descriptor is wrapped within debootstrap functions. Method Instead of a complicated set of shell instructions in the --second-stage function, the intention is to provide a series of shell functions accessible via emsandbox and empbuilderlib from emdebian-tools to provide the necessary support.
The suite script is a shell script called by debootstrap and which normally describes how debootstrap should create a chroot for the Debian suite, i. Emdebian co-opts this debootstrap support to describe how debootstrap should create a filesystem image using the package set available from Emdebian. In effect, emsandbox tells debootstrap that each customised emsandbox filesystem image is a different suite of Debian.
The first part of the suite script simply sets out the names of the packages to be downloaded from the Emdebian repository by debootstrap.
In normal debootstrap, required packages are partially unpacked, base are not but the. This allows emsandbox to create an almost functional filesystem image, leaving only the absolute minimum amount of work to be done on the target device before rebooting.
Below instructions were verified to work with debootstrapping Debian If you intend to boot the system you will need a boot loader and it needs a place on disk see step Install boot loader to disk.
First check what is the partition table using either fdisk or parted :. This partition should be big enough, but around KiB should suffice.
To make one you can use e. In gdisk , to make some partition a BIOS boot partition , change its type to ef Below is an example of how one can partition the whole disk e. Otherwise you may need to make the beginning of the first partition have bigger offset. It is not recommended to name partitions by kernel name e.
One of the alternatives is UUID. To boot the system you will need Linux kernel and a boot loader. You can search available kernel images by running:. Warning: I had trouble with physically disconnecting and reconnecting Ethernet cables while using this method. With NetworkManager everything works seamlessly. This will not overwrite the current grub installation on disk, we will do it at the very end of these instructions.
0コメント