This is an old revision of the document!
Table of Contents
Building and Installing Packages with sbopkg
Sbopkg is a command-line and dialog-based tool to synchronize with the SlackBuilds.org (“SBo”) repository, a collection of third-party SlackBuild scripts to build Slackware packages. The program has a curses based interface which lets you pick and assemble the programs which you want to compile from source into packages. It can also be used non-interactively in case you know beforehand what your goal is - in that case it is “fire and forget”.
The following information will assist you in getting sbopkg installed, and running on Slackware.
sbopkg
builds Slackware packages. As with any Slackware package management program, you will have to be root to use the program! Execute su -
to get a root command prompt with the correct environment configured.
Download sbopkg:
Download sbopkg from: https://www.sbopkg.org/downloads.php
You can get the sources and build a package yourself, or just grab th ready-made Slackware package. The following section of this article assumes that you downloaded the ready-built package.
Install sbopkg
- Assuming that the
sbopkg
package file name you downloaded to the current directory is sbopkg-0.38.0-noarch-1_wsr.tgz, theinstallpkg
command to install sbopkg (or upgrade it if it was already present on your system) is as follows:$ su - # cd /path/to/downloaded/file/ # upgradepkg --install-new sbopkg-0.38.0-noarch-1_wsr.tgz
Configure sbopkg
- Read the
sbopkg
documentation! See https://www.sbopkg.org/docs.php , and also do not forget there is a man page forsbopkg
. - The first time
sbopkg
is executed, you will be asked if it is OK that the program creates the necessary configuration files:# sbopkg The following directories do not exist: Variable Assignment -------- ---------- REPO_{ROOT,NAME,BRANCH} -> /var/lib/sbopkg/,SBo/,14.2 LOGFILE directory -------> /var/log/sbopkg QUEUEDIR ----------------> /var/lib/sbopkg/queues SRCDIR ------------------> /var/cache/sbopkg TMP ---------------------> /tmp/SBo You can have sbopkg create them or, if these values are incorrect, you can abort to edit your config files or pass different flags. (C)reate or (A)bort?:
. Select C to create these required directories.
The program will then present its main screen:
- Your first task is to synchronize with the SlackBuilds.org repository - i.e. you let
sbopkg
create a local copy of all the SlackBuild entries on the remote server, for the Slackware release which you are running. You either use the first menu item in the curses-based main screen, or else you can do this from the commandline:# sbopkg -r Syncing with the remote repository into /var/lib/sbopkg/SBo/14.2. receiving incremental file list <long list of filenames...> sent 451288 bytes received 36904793 bytes 371702.30 bytes/sec total size is 35271012 speedup is 0.94 Rsync with the SBo repository for Slackware 14.2 complete. Importing SBo repository for Slackware 14.2 GPG Key... Import done. ***SYNC COMPLETE***
- You are now ready to select the packages you want
sbopkg
to build from source.
Using Queuefiles with sbopkg
The sbopkg
program itself allows a great deal of automation: the interactive curses interface helps you manage the burden of downloading source code archives, and allowing you to select multiple programs and then compile and package all of those in one go.
But you can automate this process even further, by using sqg - sbopkg queueu generator (included in main package since 0.38.0).
sqg can generate queuefile for each or all packages in SBo repository:
sqg -p <filezilla> # this will only generate queue file for filezilla package only sqg -a # this will generate queue files for all packages in SBo repository
Note that everytime a public update is announced or new repository is available, it's recommended to run sqg -a to generate an updated queue files as deps may be added or removed.
Example of Using sbopkg
As an example, let's install Gramps. The queuefile for Gramps lists the following dependencies, in order of install:
orbit2 pyorbit libbonobo gnome-mime-data gnome-vfs libgnome gnome-python gramps
Load the “gramps.sqf
” queue file in sbopkg's curses interface, and Gramps will be successfully built on your Slackware 14 system and installed, along with all its dependencies.
Alternatively you can use the less interactive command-line interface:
# sbopkg -i gramps Both a queuefile and a package were found with the name "gramps". Use (Q)ueuefile, (P)ackage, or (A)bort?: q One or more build option files for the avahi SlackBuild script were found: Queuefile options: MONO=yes Use (N)one, (Q)ueuefile, or (A)bort?: n ########################################### New queue process started on: Thu Nov 15 23:05:16 CET 2012 ########################################### +++++++++++++++++++++++++++++++++++++++++++ PACKAGE BUILDING/INSTALLATION PRE-CHECK LOG Using the SBo repository for Slackware 14.0 Queue Process: Build and install <long list of package checks...> Pre-check complete. Do you wish to proceed based on the search results above? Packages not found will be skipped during the process. (P)roceed or (Q)uit?: p
etcetera.
References for sbopkg
Sources
- Originally written by ldkraemer
- Contributions by Eric Hameleers