This is a three-parts article. There are few sections here.
Part One
Part Two
Part Three
There are still other topic uncovered here
Slackbuild
There are few options to have slackbuild compiled.
Here we I use fish
as an experiment.
You can use other Slackbuild as well such as ncdu
.
Manual Compilation
Get the slackbuild.
Using the appropriate slackware version.
$ cd ~
$ wget -c ftp://ftp.slackbuilds.org/pub/slackbuilds/14.2/system/fish.tar.gz
$ tar -xvf fish.tar.gz
$ cd fish
$ chmod +x fish.SlackBuild
Get the source code.
Using fish.info
$ cat fish.info
PRGNAM = "fish"
VERSION = "2.6.0"
HOMEPAGE = "http://fishshell.com/"
DOWNLOAD = "https://github.com/fish-shell/fish-shell/releases/download/2.6.0/fish-2.6.0.tar.gz"
MD5SUM = "ce9d8cc2a34d172a94cfa3ef9988937c"
DOWNLOAD_x86_64 = ""
MD5SUM_x86_64 = ""
REQUIRES = "man-db"
MAINTAINER = "Edinaldo P. Silva"
EMAIL = "edps.mundognu@gmail.com"
$ wget -c --no-check-certificate https://github.com/fish-shell/fish-shell/releases/download/2.6.0/fish-2.6.0.tar.gz
Do the compilation process.
Be brave to track error in /tmp/*/config.log
whenever you encounter error.
$ ./fish.SlackBuild
...
Slackware package /tmp/fish-2.6.0-x86_64-1_SBo.tgz created.
And finally install.
$ installpkg /tmp/fish-2.6.0-x86_64-1_SBo.tgz
Verifying package fish-2.6.0-x86_64-1_SBo.tgz.
Installing package fish-2.6.0-x86_64-1_SBo.tgz:
PACKAGE DESCRIPTION:
# fish (Friendly Interactive Shell)
#
# fish is a user friendly command line shell for UNIX-like systems.
#
# fish includes case insensitive completions, a multiline editing
# system, a new and simplified key binding system, and a large number
# of command specific completions.
#
# Homepage: http://fishshell.com/
#
Executing install script for fish-2.6.0-x86_64-1_SBo.tgz.
Package fish-2.6.0-x86_64-1_SBo.tgz installed.
Tracking Dependency
Sometimes (or usually for beginner),
error happened while building from source.
This step give me better understanding of my system.
$ ./fish.SlackBuild
...
...
configure.ac:28: installing './missing'
Makefile.am: installing './depcomp'
autoreconf: Leaving directory 'pcre2-10.22'
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Automake
autoreconf: Leaving directory '.'
checking if autoreconf needs to be run... no
checking if autoheader needs to be run... no
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in '/tmp/SBo/fish-2.6.0' :
configure: error: C compiler cannot create executables
See 'config.log' for more details
You should take a look at the config log for more verbose message.
$ less /tmp/SBo/fish-2.6.0/config.log
You can see in that figure above that
we need to install as
the Portable GNU Assembly.
Other case we encounter a more complicated thing,
such as missing file that must be search first.
Here is some example.
$ find /usr/ -name crti*
$ slackpkg file-search crti.o
$ slackpkg search libxml2
This doesn’t look as so bad.
Actually searching for these files is fun if you have time.
All you need is patience, and passion.
sbopkg
After manual compilation, we can continue to automatic compilation.
There is this sbopkg
tool to make your life easier.
Reading
Install
$ cd ~
$ wget -c --no-check-certificate https://github.com/sbopkg/sbopkg/releases/download/0.38.1/sbopkg-0.38.1-noarch-1_wsr.tgz
$ installpkg sbopkg-0.38.1-noarch-1_wsr.tgz
Now you are ready to use sbopkg
.
But however you need to install rsync
first,
to populate repository data to local.
Update
$ sbopkg
$ slackpkg install rsync
$ sbopkg -r
$ sbopkg -i fish
As long as you prepare toolchain well,
sbopkg
is helpful.
The sbopkg Log File
$ tail -n 15 /var/log/sbopkg/sbopkg-build-log
SUMMARY LOG
Using the SBo repository for Slackware 14.2
Queue Process: Download, build, and install
slpkg:
MD5SUM check for slpkg-3.2.8.tar.gz ... OK
Building package slpkg-3.2.8-x86_64-1_SBo.tgz ... OK
Installing package slpkg-3.2.8-x86_64-1_SBo.tgz ... OK
Using slapt-get
There also unofficial package manager for slackware that emulate Debian apt-get.
slapt-get
for binary,
and slapt-src
for source such as slackbuild.
Reading
Install slapt-get
$ wget -c --no-check-certificate https://software.jaos.org/slackpacks/14.2-x86_64/slapt-get/slapt-get-0.10.2t-x86_64-1.tgz
$ tar -xvf slapt-get-0.10.2t-x86_64-1.tgz
$ installpkg slapt-get-0.10.2t-x86_64-1.tgz
Verifying package slapt-get-0.10.2t-x86_64-1.tgz.
Installing package slapt-get-0.10.2t-x86_64-1.tgz:
...
Executing install script for slapt-get-0.10.2t-x86_64-1.tgz.
Package slapt-get-0.10.2t-x86_64-1.tgz installed.
Dependencies of slapt-get
These packages are required to run slapt-get
$ slackpkg install gpgme
$ slackpkg install libassuan
$ slackpkg install libgpg
$ slackpkg install cyrus-sasl
Update
$ slapt-get --update
Retrieving package data [ ftp://ftp.slackware.com/pub/slackware/slackware64-14.2/]...Cached
Retrieving patch list [ ftp://ftp.slackware.com/pub/slackware/slackware64-14.2/]...Cached
Retrieving checksum list [ ftp://ftp.slackware.com/pub/slackware/slackware64-14.2/]...Cached
Retrieving checksum signature [ ftp://ftp.slackware.com/pub/slackware/slackware64-14.2/]...Cached
Verifying checksum signature [ ftp://ftp.slackware.com/pub/slackware/slackware64-14.2/]...Verified
Retrieving ChangeLog.txt [ ftp://ftp.slackware.com/pub/slackware/slackware64-14.2/]...Cached
Reading Package Lists...Done
Retrieving package data [ http://software.jaos.org/slackpacks/14.2-x86_64/]...Cached
Retrieving patch list [ http://software.jaos.org/slackpacks/14.2-x86_64/]...Cached
Retrieving checksum list [ http://software.jaos.org/slackpacks/14.2-x86_64/]...Cached
Retrieving checksum signature [ http://software.jaos.org/slackpacks/14.2-x86_64/]...Cached
Verifying checksum signature [ http://software.jaos.org/slackpacks/14.2-x86_64/]...No key for verification
Retrieving ChangeLog.txt [ http://software.jaos.org/slackpacks/14.2-x86_64/]...Cached
Reading Package Lists...Done
Upgrade
$ slapt-get --upgrade
Reading Package Lists...Done
The following packages have been EXCLUDED:
glibc-solibs
0 upgraded, 0 reinstalled, 0 newly installed, 0 to remove, 1 not upgraded.
Done
Install
This htop
install succeed.
$ slapt-get --install htop
Reading Package Lists...Done
htop is up to date.
0 upgraded, 0 reinstalled, 0 newly installed, 0 to remove, 0 not upgraded.
Done
But this ncdu
install failed,
because ncdu
comes from slackbuild.
slapt-get --install ncdu
Reading Package Lists...Done
No such package: ncdu
Show Info
slapt-get --show ncdu
Package Name: ncdu
Package Mirror:
Package Priority: Default
Package Location:
Package Version: 1.8-x86_64-1_SBo
Package Size: 28 K
Package Installed Size: 80 K
Package Required:
Package Conflicts:
Package Suggests:
Package MD5 Sum:
Package Description:
ncdu ( NCurses Disk Usage)
As the name already suggests, ncdu is an NCurses version of the famous
old 'du' unix command. It provides a fast and easy interface to your
harddrive. Where is your disk space going? Why is your home directory
that large? ncdu can answer those questions for you in just a matter
of seconds!
http://dev.yorhel.nl/ncdu/
Package Installed: yes
Since ncdu come from slackbuild repository that needed to be compiled first.
We need another tool to manage.
Using slapt-src
In order to use slackbuild form source,
we can utilize slapt-src
.
This time no need to wget,
since we already have slapt-get
.
$ slapt-get --install slapt-src
Reading Package Lists...Done
The following NEW packages will be installed:
slapt-src
0 upgraded, 0 reinstalled, 1 newly installed, 0 to remove, 0 not upgraded.
Need to get 48.0kB of archives.
After unpacking 220.0kB of additional disk space will be used.
1/1 Get http://software.jaos.org/slackpacks/14.2-x86_64/ slapt-src 0.3.2i-x86_64-1 [ 48.0kB]...Done
Preparing to install slapt-src-0.3.2i-x86_64-1
Verifying package slapt-src-0.3.2i-x86_64-1.tgz.
Installing package slapt-src-0.3.2i-x86_64-1.tgz:
PACKAGE DESCRIPTION:
# slapt-src (slapt slackbuild utility)
# slapt-src is a utility to make querying, retrieving, and building
# slackbuilds as easy as working with binary packages with slapt-get.
#
#
Executing install script for slapt-src-0.3.2i-x86_64-1.tgz.
Package slapt-src-0.3.2i-x86_64-1.tgz installed.
Done
Update
Do update first before doing nay task with any command.
$ slapt-src -u
Fetching slackbuild list from http://www.slackware.org.uk/slackbuilds.org/14.0/...Cached
Install
Now we can install ncdu
from slackbuild.
sh-4.3# slapt-src --install ncdu
The following packages will be installed:
ncdu
Do you want to continue ? [ y/N] y
Fetching README...Done
Fetching ncdu.SlackBuild...Done
Fetching ncdu.info...Done
Fetching slack-desc...Done
ncdu-1.8/
ncdu-1.8/doc/
ncdu-1.8/doc/Makefile.am
ncdu-1.8/doc/Makefile.in
ncdu-1.8/doc/ncdu.1
ncdu-1.8/src/
What’s Next
Consider finish reading [ Part Three ]
that cover slpkg
and repository.
Thank you for reading