Own packages repositoryPosted: 2018-09-09
I decided to try and make my own repository of precompiled packages from SBo. Exactly the same idea as SlackRepo, but made by me for my own use (not public). The tool to use is SlackRepo, which has extensive documentation, that I highly recommend. This post is not meant as a tutorial on how to use SlackRepo. It merely lists the settings I used and the steps I took for my own use.
Where to build
I made a clean install of Slackware64 14.2 in a virtual machine (I use VirtualBox). I have an 8-core CPU (AMD FX8350) and I dedicated all 8 cores to the build machine with PAE/NX enabled. Also, in the “Network” settings, I chose “Bridged Adapter“, because I wanted to set up the build virtual machine as a server (read below).
git clone https://github.com/idlemoor/slackrepo.git
navigate to the newly created folder called
slackrepo, login as root and set these two:
gitrev=git$(git log -n 1 --format=format:%h .) git archive --format=tar --prefix=slackrepo-$gitrev/ HEAD | gzip > SlackBuild/slackrepo-$gitrev.tar.gz
There is a
SlackBuild subfoder, navigate there and execute the
slackrepo.SlackBuild like this:
VERSION=$gitrev TAG=_github sh ./slackrepo.SlackBuild
The package is in
/tmp and it is ready to be installed in the virtual machine.
I want to create my repository from the scripts at SlackBuilds.org. The necessary configuration file for this is
/etc/slackrepo/. I did some customizations, so I copied this to root’s home as follows:
cp /etc/slackrepo/slackrepo_SBo.conf /root/.slackreporc
First, I added a line defining the repo I am using, in the very beginning of the file. The file header has useful info about priorities:
# The priority order for configuration is: # (1) Environment variables when slackrepo is called # (2) ~/.genreprc [for gen_repos_files.sh only] # (3) ~/.slackreporc # (4) /etc/slackrepo/slackrepo_SBo.conf # # %REPO%, %SLACKVER% and %ARCH% will be replaced by the repo ID, Slackware version and arch REPO="SBo"
Then I did a few modifications. Read the file comments carefully for more information. The modifications are for my personal use only, and may not be suitable for you.
Packages to be substituted by others:
SUBSTITUTE="xarchiver => file-roller, kbgoffice => gbgoffice"
Number of cores to use for building:
I do not publish the packages, so I did not modify the tag:
Use TGZ for the packages, the default at SBo:
I want a verbose output:
Generate a repo:
My name and contact info:
REPOSOWNER="My Name <email@example.com>"
Make this blank! (the URL may change):
Put a title to your RSS feed.
Generate a unique feed RSS identifier by running:
Now put the output of the command above here:
I want to use
slapt-get for the repo:
Now, let’s make a home repository server so the packages are easy to install on the computers from the home network. I followed the instructions at SlackDocs and ended up modifying only the following
I listed my email address:
Wrote the IP address of the virtual machine:
Uncommented the fancy directory listings:
Uncommented the various default settings
Then, I navigated to
/var/www/htdocs and made a symlink to the repo itself:
ln -s /var/lib/slackrepo/SBo/packages/ packages
The repository to be used with slapt-get is:
I know that all this flies in the face of these musings of mine from some three years ago. However, things change, including opinions. The reason is that I made a fresh re-install of Slackware64 14.2 on my laptop, but I did not want to build all additional software on it. It would take days. SlackOnly was down for quite some time and its future seemed uncertain, so I opted for my own packages. I exchanged several emails with Panagiotis, the guy behind SlackOnly, and he was very willing to continue this project. Shortly after, SlackOnly was back online, which is great!