- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1
 
tutorial
- Basic usage
 - Package management
 
Introduction
- Tutorial 1 shows how to install 
vland. - 
vlandis a Dash shell script. - At present, 
vlandonly supportsx86_64Linux systems. 
Commands
$  wget     https://github.com/parke/vland/raw/main/vland
$  chmod    +x  ./vland
$  ./vland  --help
Commentary
- Line 1 downloads the 
vlandshell script. - Line 2 makes the script executable.
 - Line 3 prints out 
vland's help message. - Optional:  You may copy 
vlandinto yourPATH, if you wish. 
Introduction
- Tutorial 2 continues from the end of tutorial 1.
 - 
vlandcontains a built-in self-test. - Tutorial 2 is optional. Feel free to skip ahead to tutorial 3.
 - However, if 
vlandseems to be having problems, you may wish to run the self-test, as described below. - The self-test will create the directory "$HOME/vland" and will write 901MB of files inside "$HOME/vland".
 
Commands
$  ./vland  --self-test
Commentary
vland's self test will attempt to do the following:
- Install Alpine Linux into a userland named 
vland-self-test. - Install 
vlanditself insidevland-self-test. - Run 
vlandinsidevland-self-testto install a nested Arch Linux userland inside thevland-self-testuserland. - Then finally run ...
- ...  (on your host) a child 
vlandprocess to run: - ...  (in 
vland-self-test) a grandchildvlandprocess to run: - ... (in the nested Arch userland) an interactive (simulated root) shell.
 
 - ...  (on your host) a child 
 
If vland's self test fails, please consider submitting a bug report on Github.
If the self-test works, you should see a bunch of output, and then, after (probably) 30 to 120 seconds, something like the below:
----------------------------------------------------------------
  vland  --self-test  now launching interactive root shell ...  
----------------------------------------------------------------
+  /bin/sh /home/user/vland vland-self-test -n -- vland arch -nr
+  exec lxroot /home/user/vland/land/vland-self-test /home/user/vland/over/vland-self-test -n -- vland arch -nr
+  exec /home/user/vland/dist/bin/lxroot-x86 /home/user/vland/land/arch /home/user/vland/over/arch -nr
root  -nr  ./arch  ~  
Introduction
- Tutorial 3 continues from the end of tutorial 1.
 
Commands
$  ./vland  --create  arch
$  ./vland  arch  -nr
  #  pwd
  #  id
  #  cat    /etc/issue
  #  uname  -a
  #  exit
Commentary
- Line 1 creates a userland named 
arch. - Line 1 also installs Arch Linux in the 
archuserland. - Typically, the userland will be created at 
$HOME/vland/land/arch. - Fyi, the full syntax of 
--createis:vland --create distro [userland] [overlay] - If 
lxrootand/oraria2care not installed on the host, thenvlandwill automatically download and use static builds of each. 
Introduction
- Tutorial 4 continues from the end of tutorial 3.
 
Commands
$  ./vland  arch  -nr  --  pacman  -Syu  chromium
Commentary
- 
./vland archtells vland to run a command inside thearchguest - 
-ngrants network access - 
-rsimulates uid = 0 (root) - 
--precedes the command - The command 
pacman -Syu chromiumwill be run inside thearchguest. 
Introduction
- Tutorial 5 continues from the end of tutorial 4.
 
Commands
$  ./vland  arch  -nx  --  chromium
Commentary
- 
./vland archtells vland to run a command inside thearchguest - 
-ngrants network access - 
-xgrants the guest access to the host's Xorg server - 
--precedes the command - The command 
chromiumwill be run inside thearchguest. 
Introduction
- For certain downloads, 
vlanduses thearia2cdownload utility. - If 
aria2cis not installed on the host system,vlandwill download a static bulid ofaria2c. - Tutorial 11 shows how I use 
vlandto create a static build ofaria2c. 
Commands
$  wget     TODO
$  /bin/sh  aria2c-static.sh  --run
$  ls  -lh
Commentary
- Line 1 downloads my 
aria2c-static.shscript. - Line 2 runs my 
aria2c-static.shscript. This script:- installs vland
 - installs a Void Linux userland
 - builds custom versions of key libraries
 - builds a static build of 
aria2c 
 
- 
vlanditself creates and configures guest userlands. - However, to actually execute a program inside a guest userland, 
vlanduses a separate tool called Lxroot. - You may, if you wish, learn about Lxroot by reading the Lxroot tutorial.
 
The below package building tutorials depend on features that are not available in the published version of vland.  This is because:  I am simultaneously developing the features and writing the below tutorials.  Soon, I hope to publish an updated version of vland.
- The 
./vland --pkgoperation can install and build packages inside a guest. - At present, 
--pkgsupports Alpine and Arch guests. 
The syntax of --pkg is:
./vland  --pkg  overlay  [guest]  action  [--]  [package ...]
Where action is one of:
update | 
  update/sync the guest's package database | 
install | 
  download and install a pre-built package | 
deps | 
  download and install all of `package`'s build dependencies | 
build | 
  build the package | 
build-install | 
  build and install the package | 
Introduction
- In this tutorial will do the following:
- create an Apline guest named 
alpine-guest - install the 
zshpackage inalpine-guest - build and install the 
lua5.4package inalpine-guest 
 - create an Apline guest named 
 
Commands
$  ./vland  --create  alpine  alpine-guest
$  ./vland  --pkg  alpine-guest  install  zsh
$  ./vland  --pkg  alpine-guest  build-install  lua5.4
Commentary
- Line 1 creates an Apline guest named 
alpine-guest. - Line 2 install the pre-built 
zshpackage inalpine-guest. - Line 3 builds and installs the 
lua5.4package inalpine-guest. - The same commands should would for an Arch guest.  Note that in Arch, the Lua 5.4 package is named 
lua. 
- The 
./vland --auroperation can build and install packages from Arch's AUR. - The 
--auroperation has the same syntax as the--pkgoperation. - However, the 
--auroperation has feweractions. - The 
--auroperation only works with Arch guests. 
The syntax of the --aur operation is:
$  ./vland  --aur  overlay  [guest]  action  [--]  [package ...]
Where action is one of:
deps | 
  download and install all of `package`'s build dependencies | 
build | 
  build the package | 
build-install | 
  build and install the package | 
Introduction
- In this tutorial, we will do the following:
- create an Arch guest named 
arch-guest - build and install the 
jed-snapshotAUR package inarch-guest 
 - create an Arch guest named 
 
Commands
$  ./vland  --create  arch  arch-guest
$  ./vland  --aur  arch-guest  build-install  jed-snapshot
Commentary
- Line 1 creates an Arch guest named 
arch-guest. - Line 2 builds and install the AUR 
jed-snapshotpackage.