Skip to content
parke edited this page Aug 10, 2022 · 30 revisions

vland - a virtual userland manager

About vland

vland is a virtual userland manager for x86_64 Linux, written in Bash shell.

vland allows non-root users, on x86_64 Linux systems, to install "virtual userlands" and then run programs (or build packages) inside those userlands. More specifically:

  • vland automates the process of downloading, installing, and performing the essential configuration of a virtual guest userland.
  • After installing a virtual guest userland, vland can also execute programs, including interactive shells and package managers, inside the guest.

Quickstart tutorial

$  wget  https://github.com/parke/vland/raw/main/vland
$  /bin/sh  vland  --create  arch  arch-guest
$  /bin/sh  vland  --pkg  arch-guest  install  chromium
$  /bin/sh  vland  arch-guest  -nx  --  chromium

The above commands create an Arch Linux guest named arch-guest, and then install and run the Chromium web browser. (The guest will be created inside $HOME/.local/vland.)

vland can also build packages. For example, the below commands will build and install Arch Linux's lua package:

$  /bin/sh  vland  --pkg  arch-guest  build-install  lua
$  /bin/sh  vland  arch-guest  --  lua  -v

vland is a Bash shell script. The actual virtual environment is created by lxroot. lxroot is a small C++ program. Both run without root access. vland is, more or less, an opinionated, high-level convenience wrapper around lxroot, with some added bells and whistles.

Learn more by reading the vland tutorial and the lxroot tutorial.

Videos

Supported guest Linux distributions

The below table summarizes the Linux distributions that I have used as guests with vland and lxroot.

Guest distro Can install as guest? Can install packages? Can build packages?
Arch yes yes yes
Ubuntu yes (but see note) yes work in progress

Note: At present, in order to install an Ubuntu guest, the host must have the apt-get program installed. On an Arch host, it may be possible to install apt-get from the apt package in the AUR. (I have not tested this.)

Other Linux distributions

In the past, vland also supported Alpine and Void guests. However, support for Alpine and Void has been retired so I can focus on support for Ubuntu and Arch.

Other Linux distributions may also work inside lxroot. (Some level of custom shimming may be required.)

Due to lxroot's safety, simplicity, efficiency, and ability to run without root access, lxroot has a few limitations. These limitations may or may not affect your particular use case.

Learn more