====== Building and Installing Packages with sbopkg ====== [[https://sbopkg.org/|Sbopkg]] is a command-line and dialog-based tool to synchronize with the [[https://slackbuilds.org/|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. Note that ''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//, the ''installpkg'' 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 for ''sbopkg''. - 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: \\ {{:howtos:slackware_admin:sbopkg_start.png}} - 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 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 # 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 [[http://gramps-project.org/|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.2 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 ########################################### New queue process started on: Fri Aug 19 04:57:12 WIB 2016 ########################################### +++++++++++++++++++++++++++++++++++++++++++ PRE-CHECK LOG Using the SBo repository for Slackware 14.2 Queue Process: Download, build, and install ORBit2: Checking GPG for ORBit2.tar.gz ... OK Processing ORBit2 2.14.19-3 Using original .info file Using original SlackBuild file No build options selected. pyorbit: Checking GPG for pyorbit.tar.gz ... OK Processing pyorbit 2.24.0-1 Using original .info file Using original SlackBuild file No build options selected. libbonobo: Checking GPG for libbonobo.tar.gz ... OK Processing libbonobo 2.32.1-3 Using original .info file Using original SlackBuild file No build options selected. gnome-mime-data: Checking GPG for gnome-mime-data.tar.gz ... OK Processing gnome-mime-data 2.18.0-2 Using original .info file Using original SlackBuild file No build options selected. gnome-vfs: Checking GPG for gnome-vfs.tar.gz ... OK Processing gnome-vfs 2.24.4-3 Using original .info file Using original SlackBuild file No build options selected. libgnome: Checking GPG for libgnome.tar.gz ... OK Processing libgnome 2.32.1-2 Using original .info file Using original SlackBuild file No build options selected. gnome-python: Checking GPG for gnome-python.tar.gz ... OK Processing gnome-python 2.28.1-1 Using original .info file Using original SlackBuild file No build options selected. gramps: Checking GPG for gramps.tar.gz ... OK Processing gramps 3.4.3-1 Using original .info file Using original SlackBuild file No build options selected. +++++++++++++++++++++++++++++++++++++++++++ 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 ===== * https://www.sbopkg.org\\ * https://www.sbopkg.org/docs.php * https://www.sbopkg.org/downloads.php * https://www.sbopkg.org/queues.php ====== Sources ====== * Originally written by [[wiki:user:ldkraemer|ldkraemer]] * Contributions by [[wiki:user:alienbob|Eric Hameleers]] * Contributions by [[wiki:user:willysr|Willy Sudiarto Raharjo]] {{tag>howtos software sbo package_management author_ldkraemer}}