Gregg's MOTD

Tips & Tricks that I've Encountered Over the Years...

Installing and Using sbotools in Slackware 15.0

August 08, 2023 — Gregg Szumowski

Slackware was the first Linux distribution that I ever used but I was always curious and did a lot of distro-hopping from Slackware, Caldera, Turbo Linux, Mandrake, Red Hat, Ubuntu, multiple Ubuntu derivatives, then Fedora for quite a while until I finally settled on…(drum roll please)…Slackware! Yeah, I’ve come full circle.

One of the reasons why I was doing so much hopping around is that I was never really happy with something about the distribution that I was currently using. Maybe it was the default colors (Ubuntu, come on with all of that orange stuff), choice of default software, difficulty with setting it up. Whatever. With Slackware it was always the (lack of) a decent package management system. That is until I found “sbotools”.

Yeah, slackpkg is there. So are a few others, like (list a few of them here). But the lack of a distribution that didn’t have dependency management in its package manager is a real pain in the backside.

So what’s the big deal? Well, one of the points of running Slackware is installing packages that you choose to install and not letting the package manager run amuck and automatically select and install a full list of dependencies without letting the user know what they are and what they do. That’s where sbotools comes in.

Klaatu talks about sbotools in his Gnu World Order Episode 473 so you can find more information about it in his review.

As sbotools is highly influenced by FreeBSD’s ports system and its pkgtools, the interface will be more or less familiar to anyone familiar with portupgrade, etc.

When you use sbotools it finds the dependencies for the software you want to install and for each one, displays what it is, what it does, and prompts you if you want to install it or not. Also, if the dependency has optional parameters it asks you if you want to see them and gives you a choice to modify them or not.

Now all of this is done in the console, which is another thing that I like about sbotools. No fancy ncurses or GUI dialogs. Just a simple console program which is handy if you’re using a headless server.

Once you are done selecting your package and providing whatever responses are required, sbotools downloads the Slackbuilds and the source code from wherever it needs to and compiles the packages one by one in the order required and installs them. If a compilation fails then it asks you if you wish to continue or quit. Then you have the option to try figuring out what went wrong but looking at the build logs or by scrolling back on the console output.

The sbotools package is not a single program but a collection of about a half a dozen programs that work very much like the BSD ports. You have a tool to initialize and fetch the latest list of packages, another to check to see if you need to update your locally installed programs, another to search for them and one to install new packages.

Installing sbotools is rather simple if you’re use to installing packages by hand in Slackware. It comes as a tz package that you install using the ‘installpkg’ command.

First you need to install the sbotools package. Then you need to “sync” the SlackBuild repository to your machine using the command:

# sbosnap fetch

This will create a git repository of all of the SlackBuilds supported by this tool (which is a lot). Now you can use the sbofind command to search for a package.

Next we will run sbocheck to see if there are any updates since the last time. In this case since this is the first time we’re using it we shouldn’t expect anything new. The example below shows the results when you do have new results:

# sbocheck
Updating SlackBuilds tree...
Updating files: 100% (44404/44404), done.
HEAD is now at 49808a413d 20230729.1 global branch merge.
Checking for updated SlackBuilds...

plexmediaserver 1.32.5.7328_2632c9d3a < needs updating (1.32.5.7349_8f4248874 from SBo)

A copy of the above result is kept in /var/log/sbocheck.log

If the above command indicates that there are updates then you can initiate an upgrade using the following command:

# sboupgrade --all
Checking for updated SlackBuilds...

OK, so now your repository is set up. Let’s use it.

Suppose we want to find a software package that can read guitar tabs:

# sbofind guitar
SBo: tuxguitar 1.5.1
Path: /usr/sbo/repo/audio/tuxguitar

SBo: guitarix 0.44.1
Path: /usr/sbo/repo/audio/guitarix

We received two results. Let’s query their details:

# sbofind -r guitarix
SBo: guitarix 0.44.1
Path: /usr/sbo/repo/audio/guitarix
README:
guitarix (virtual guitar amplifier for jack)

guitarix offers the range of sounds you would expect from a
full-featured universal guitar-amp. You can get crisp clean-sounds,
nice overdrive, fat distortion and a diversity of crazy sounds never
heard before. Guitarix can be used as a standalone application, as
LADSPA plugins, or as LV2 plugins.

For 32-bit x86, a CPU with SSE instructions is required. For other
architectures, SSE will be used if available.

meterbridge is an optional runtime dependency.

Starting with version 0.35.4, guitarix's 'Online presets' feature no
longer requires webkitgtk. See README.online for more information.

This package uses POSIX filesystem capabilities to execute with
elevated privileges (required for realtime audio processing). This
may be considered a security/stability risk. Please read
http://www.slackbuilds.org/caps/ for more information. To disable
capabilities, pass SETCAP=no to the script.

root@slacker:~# sbofind -r tuxguitar
SBo: tuxguitar 1.5.1
Path: /usr/sbo/repo/audio/tuxguitar
README:
TuxGuitar is a multitrack guitar tablature editor and player written
in Java-SWT. It can open GuitarPro, PowerTab, and TablEdit files.

Ah, looks like tuxguitar is the one we want. So let’s install it:

# sboinstall tuxguitar

This is a SlackBuild to repackage the Azul's Zulu build of OpenJDK that
is compliant with the Java SE 8 standard.

Before installing this package please consider any other jdk's/jre's
that you have already installed as they may cause conflicts with the
PATH, JAVA_HOME and MANPATH variables.

After installing the package you will need to logout/reboot your machine
as it will add files to the /etc/profile.d folder.

Note: zulu-openjdk8 does not have a browser plugin nor support for Java
Network Launching Protocol (JNLP).

Proceed with zulu-openjdk8? [y] n

I already have a different version of Java installed so I will skip this part

TuxGuitar is a multitrack guitar tablature editor and player written
in Java-SWT. It can open GuitarPro, PowerTab, and TablEdit files.

Proceed with tuxguitar? [y]
tuxguitar added to install queue.

Install queue: tuxguitar

Are you sure you wish to continue? [y]

Slackware package /tmp/tuxguitar-1.5.1-x86_64-1_SBo.tgz created.


+==============================================================================
| Installing new package /tmp/tuxguitar-1.5.1-x86_64-1_SBo.tgz
+==============================================================================

Verifying package tuxguitar-1.5.1-x86_64-1_SBo.tgz.
Installing package tuxguitar-1.5.1-x86_64-1_SBo.tgz:
PACKAGE DESCRIPTION:
# tuxguitar (A Multitrack tablature editor and player)
#
# TuxGuitar is a multitrack guitar tablature editor and player
# written in Java-SWT. It can open GuitarPro, PowerTab, and
# TablEdit files.
#
Executing install script for tuxguitar-1.5.1-x86_64-1_SBo.tgz.
Package tuxguitar-1.5.1-x86_64-1_SBo.tgz installed.
Cleaning for tuxguitar-1.5.1...
#

So, sboinstall will not install any package without telling you first and it will describe what the packages does and if there are any additional (optional or otherwise) command line parameters which it will prompt you for.

Once you respond to the last prompt it will download and install (and compile if necessary) all of the packages you requested. If it fails one of the installations it will ask you if it should continue. If it succeeds in installing all of the packages then you’re ready to start using your software.

Each of the command line tools has it’s own manpage. Have fun!

Tags: cli, slackware, sbotools, slackbuilds, motd