[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
slackware:package_management_hands_on [2014/02/09 16:41 (UTC)] – kikinovak | slackware:package_management_hands_on [2014/02/20 06:16 (UTC)] – Continued french ==> english translation of "Software Management" article kikinovak | ||
---|---|---|---|
Line 465: | Line 465: | ||
# installpkg / | # installpkg / | ||
</ | </ | ||
+ | |||
+ | ==== Modify an official Slackware package ==== | ||
+ | |||
+ | The main reason for rebuilding an official package is to modify it, for example to add or strip certain functionalities. In the following example, we will rebuild the '' | ||
+ | |||
+ | Let's begin with removing the package if it is installed: | ||
+ | |||
+ | < | ||
+ | # removepkg audacious-plugins | ||
+ | </ | ||
+ | |||
+ | Now create a suitable directory to store the source code: | ||
+ | |||
+ | < | ||
+ | # cd / | ||
+ | # mkdir audacious-plugins | ||
+ | # cd audacious-plugins | ||
+ | # links mirrors.slackware.com | ||
+ | </ | ||
+ | |||
+ | Fetch the contents of the ''/ | ||
+ | |||
+ | < | ||
+ | # chmod +x audacious-plugins.SlackBuild | ||
+ | # ls -lh | ||
+ | total 1,4M | ||
+ | -rw-r--r-- 1 root root 1,4M nov. 24 15:28 audacious-plugins-3.3.1.tar.xz | ||
+ | -rwxr-xr-x 1 root root 4,0K nov. 24 15:28 audacious-plugins.SlackBuild* | ||
+ | -rw-r--r-- 1 root root 892 nov. 24 15:28 slack-desc | ||
+ | </ | ||
+ | |||
+ | Now edit '' | ||
+ | |||
+ | < | ||
+ | ... | ||
+ | # Configure: | ||
+ | CFLAGS=" | ||
+ | CXXFLAGS=" | ||
+ | ./configure \ | ||
+ | --prefix=/ | ||
+ | --libdir=/ | ||
+ | --sysconfdir=/ | ||
+ | --mandir=/ | ||
+ | --enable-amidiplug \ | ||
+ | --disable-gtkui \ -> add this option | ||
+ | --program-prefix= \ | ||
+ | --program-suffix= \ | ||
+ | ${ARCHOPTS} \ | ||
+ | --build=$ARCH-slackware-linux | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Build and install the package: | ||
+ | |||
+ | < | ||
+ | # ./ | ||
+ | ... | ||
+ | Slackware package / | ||
+ | # installpkg / | ||
+ | </ | ||
+ | |||
+ | ==== Choosing your configuration options for compiling ==== | ||
+ | |||
+ | The source configuration script (or more exactly the sometimes very long line in the SlackBuild beginning with '' | ||
+ | |||
+ | < | ||
+ | ... | ||
+ | # Configure: | ||
+ | CFLAGS=" | ||
+ | CXXFLAGS=" | ||
+ | ./configure \ | ||
+ | --prefix=/ | ||
+ | --libdir=/ | ||
+ | --sysconfdir=/ | ||
+ | --mandir=/ | ||
+ | --enable-amidiplug \ | ||
+ | --program-prefix= \ | ||
+ | --program-suffix= \ | ||
+ | ${ARCHOPTS} \ | ||
+ | --build=$ARCH-slackware-linux | ||
+ | |||
+ | exit 1 -> add this option to interrupt the script | ||
+ | |||
+ | # Build and install: | ||
+ | make $NUMJOBS || make || exit 1 | ||
+ | make install DESTDIR=$PKG || exit 1 | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Now run the script and wait a few seconds for the configuration overview: | ||
+ | |||
+ | < | ||
+ | # ./ | ||
+ | ... | ||
+ | Configuration: | ||
+ | | ||
+ | ... | ||
+ | |||
+ | Interfaces | ||
+ | ---------- | ||
+ | GTK (gtkui): | ||
+ | Winamp Classic (skins): | ||
+ | </ | ||
+ | |||
+ | Use the '' | ||
+ | |||
+ | < | ||
+ | # tar xvf audacious-plugins-3.3.1.tar.xz | ||
+ | # cd audacious-plugins-3.3.1 | ||
+ | # ./configure --help | less | ||
+ | ... | ||
+ | --disable-speedpitch | ||
+ | --disable-gtkui | ||
+ | --disable-skins | ||
+ | --disable-lyricwiki | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | <note tip>The SlackBuild script already takes care of automatically uncompressing the source tarball to the ''/ | ||
+ | |||
+ | < | ||
+ | |||
+ | Once you've chosen all your configuration options, get rid of the temporary '' | ||
+ | |||
+ | < | ||
+ | # ./ | ||
+ | ... | ||
+ | Slackware package / | ||
+ | # installpkg / | ||
+ | </ | ||
+ | |||
+ | ===== Building third-party packages ===== | ||
+ | |||
+ | Slackware offers only a limited choice of packages compared to behemoth distributions like Ubuntu or Debian. More often than not, you'll want to install a package that's not provided by the distribution. In that case, what can a poor boy do? | ||
+ | |||
+ | The [[http:// | ||
+ | | ||
+ | ==== Building packages using the SlackBuilds.org scripts ==== | ||
+ | |||
+ | In the following example, we will build and install the '' | ||
+ | |||
+ | For a start, '' | ||
+ | |||
+ | < | ||
+ | # cd / | ||
+ | </ | ||
+ | |||
+ | Download the following components into this directory : | ||
+ | |||
+ | - the compressed tarball containing the scripts to build the package; | ||
+ | - the compressed source code tarball. | ||
+ | |||
+ | In our case: | ||
+ | |||
+ | < | ||
+ | # links http:// | ||
+ | </ | ||
+ | |||
+ | - In the Search field in the upper left corner of the screen, type '' | ||
+ | - Follow the '' | ||
+ | - Once you're on the '' | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | Here's our two downloaded tarballs: | ||
+ | |||
+ | < | ||
+ | # ls -l cowsay* | ||
+ | -rw-r--r-- 1 root root 15136 nov. 25 08:14 cowsay-3.03.tar.gz | ||
+ | -rw-r--r-- 1 root root 2855 nov. 25 08:14 cowsay.tar.gz | ||
+ | </ | ||
+ | |||
+ | Uncompress the tarball containing the scripts: | ||
+ | |||
+ | < | ||
+ | # tar xvzf cowsay.tar.gz | ||
+ | cowsay/ | ||
+ | cowsay/ | ||
+ | cowsay/ | ||
+ | cowsay/ | ||
+ | cowsay/ | ||
+ | cowsay/ | ||
+ | </ | ||
+ | |||
+ | Eventually, you can do a little cleanup and delete the tarball: | ||
+ | |||
+ | < | ||
+ | # rm -f cowsay.tar.gz | ||
+ | </ | ||
+ | |||
+ | Now move the source tarball to the newly created '' | ||
+ | |||
+ | < | ||
+ | # mv -v cowsay-3.03.tar.gz cowsay/ | ||
+ | « cowsay-3.03.tar.gz » -> « cowsay/ | ||
+ | </ | ||
+ | |||
+ | Here's what we have: | ||
+ | |||
+ | < | ||
+ | # tree cowsay | ||
+ | cowsay | ||
+ | |-- cowsay-3.03.tar.gz | ||
+ | |-- cowsay.info | ||
+ | |-- cowsay.SlackBuild | ||
+ | |-- cowsay.SlackBuild.patch | ||
+ | |-- README | ||
+ | `-- slack-desc | ||
+ | </ | ||
+ | |||
+ | Now '' | ||
+ | |||
+ | < | ||
+ | # cd cowsay/ | ||
+ | # ls -l cowsay.SlackBuild | ||
+ | -rwxr-xr-x 1 kikinovak users 1475 mai | ||
+ | # ./ | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | If everything goes well, the process spews out a package in ''/ | ||
+ | |||
+ | < | ||
+ | ... | ||
+ | Slackware package / | ||
+ | </ | ||
+ | |||
+ | All that's left to do is install the package using '' | ||
+ | |||
+ | < | ||
+ | # installpkg / | ||
+ | # cowsay Hi there ! | ||
+ | | ||
+ | < Hi there ! > | ||
+ | | ||
+ | \ ^__^ | ||
+ | | ||
+ | (__)\ )\/\ | ||
+ | ||----w | | ||
+ | || || | ||
+ | </ | ||
+ | |||
**WORK IN PROGRESS** | **WORK IN PROGRESS** |