Skip to content

gives a fake chroot environment

License

LGPL-2.1, Unknown licenses found

Licenses found

LGPL-2.1
LICENSE
Unknown
COPYING
Notifications You must be signed in to change notification settings

dex4er/fakechroot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b42d1fb · Feb 10, 2020
Oct 16, 2015
Mar 19, 2019
Mar 19, 2019
Feb 10, 2020
Feb 8, 2020
Mar 5, 2019
Feb 8, 2020
Feb 8, 2020
Nov 1, 2016
Oct 24, 2005
Nov 17, 2016
Feb 10, 2020
Mar 18, 2019
Mar 5, 2019
Nov 8, 2013
Mar 19, 2019
Feb 10, 2020
Nov 4, 2013
Nov 20, 2016

Repository files navigation

fakechroot

logo

Home | Download | Documentation | ChangeLog | Development | ToDo | Links

Travis CI Salsa GitLab CI

What is it

fakechroot runs a command in an environment were is additional possibility to use chroot(8) command without root privileges. This is useful for allowing users to create own chrooted environment with possibility to install another packages without need for root privileges.

How does it work

fakechroot replaces some libc library functions (chroot(2), open(2), etc.) by ones that simulate the effect of being called with root privileges.

These wrapper functions are in a shared library libfakechroot.so which is loaded through the LD_PRELOAD mechanism of the dynamic loader. (See ld.so(8))

In fake chroot you can install Debian bootstrap with debootstrap command. In this environment you can use i.e. apt-get(8) command to install another packages. You don't need a special privileges and you can run it from common user's account.

An example session

$ id
uid=1000(dexter) gid=1000(dexter) groups=1000(dexter)

$ fakechroot fakeroot debootstrap sid /tmp/sid
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
...
I: Base system installed successfully.

$ fakechroot fakeroot chroot /tmp/sid apt-get install -q hello
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
  hello
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 57.4 kB of archives.
After this operation, 558 kB of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ sid/main hello amd64 2.8-4 [57.4 kB]
Fetched 57.4 kB in 0s (127 kB/s)
Selecting previously unselected package hello.
(Reading database ... 24594 files and directories currently installed.)
Unpacking hello (from .../archives/hello_2.8-4_amd64.deb) ...
Processing triggers for man-db ...
Processing triggers for install-info ...
Setting up hello (2.8-4) ...

$ fakechroot chroot /tmp/sid hello
Hello, world!

Where is it used

fakechroot is mainly used as:

  • a supporter for debirf, DEBian on Initial Ram Filesystem
  • a variant of debootstrap, the tool which can set up new Debian or Ubuntu system

fakechroot had found another purposes:

  • to be a part of Klik application installer as kfakechroot project
  • to be a supporter for pbuilder building system
  • to be a supporter for Apport retracer
  • to be a supporter for libguestfs tools for accessing and modifying virtual machine disk images
  • to be a supporter for febootstrap, the tool which can set up new Fedora system
  • to be a part of cuntubuntu - Ubuntu for Android without root
  • to be a supporter for selenium-chroot setup