Running software from other Debian releases

From techdocs
Jump to navigation Jump to search

CSE New World systems run Debian stable. Software from other Debian releases can be useful for other purposes - particularly more recent versions of software from Debian testing.

The programs unstable, testing, stable, oldstable, sid bookworm bullseye buster in /usr/local/extrafiles/bin/ run software from the corresponding Debian release. For example:

$ unstable nodejs --version
v16.15.1
$ testing nodejs --version
v16.14.2
$ bullseye nodejs --version
v12.22.5
$ buster nodejs --version
v10.24.0

The builds are updated weekly. Software may be missing from unstable/sid if builds fail, e.g. to conflicts.

Providing Access from a Class Account

It can be convienent to provide access to software via a him script in the class account.

For example if COMP2041 students need access to the version of git from testing, this could be provided by creating /home/cs2041/bin/git like this:

$ git --version
git version 2.31.0
$ cat /home/cs2041/bin/git
#!/bin/sh

exec /usr/local/extrafiles/bin/testing /usr/bin/"$(basename "$0")" "$@"
$ 2041 git --version
git version 2.35.1
$ 

Limitations

The scripts and builds of other Debian distributions are unprivileged. Software that requires privileges will fail if executed this way. This avoids security concerns.

Execution is in a separate user namespace - for more information see Controlling Resources & Privileges with Linux namespaces, cgroups & limits Files owned by other users appear as owned by nobody/ which may break some things.

A set of pathnames including /dev and /proc are bind mounted into a mount namespace. This is sufficient for simple purposes but may not be sufficient for some software.