SlackOnly as a main third-party repository
Posted: 2015-11-02 Filed under: slackbuilds, system | Tags: dependencies, gslapt, multilib, package, SBo, slackbuilds, slackonly, slackpkg, slackpkg plus, slapt-get 7 CommentsI decided to try using SlackOnly as my primary source of third-party software. My system is Slackware64 -multilib and all settings below take this into account. I manage the official Slackware updates and AlienBob’s multilib layer with slackpkg
, complemented by it’s extension slackpkg+
.
The default Slackware64 14.1 mirror that slackpkg
uses is set in /etc/slackpkg/mirrors
. Configuration of slackpkg+
is done in /etc/slackpkg/slackpkgplus.conf
. In my case, I just wanted a multilib system, therefore I made the following modifications:
# Configuration for slackpkg+. See /usr/doc/slackpkg+-*/README for more details # Enable (on) / Disable (off) slackpkg+ SLACKPKGPLUS=on # set to '0' to never show the download progress bar # set to '1' to show the bar only in download packages (default) # set to '2' to always show the download bar # set to '3' for a debug mode VERBOSE=2 # By default slackpkg+ deny to install 32bit packages. # # Set this flag to 'on' allow slackpkg+ to install 32bit packages on a 64bit slackware # installation (possibly unsafe). Please, do not install both 32 and 64bit of the same # package to avoid problems, and NEVER upgrade existant 64bit packages with relative 32bit package. # Do not forget to install the multilibs. ALLOW32BIT=off # Enable (1) / Disable (0) the official slackpkg blacklist. May be useful to temporarily skip # the slackware blacklist. You can also override it from command line: # 'USEBL=0 slackpkg upgrade-all' USEBL=1 # Add custom option to 'wget'. # You can solve the repository indisponibility issue by set a timeout here WGETOPTS="--timeout=20 --tries=2" # Enable (on) / Disable (off) notification events (see notifymsg.conf) #ENABLENOTIFY=off # Enable (on) / Disable (off) the greylist feature. See /etc/slackpkg/greylist GREYLIST=on # If two or more repositories contains some same packages, you can specify # from which repository you prefer to search it. # The syntax is "<repository_name>:<package_name>" # Accepts regular expressions. To give priority to an entire repository use "<repository_name>" # Examples: #PKGS_PRIORITY=( restricted:vlc ) # OR #PKGS_PRIORITY=( myrepo ) # # if you have two reporitories to give priority you must set both in the same line #PKGS_PRIORITY=( myrepo restricted:vlc ) # # if you want to install 'ktown' repository you must set it here #PKGS_PRIORITY=( ktown ) # and read special instruction on /usr/doc/slackpkg+-*/repositories.txt # # If you want a multilib system, uncomment the multilib repository and set: PKGS_PRIORITY=( multilib ) # # (Use /usr/doc/slackpkg+-*/setupmultilib.sh to setup a multilib configuration) # # For both multilib and ktown set #PKGS_PRIORITY=( multilib ktown ) # Otherwise you can try to upgrade a package from a repository that contains a package with the # same tag of the already installed package. Tipically that means to upgrade a package from the # same author of the already installed package. # Note that this method may not works properly where two repositories contains a package with the # same tag. # Set TAG_PRIORITY to 'on' to enable this function TAG_PRIORITY=off # List repositories you want to use (defined below) # remember to launch 'slackpkg update' if you modify that row. REPOPLUS=( slackpkgplus multilib ) # Define mirrors (uncomment one or more mirror; remember to add it to REPOPLUS) # GPG Note: after adding a repository, you must to run 'slackpkg update gpg' # some repositories as salixos or slackel, have a partial GPG support; # for that repositories you may need to run slackpkg with 'slackpkg -checkgpg=off ...' # Slackware 14.1 - x86_64 MIRRORPLUS['multilib']=http://taper.alienbase.nl/mirrors/people/alien/multilib/14.1/ #MIRRORPLUS['alienbob']=http://taper.alienbase.nl/mirrors/people/alien/sbrepos/14.1/x86_64/ #MIRRORPLUS['restricted']=http://taper.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.1/x86_64/ #MIRRORPLUS['slacky']=http://repository.slacky.eu/slackware64-14.1/ # use this to keep the slackpkg+ package updated MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/ # Slackware current - x86_64 #MIRRORPLUS['multilib']=http://taper.alienbase.nl/mirrors/people/alien/multilib/current/ # Local repository: #MIRRORPLUS['alienbob']=file://repositories/alien/sbrepos/14.1/x86/ # # Local packages (you do not need metadata nor 'slackpkg update' command): #MIRRORPLUS['myrepo']=dir://repositories/mypackages/ # # Supported Repositories (see /usr/doc/slackpkg+-* for details and notes): # #Supports GPG #slackpkgplus: http://slakfinder.org/slackpkg+/ #multilib: http://taper.alienbase.nl/mirrors/people/alien/multilib/{13.37,14.0,14.1,current}/ #alienbob: http://taper.alienbase.nl/mirrors/people/alien/sbrepos/{13.37,14.0,14.1,current}/{x86,x86_64}/ #ktown: http://taper.alienbase.nl/mirrors/alien-kde/{13.37,14.0,14.1,current}/{latest,testing}/{x86,x86_64}/ #restricted: http://taper.alienbase.nl/mirrors/people/alien/restricted_sbrepos/{13.37,14.0,14.1,current}/{x86,x86_64}/ #slacky: http://repository.slacky.eu/slackware{,64}-{13.37,14.0,14.1}/ #mled-desktop: http://www.microlinux.fr/microlinux/desktop-14.1-{32,64}bit/ #mled-extras: http://www.microlinux.fr/microlinux/extras-14.1-{32,64}bit/ #mles: http://www.microlinux.fr/microlinux/server-{14.0,14.1}-{32,64}bit/ #msb: http://slackware.org.uk/msb/{14.0,14.1}/{1.6,1.8,1.10}/{x86,x86_64}/ #slackers: http://ponce.cc/slackers/repository/ #slacke18: http://ngc891.blogdns.net/pub/slacke18/slackware{,64,arm}-14.1/ #studioware: http://studioware.org/files/packages/slackware{,64}-{13.37,14.0,14.1}/ #slackonly: http://slackonly.com/pub/packages/{14.1,current}-{x86,x86_64}/ #rlworkman: http://rlworkman.net/pkgs/{13.37,14.0,14.1}/ # #Does NOT support GPG #salixos(*): http://download.salixos.org/{i486,x86_64}/{13.37,14.0,14.1}/ #slackel(*): http://www.slackel.gr/repo/{i486,x86_64}/{current,kde5}/
You may notice that the SlackOnly repository is listed in the configuration file of slackpkg+
. However, the SlackOnly repository is rather big, so having a dependency resolution for it is something that I need.
Therefore, I decided to use slapt-get to manage the installation of third party packages from SlackOnly 14.1-x86_64. It even has a nice graphical front end called gslapt, which can be used to specify mirrors with different priority. I set Slackware64 14.1 mirror as OFFICIAL
, AlienBob’s multilib as PREFERRED
and SlackOnly as DEFAULT
:
In this way, slapt-get
will not insist on upgrading the multilib versions of glibc-*
and gcc-*
with the official ones. The first mirror in the list is deselected, because it points to slackware.com, which can be slow. Instead, I specified the same mirror that I had selected for slackpkg
from /etc/slackpkg/mirrors
. The jaos.org mirror keeps slapt-get
and gslapt
updated.
Since some of my packages are compiled from SBo, I do not want slapt-get
to replace them with their SlackOnly versions. Therefore, I added the _SBo
tag to the excludes list:
The above settings are stored in /etc/slapt-get/slapt-getrc
:
WORKINGDIR=/var/slapt-get EXCLUDE=^aaa_elflibs,^devs,^glibc-.*,^kernel-.*,^udev,.*-[0-9]+dl$,i[3456]86,[0-9]+_SBo #DISABLED=ftp://ftp.slackware.com/pub/slackware/slackware64-14.1/:OFFICIAL SOURCE=http://software.jaos.org/slackpacks/14.1-x86_64/:OFFICIAL SOURCE=ftp://ftp1.uninett.no/slackware/slackware64-14.1/:OFFICIAL SOURCE=http://taper.alienbase.nl/mirrors/people/alien/multilib/14.1/:PREFERRED SOURCE=http://packages.slackonly.com/pub/packages/14.1-x86_64/
At the moment, some packages at SlackOnly (those built prior to March 2015) lack dependencies information. In such case, I follow the dependencies from SlackBuilds.org, but I hope this will be fixed in the near future.
In conclusion, I continue using slackpkg(+)
to manage what I consider to be my ‘stock’ system: Slackware64 -multilib. Separately, slapt-get
does an excellent job with the packages from SlackOnly. I continue to build packages from SBo by sbopkg
, however now I install most (if not all) of their dependencies from SlackOnly.
After adding the slackonly repo I’m getting a lot of ‘regex failed package name’ strings when I run ‘slapt-get –update’. Is it because of that the PACKAGES.TXT contains a lot of blank package names actually or what?
And another Q: I have no official repos in slapt-getrc but I still see all official packages when run ‘slapt-get –list’. Does it look somewhere in the package cache? Thank you in advance.
I really do not know about the ‘regex failed package name’. Could you post the error as an example?
about the official packages: you mean that you see also the non-installed ones?
The ‘regex failed package name’ is because some meta files missing the field of package name. This is happening only in 14.1-x86 repo. Thanks for reporting i will fix this right now.
[…] SlackOnly as a main third-party repository (2015-11-02) […]
i have some problem here
Retrieving package data [http://packages.slackonly.com/pub/packages/14.1-x86/]…regex failed on [PACKAGE NAME: ]
:(
Hi, please contact Panagiotis about this.
hi, Porteus is a nice work. i like. thanks for information, i look Panagiotis contact on slackonly :D