SARPi Project - Slacking on a Raspberry Pi


Docker

Docker is a software framework for creating, running, and managing, containers on Windows, Linux, and macOS computer systems, local and remote server systems and the cloud. The term "docker" refers to the Docker project as a whole, to the tools that are used (i.e. Docker Engine daemon and commands), Docker images, and the Dockerfile file format. Docker images become containers when they run on the Docker Engine. Docker enables developers to easily create, run, and distribute any application as a lightweight, portable, self-sufficient container, which can be used virtually anywhere and facilitates instant application portability.

It's very possible to install and run Docker on Slackware Linux on a Raspberry Pi (or any other ARM device) to create Docker images which define custom environments to be used in Docker containers. The same custom environments can be used on any other computer systems which runs Docker OS-level virtualization. Unlike VM hypervisors, which are based on emulating virtual hardware, containers virtualize the operating system instead of hardware and use shared host operating system resources. Which means Docker containers are light-weight, much more efficient, and therefore less demanding on system resources.

SARPi Project muse views ... If you have made comparisons between the term "docker" and the cargo-freight shipping industry then, you might not be surprised to learn that the concept is borrowed from shipping containers, which define a standard to ship goods globally. "Docker" defines a standard to ship (i.e. distribute) software by packaging up code and all its dependencies so that applications run quickly and reliably from one computing environment to another.

About this SARPi Mini-Project

Please be aware that the information on this page is designed only to help users understand what's involved, and achieve success, in getting Docker installed and running on a Slackware Linuxsystem. This guide is not a tutorial on how to learn and use Docker in any capacity. For detailed instructions and guidance on how to use Docker to its full potential there are many more resources available which can better serve and assist users - for example; the Docker Tutorial For Absolute Beginners website, and LearnDocker.online website and GitHub repository.

Getting started with Docker on Slackware Linux

This page includes instructions on compiling the necessary packages from source yourself, or installing pre-built packages, to get Docker running on your Slackware Linux system.

The links below will direct you to the relevant section and information.

Required software packages for Docker on Slackware Linux
Building Docker and its dependent packages from source code on Slackware Linux
Installing Docker on Slackware Linux from pre-built SARPi packages
Running Docker on Slackware Linux

SARPi Project muse views ... It's always prudent to ensure that your Slackware system is completely updated with the latest available official packages before building and/or installing any new software. This can easily be achieved using 'slackpkg' which is included in the official Slackware package tree.

Required software packages for Docker on Slackware Linux

You will need to have all the required packages installed on your system in order to run Docker. Whether you are building and/or installing these packages, they should be built and installed individually in the order they appear in the list below. This is because most of these packages rely on other packages (i.e. dependencies) already being installed on the system. You may encounter errors and problems if the following packages are not installed in this specific order:

google-go-lang [ONLY needed for building required packages and dependencies - not for installing/running Docker]
libseccomp
runc
containerd
tini
docker-proxy
docker
docker-cli

These are the packages that must be installed on a Slackware Linux system before Docker can be run and used. There's other software which can also be installed to give additional functionality and features to Docker, but these packages are the basic requirements.

Building Docker and its dependent packages on Slackware Linux from source code

If you are the kind of Linux user who enjoys building software packages yourself, then there is no better platform on which to do so than Slackware. Apart from being one of the easiest and most straightforward operating systems on which to build Linux packages, Slackware also has great support, both by the Slackware Team developers and the community. In order to build the Slackware packages required for Docker, they will need compiling from source. Slackware package build scripts are by far the easiest option, although not absolutely essential. Fortunately, for Slackware end-users, the community includes those who maintain and share their own work, means, and methods, of creating software packages that are outside of the official Slackware distribution source-tree.

There's the SlackBuilds.org repository which has the largest collection of Slackware build scripts available than anywhere else online, while ensuring that they are of the highest quality. Each submitted build script is fully tested prior to inclusion in the repository. So they can be relied on and trusted.

There's also Sbopkg.org which is a command-line and dialog-based tool to synchronize with the SlackBuilds.org [SBo] repository. Sbopkg is a medium to easily browse a local copy of the SlackBuilds.org repository and build packages from it. For details on how to install and use this very useful tool see the http://sbopkg.org website.

SARPi Project muse views ... As an example, if you are using the Sbopkg tool to build and install Docker on a Slackware64 [64-bit] OS then this command may be all that's needed:

root@slackware:~# sbopkg -b docker:GO111MODULE=auto

NB: Be aware that on ARM architecture there may be some additional steps required to successfully build and install the packages when using Sbopkg tool.

In this section of the guide we'll be using SlackBuild scripts to compile source code and create Slackware packages, which can then be installed very easily. Pre-built images and packages are all well and good but, to fully appreciate and understand what's involved and how it's done, we're going to do it manually. If only for the benefit of education and/or reacquainting ourselves with the processes involved.

For the purposes of this guide we are using a Raspberry Pi 4 [4GB] with a full, clean, installation of Slackware Linux on a 32GB microSD card. The hostname of our system is 'torq' and we'll be logged in as 'root' user for building and installing all the packages required.

Downloading the Slackbuild file archives and sources and building packages

SARPi Project muse views ... Please take note that we're using the SlackBuilds 15.0 repository. That's because at the time of creating this guide [17 Nov 2021] it was the latest available. There may be more recent versions available since then.

We will be building each package, and installing it, individually and not collectively. This is to ensure that each package is installed in the right order and any other commands and settings that are required can be effectuated at the appropriate point in the process.

google-go-lang SlackBuild

The first package in the list is 'google-go-lang' - the "Go" open source programming language. This is required to build most of the other required packages for Docker, but is not required to run and use Docker itself. So, we'll download the build script tarball from Slackbuilds, unpack the files, and use them to create a Slackware package. We will use the '/tmp' directory for this purpose.

You can use whatever method to download is easiest for you. We're using the 'wget' command for this and will download the file directly to our '/tmp' directory.

root@torq:~# cd /tmp/
root@torq:/tmp# wget https://slackbuilds.org/slackbuilds/15.0/development/google-go-lang.tar.gz

Now we unpack the 'google-go-lang' tarball and 'cd' into the resulting directory.

root@torq:/tmp# tar -zxvf google-go-lang.tar.gz
root@torq:/tmp# cd google-go-lang

Next we will need the 'go-lang' source tarball, which is linked on the same SlackBuilds page courtesy of the maintainer, Vince Batts. So we'll download it. Incidentally, all Slackbuilds feature the build script and source tarballs for ease and convenience, which is perfect and saves much time.

root@torq:/tmp/google-go-lang# wget https://storage.googleapis.com/golang/go1.16.3.src.tar.gz

Once the 'go-lang' source file has finished downloading, we are ready to run the 'google-go-lang.SlackBuild' script and allow it to compile. So, without further ado, let's get started with building Slackware Linux packages.

root@torq:/tmp/google-go-lang# time ./google-go-lang.SlackBuild

This build process will take some time, approx. 35 minutes on a Raspberry Pi 4 [4GB] running Slackware Linux, depending on the storage medium that's used. Previous versions of the Raspberry Pi may take considerably longer.

SARPi Project muse views ... We use 'time' before the command to run the build script so it gives us the meantime of the build process, once it's ended. You don't have to include this as it's not necessary.

google-go-lang

When the build process has completed, the resulting package will be found in the '/tmp' directory. So we'll 'cd' to that directory and install the package.

root@torq:/tmp/google-go-lang# cd ..
root@torq:/tmp# installpkg google-go-lang-1.16.3-arm-1_SBo.tgz

Which results in what can be seen in the screenshot below.

google-go-lang

As you can see from the screenshot above, 'Go 1.16.3' version has been installed. Due to updates and revisions, the one you build and install may be a more recent and updated version.

SARPi Project muse views ... You should log out and log back in to the system after installing the Go package. This is to refresh environment settings and ensure stability for compiling further packages.

### IMPORTANT ### - Setting Go Environment Variables

After installing the 'google-go-lang' package some specific Go environment variables need to be set. DO NOT NEGLECT TO DO THIS! Failure to set these Go environment variables will result in many future SlackBuild problems!

If Go 1.16 version has been installed then setting GO111MODULE="auto" variable is required as this will enable module-aware mode which is required to build the required packages for Docker on our Slackware Linux system. Support is due to be dropped for GOPATH mode in Go 1.17 version which will ignore GO111MODULE. In this guide we have installed 'Go 1.16.3' so we certainly need this variable to be set to "auto". You may find that this environment variable needs setting even on Go versions later than 1.16. If you're having problems building the docker packages then set it anyway as it won't harm anything to do so.

root@torq:~# export GO111MODULE="auto"

Next we will set the GOPATH environment variable to the home directory. As 'root' user this will be the '/root' directory. For normal users this will be the '/home/<username>' directory.

root@torq:~# export GOPATH="$HOME"

Now we can test that Go is working properly by installing an additional library with it.

root@torq:~# go get golang.org/x/tools/cmd/godoc

Then we can see the results by using the 'ls' command in our '/root' home directory. We can also verify the Go version with the 'go version' command and check the Go environment variable settings with the 'go env <VAR_NAME>' command. It really is that simple.

google-go-lang

The screenshot above shows that there are 'bin' and'src' directories which have been created by installing the Go library. The results of 'go version' also tells us that we have 'go version go1.16.3 linux/arm' installed on our system.

The final Go environment variable we will modify is a revised GOPATH setting. The '/usr/share/gocode' system source directory is primarly only for buildtime of SlackBuilds, as stated by Vince Batts in his 'google-go-lang' information on SlackBuilds 15.0 repository.

root@torq:~# export GOPATH="$HOME:/usr/share/gocode"

This can be checked by using the 'go env GOPATH' command.

root@torq:~# go env GOPATH
/root:/usr/share/gocode

So far, so good. This looks perfect. Let's move on to the next package in the list.

libseccomp SlackBuild

The next package on the list is 'libseccomp' - an interface to the Linux Kernel's syscall filtering mechanism. 'libseccomp' is already included in the official Slackware AArch64 package-tree and can easily be installed manually or by running 'slackpkg install libseccomp', but it will need to be built and installed on Slackware Linux systems.

To compile and install 'libseccomp' it's basically the same procedure as we carried out with the previous 'google-go-lang' package build and is the mainstay of downloading the SlackBuilds file archive and source tarballs.

root@torq:~# cd /tmp
root@torq:/tmp# wget https://slackbuilds.org/slackbuilds/15.0/libraries/libseccomp.tar.gz
root@torq:/tmp# tar -zxvf libseccomp.tar.gz
root@torq:/tmp# cd libseccomp

Now, when in the 'libseccomp' directory, we'll download the source tarball.

root@torq:/tmp/libseccomp# wget https://github.com/seccomp/libseccomp/archive/v2.5.1/libseccomp-2.5.1.tar.gz

Then all we need to do it run the 'libseccomp.SlackBuild' script.

root@torq:/tmp/libseccomp# time ./libseccomp.SlackBuild

Now to install the package.

root@torq:/tmp/libseccomp# cd ..
root@torq:/tmp/# installpkg libseccomp-2.5.1-arm-1_SBo.tgz

NB: during the build process for this package, a warning is issued! It's easy to miss when the output code was scrolling up the screen so quickly.

libtool: warning: remember to run 'libtool --finish /usr/lib'

So, no matter if you have installed the package manually or by running 'slackpkg install libseccomp', run the 'libtool --finish /usr/lib' command afterwards. Which results in the following screenshot.

SARPi Project muse views ... NB: when installing on Slackware AArch64 systems use 'libtool --finish /usr/lib64' here.

libtool

That's the 'libseccomp' package installed and taken care of. Now let's move on to the next package in the list.

runc SlackBuild

The next package we will build from the list is 'runc' - a CLI tool for spawning and running containers according to the OCI specification. We'll use the same steps as before for achieving this.

root@torq:/tmp# wget https://slackbuilds.org/slackbuilds/15.0/system/runc.tar.gz
root@torq:/tmp# tar -zxvf runc.tar.gz
root@torq:/tmp# cd runc

Next we'll download the 'runc' source tarball.

root@torq:/tmp/runc# wget https://github.com/opencontainers/runc/archive/v1.0.0-rc92/runc-1.0.0-rc92.tar.gz

Now to create the 'runc' package by executing the 'runc.SlackBuild' script.

root@torq:/tmp/runc# time ./runc.SlackBuild

Once the package has been built we can install it.

root@torq:/tmp/runc# cd ..
root@torq:/tmp/# installpkg runc-1.0.0_rc92-arm-1_SBo.tgz

That should result in the screenshot below.

installpkg

That's the 'runc' package installed and taken care of. Now let's move on to the next package in the list.

containerd SlackBuild

The next package we will build from the list is 'containerd' - a daemon to control 'runc'. You should already know the procedure, or at least becoming very familiar with it.

root@torq:/tmp# wget https://slackbuilds.org/slackbuilds/15.0/system/containerd.tar.gz
root@torq:/tmp# tar -zxvf containerd.tar.gz
root@torq:/tmp# cd containerd

Next we'll download the 'containerd' source tarball.

root@torq:/tmp/containerd# wget https://github.com/containerd/containerd/archive/v1.4.3/containerd-1.4.3.tar.gz

Now to create the 'conatinerd' package by executing the 'containerd.SlackBuild' script.

root@torq:/tmp/containerd# time ./containerd.SlackBuild

Once the package has been built we can install it.

root@torq:/tmp/containerd# cd ..
root@torq:/tmp# installpkg containerd-1.4.3-arm-1_SBo.tgz

That should result in the screenshot below.

installpkg

That's the 'containerd' package installed and taken care of. Now let's move on to the next package in the list.

tini SlackBuild

The next package we will build from the list is 'tini' - a tiny but valid init for containers.

root@torq:/tmp# wget https://slackbuilds.org/slackbuilds/15.0/system/tini.tar.gz
root@torq:/tmp# tar -zxvf tini.tar.gz
root@torq:/tmp# cd tini

Next we'll download the 'tini' source tarball.

root@torq:/tmp# wget https://github.com/krallin/tini/archive/v0.19.0/tini-0.19.0.tar.gz

Now to create the 'tini' package by executing the 'tini.SlackBuild' script.

root@torq:/tmp/tini# time ./tini.SlackBuild

Once the package has been built we can install it.

root@torq:/tmp/tini# cd ..
root@torq:/tmp# installpkg tini-0.19.0-arm-1_SBo.tgz

That should result in the screenshot below.

installpkg

That's the 'tini' package installed and taken care of. Now let's move on to the next package in the list.

docker-proxy SlackBuild

The next package we will build from the list is 'docker-proxy' - this enables a service consumer to communicate with the service providing container.

root@torq:/tmp# wget https://slackbuilds.org/slackbuilds/15.0/system/docker-proxy.tar.gz
root@torq:/tmp# tar -zxvf docker-proxy.tar.gz
root@torq:/tmp# cd docker-proxy

Next we'll download the 'docker-proxy' source tarball.

root@torq:/tmp/docker-proxy# wget https://github.com/moby/libnetwork/archive/fa125a3/libnetwork-fa125a3512ee0f6187721c88582bf8c4378bd4d7.tar.gz

Now to create the 'docker-proxy' package by executing the 'docker-proxy.SlackBuild' script.

root@torq:/tmp/docker-proxy# time ./docker-proxy.SlackBuild

Once the package has been built we can install it.

root@torq:/tmp/docker-proxy# cd ..
root@torq:/tmp# installpkg docker-proxy-20201215_fa125a3-arm-1_SBo.tgz

That should result in the screenshot below.

installpkg

That's the 'docker-proxy' package installed. Now let's move on to the next package in the list.

docker SlackBuild

The next package we will build from the list is 'docker' - the Docker engine.

Before building this package, run the following command to create a 'docker' group.

root@torq:/tmp# groupadd -r -g 281 docker

Next, use the following command to add any normal user(s) to the 'docker' group (i.e. other than 'root' user) that will be allowed permission to use Docker on the Slackware system.

root@torq:/tmp# usermod -a -G docker <username>

We'll need to logout of the system and login again for these new changes to take effect.

SARPi Project muse views ... Note for future reference: After Docker has been installed and is running on the system - when any new users are added to or removed from the 'docker' group the dockerd deamon will need restarting (i.e. '/etc/rc.d/rc.docker restart') and any user(s) added, who are logged in at that time, must logout and back in again to bring any changes into effect.

Then, after logging in...

root@torq:~# cd /tmp

With the 'docker' group set up and normal user(s) added to it, we'll proceed to download the SlackBuilds archive file.

root@torq:/tmp# wget https://slackbuilds.org/slackbuilds/15.0/system/docker.tar.gz
root@torq:/tmp# tar -zxvf docker.tar.gz
root@torq:/tmp# cd docker

Next we'll download the 'docker' source tarball.

root@torq:/tmp/docker# wget https://github.com/moby/moby/archive/v20.10.2/moby-20.10.2.tar.gz

Now we'll create the 'docker' package by executing the 'docker.SlackBuild' script.

root@torq:/tmp/docker# time ./docker.SlackBuild

Once the package has been built we can install it.

root@torq:/tmp/docker# cd ..
root@torq:/tmp# installpkg docker-20.10.2-arm-1_SBo.tgz

That should result in the screenshot below.

installpkg

That's the 'docker' package installed. Now let's move on to the next and final package in the list.

docker-cli SlackBuild

The final package in the list we need to build is 'docker-cli' - a command line tool for the Docker engine.

root@torq:/tmp# wget https://slackbuilds.org/slackbuilds/15.0/system/docker-cli.tar.gz
root@torq:/tmp# tar -zxvf docker-cli.tar.gz
root@torq:/tmp# cd docker-cli

Next we'll download the 'docker-cli' source tarball.

root@torq:/tmp/docker-cli# wget https://github.com/docker/cli/archive/v20.10.2/cli-20.10.2.tar.gz

### IMPORTANT ### - Check docker-cli.SlackBuild Script

Before building this package, there's something that needs checking. The 'docker-cli.SlackBuild' script we've downloaded (from SlackBuilds 15.0 repository) is designed to build for x64 architecture only, and we are building on ARM architecture. So, if we attempt to use it, failure will be imminent. If you are working with an updated version of the 'docker-cli.SlackBuild' script then this issue may not be relevant. However, it's worth checking in any case.

Run the following command to check for "-amd64" within the 'docker-cli.SlackBuild' script file.

root@torq:/tmp/docker-cli# grep -n "\-amd64" docker-cli.SlackBuild
71:install -D -m 0755 build/docker-linux-amd64 $PKG/usr/bin/docker

SARPi Project muse views ... NB: When you use this grep command to find 'amd64' within the build script code and it doesn't display any result(s) then the 'docker-cli.SlackBuild' script shouldn't need editing and is probaly OK to run as it is. If there are any conflicts with the specified build architecture then you will find out soon enough. In which case just examine the code in the file and make the appropriate adjustment to the "amd64" build reference.

So, from the result of this we can see that line 71 in the 'docker-cli.SlackBuild' script code contains the "build/docker-linux-amd64" path. This needs changing to "build/docker-linux-arm" and can easily be achieved with a text editor, such as 'vim' or 'nano'. Alternatively, the 'sed' command can be used to change this setting within the 'docker-cli.SlackBuild' script file.

If you're installing on Slackware AArch64 then "build/docker-linux-amd64" needs changing to "build/docker-linux-arm64".

root@torq:/tmp/docker-cli# sed -Ei 's/-amd64/-arm/' docker-cli.SlackBuild

For Slackware AArch64 you can use the following 'sed' command

root@torq:/tmp/docker-cli# sed -Ei 's/-amd64/-arm64/' docker-cli.SlackBuild

After running these commands, "-amd64" will be replaced with "-arm" or -arm64" and this can be verified by using another iteration of the 'sed' command and outputting line 71 within the 'docker-cli.SlackBuild' script file. Or 'grep' can be used, just as easily, to achieve the same results.

root@torq:/tmp/docker-cli# sed -n '71,+0p' docker-cli.SlackBuild

The process, commands used, and results, can be seen in the screenshot below.

sed

If you can see that the 'build/docker-linux-amd64' section of code on line 71 has changed to 'build/docker-linux-arm' then the 'docker-cli.SlackBuild' script is good to go and ready to run.

Now we'll create the 'docker-cli' package by executing the 'docker-cli.SlackBuild' script.

root@torq:/tmp/docker-cli# time ./docker-cli.SlackBuild

Once the package has been built we can install it.

root@torq:/tmp/docker-cli# cd ..
root@torq:/tmp# installpkg docker-cli-20.10.2-arm-1_SBo.tgz

That should result in the screenshot below.

installpkg

The last package that's needed has been installed. Now we have all the software required to run Docker on our Slackware Linux system.

At this point you can skip to the "Running Docker on Slackware Linux" section to test and verify that the software is working as expected.

Installing Docker on Slackware Linux from pre-built SARPi packages

All the packages required to install Docker can be download from the SARPi package downloads page.

SARPi Project muse views ... NB: The packages which are available from the SARPi package downloads page may be updated versions of those used in this Docker installation guide.

To get Docker installed and running on a Slackware Linux system using pre-built SARPi packages they should be installed in the order that they appear in the list below.

• libseccomp
• runc
• containerd
• tini
• docker-proxy
• docker
• docker-cli

Once all these SARPi packages have been installed on your Slackware system, it's time to think about Running Docker.

Running Docker on Slackware Linux

Installing all the packages to run Docker on Slackware Linux has created the dockerd initialisation script (Docker engine daemon), located at '/etc/rc.d/rc.docker'.

We can use the 'ls' command to view the status of the '/etc/rc.d/rc.docker' file.

root@torq:~# ls -lah /etc/rc.d/rc.docker

The file has default user permissions of '-rw-r--r--' (0644) and needs making executable before it can be run. To make the '/etc/rc.d/rc.docker' file executable we use the 'chmod' command.

root@torq:~# chmod +x /etc/rc.d/rc.docker

To start the Docker engine daemon (dockerd) we simply run the '/etc/rc.d/rc.docker' file that was just made executable and instruct it to start up the process.

root@torq:~# /etc/rc.d/rc.docker start

Executing this file with the 'start' option has initialised the dockerd daemon. Incidentally, there are other '/etc/rc.d/rc.docker' usage options available with this script.

SARPi Project muse views ... It's also possible to use 'restart', 'stop' and 'status' options, instead of 'start', to manage the '/etc/rc.d/rc.docker' (dockerd) daemon and view its current status. Hint: the '/etc/rc.d/rc.docker' usage options will do exactly as they say! This is always how the dockerd daemon is started, restarted, and stopped, manually on command line.

root@torq:~# /etc/rc.d/rc.docker restart
root@torq:~# /etc/rc.d/rc.docker stop
root@torq:~# /etc/rc.d/rc.docker status
Status of dockerd: stopped

It's also possible to automatically start the dockerd daemon at boot time by editing the '/etc/rc.d/rc.local' initialisation script and entering the example text code below into it.

nano

This text code will start the Docker engine (dockerd daemon) whenever the Slackware system is booted, without needing to do it manually after each (re)boot.

We can verify that Docker is running by; using the '/etc/rc.d/rc.docker status' usage option, or by querying the process list for "docker" entries.

root@torq:~# ps aux | grep "docker"

The screenshot below displays the output from using these various commands on the '/etc/rc.d/rc.docker' file and daemon process.

chmod

To see which version of Docker is installed we use the 'docker version' command.

docker

The output shows that Docker 20.10.2 version is installed. Everything looks very good so far.

Testing Docker Containers

To do a test-run using Docker containers we can refer to the Docker Tutorial For Absolute Beginners installation page in the "Working with Docker Toolbox" section.

root@torq:~# docker run hello-world

This results in what is shown on the screenshot below.

docker

What it means is that Docker could not find an image named "hello-world" stored locally on the system. So, it downloaded (pulled) this image from an online repository and then ran it as a container. This very much indicates that Docker is working as expected.

We'll do another quick test and run 'busybox' in the same way, only with an echo value added.

root@torq:~# docker run busybox echo "hello world from busybox"

This will not find the 'busybox' image on our system. So, again, the Docker image will be downloaded and ran as a container, and it will also include the echo command that we specified.

docker

The screenshot displays the results exactly as we expected. Now we know that Docker is working perfectly.

To view a list of Docker containers running on the system the 'docker ps' command is used. In our case there are no containers currently active, so none will be displayed. To view a list of containers which exist on our system (active or not) the 'docker ps -a' command is used.

docker

We can see that only two Docker containers can be found (with an 'Exited' status - which means they are not active) and these are the ones that we've just used for testing Docker.

To remove these test Docker containers, in order to start afresh, we will delete them using the 'docker rm <CONTAINER_ID>' command.

docker

Now we have a clean Docker container list.

That's it! Docker has been installed, tested, and found to be working perfectly. All that's left to do from here is use it to gain more experience and hopefully learn a great deal about Docker as we go along.

Thanks!

Thank you for reading and taking part in this SARPi mini-project. We hope you enjoyed it and found it interesting and educational.

Thanks also to Patrick Volkerding, and the entire Slackware Team, for producing a truly wonderful OS. Without you, and the work you do, the SARPi Project would not exist.

If you have any questions or need help, visit the Slackware Linux Forum on Linux Questions. Or get in touch on the #SARPi IRC channel on irc.libera.chat.

Back to Top


Updated: 2024-03-07 10:15:52 UTC

Disclaimer: The SARPi Project website is for non-commercial and general information purposes only. The content is provided by Penthux.NET and while we endeavour to keep information up to date and correct, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or any information, software, products, services, or related graphics which is available on the website for any purpose. Any reliance you place on such information is therefore strictly at your own risk. In no event will Penthux.NET be liable for any loss or damage including without limitation, indirect or consequential loss or damage, or any loss or damage whatsoever arising from loss of data or profits arising out of, or in connection with, the use of this website or any of its contents. Through this website you are able to visit other websites which are not under our control. Penthux.NET has no influence over the nature, content or availability of any external URLs. The inclusion of any URLs does not necessarily imply a recommendation or endorsement of any content therein. Every effort is made to ensure the SARPi Project website remains accessible. However, Penthux.NET takes no responsibility for, and will not be liable for, the SARPi Project website being temporarily unavailable due to technical issues beyond our control. SARPi Project is in no way affiliated with Slackware Linux, Inc, or the Linux Foundation, or Raspberry Pi Ltd., or any of their respective members, trustees, partners, or associates.


Accept!

SARPi Project uses cookies for website traffic data analytics purposes only. Cookies from this website do not collect or store any of your personal data.

Please read the SARPi Project website [ Cookie Policy ] for more details.