2012-09-28 23:49:36 +02:00
|
|
|
slackpkg+ plugin for third-party repositories
|
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
Slackpkg is a package manager for Slackware.
|
|
|
|
|
2013-10-28 21:20:54 +00:00
|
|
|
Slackpkg+ is a plugin for slackpkg.
|
2013-09-09 14:45:25 +02:00
|
|
|
It adds support for third-party repositories.
|
2013-10-28 21:20:54 +00:00
|
|
|
You can install, upgrade and search from multiple repositories.
|
2012-09-28 23:49:36 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
Thanks to alienbob and phenixia2003 for contributing and all other submitted
|
|
|
|
suggestions and/or patches.
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-09-04 15:12:19 +02:00
|
|
|
********************* DISCLAIMER **********************
|
2013-09-09 14:45:25 +02:00
|
|
|
This is NOT an official tool. Use it at your own risk.
|
|
|
|
The third party repositories are NOT official.
|
|
|
|
The authors of those repositories are not responsible
|
|
|
|
for any damage that may be caused to your computer.
|
2013-09-04 15:12:19 +02:00
|
|
|
*******************************************************
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-09-04 15:12:19 +02:00
|
|
|
-----
|
2012-09-28 23:49:36 +02:00
|
|
|
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
CONFIGURATION
|
|
|
|
|
|
|
|
* Edit /etc/slackpkg/slackpkgplus.conf
|
|
|
|
* Uncomment one or more mirrors and add them to the REPOPLUS list
|
|
|
|
* Optionally, set PKGS_PRIORITY to give priority order for packages present in
|
|
|
|
multiple repositories
|
|
|
|
|
|
|
|
For a list of supported repositories see repositories.txt, but you can also
|
|
|
|
add others yourself.
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
If you configure repositories that do not support gpg, you may need to set
|
|
|
|
"CHECKGPG=off" in /etc/slackpkg/slackpkg.conf
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-28 21:20:54 +00:00
|
|
|
Then launch
|
|
|
|
# slackpkg update gpg
|
|
|
|
# slackpkg update
|
2012-09-28 23:49:36 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
To keep slackpkg+ updated, uncomment the 'slackpkgplus' repository, and then
|
|
|
|
# slackpkg upgrade-all
|
|
|
|
will upgrade slackpkg+ whenever a new version is released.
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-09-04 15:12:19 +02:00
|
|
|
-----
|
2012-09-28 23:49:36 +02:00
|
|
|
|
2013-09-09 17:02:18 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
MIRRORPLUS
|
|
|
|
|
|
|
|
The MIRRORPLUS array defines all mirrors. It accepts these protocols:
|
|
|
|
|
|
|
|
1) http/ftp/https: for example,
|
|
|
|
|
|
|
|
MIRRORPLUS['slacky']=http://repository.slacky.eu/slackware64/
|
|
|
|
|
2013-10-28 21:20:54 +00:00
|
|
|
The mirror must contains all metadata files (CHECKSUMS.md5 ...)
|
2013-10-29 00:08:29 +00:00
|
|
|
You must run 'slackpkg update' after adding/removing a repository.
|
|
|
|
|
|
|
|
2) Local mirror: for example,
|
|
|
|
|
|
|
|
MIRRORPLUS['alienlocal']=file://mirrors/alienbob/x86/14.0/
|
|
|
|
|
2013-10-28 21:20:54 +00:00
|
|
|
The directory must contains all metadata files (CHECKSUMS.md5 ...)
|
2013-10-29 00:08:29 +00:00
|
|
|
You must run 'slackpkg update' after adding/removing a repository.
|
|
|
|
|
|
|
|
3) Local packages directory: for example,
|
|
|
|
|
|
|
|
MIRRORPLUS['mypackages']=dir://mypackages/
|
|
|
|
|
|
|
|
All packages must be in a single directory (subdirectory not allowed).
|
|
|
|
Note that 'slackpkg update' ignores these repositories. Every time you run
|
|
|
|
slackpkg, it reads the directory contents.
|
2013-09-09 17:02:18 +02:00
|
|
|
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
2012-09-28 23:49:36 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
USAGE
|
2012-10-10 13:44:45 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
See 'man slackpkg' :D
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
Use the command
|
|
|
|
# slackpkg upgrade-all
|
|
|
|
to keep your system up-to-date. This command searches for upgraded packages
|
|
|
|
spanning all configured repositories.
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
Use the command
|
|
|
|
# slackpkg install-new
|
|
|
|
(if you use Slackware -current) to check for new packages. This command
|
|
|
|
searches for new packages ONLY in the official Slackware repository.
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-28 21:20:54 +00:00
|
|
|
The command
|
|
|
|
# slackpkg {install,upgrade,remove,reinstall}
|
2013-10-29 00:08:29 +00:00
|
|
|
accepts the following kinds of argument:
|
|
|
|
|
|
|
|
1) package-name (spanning all repositories), for example
|
|
|
|
# slackpkg install bsd-games
|
|
|
|
|
|
|
|
2) part of package-name (spanning all repositories), for example
|
|
|
|
# slackpkg install alsa
|
|
|
|
|
|
|
|
3) path of packages in repository (spanning all repositories), for example
|
|
|
|
# slackpkg install xap
|
|
|
|
|
|
|
|
4) repository-name, for example
|
|
|
|
# slackpkg upgrade alienbob
|
|
|
|
upgrades all packages in the alienbob repository, and
|
|
|
|
# slackpkg install ktown
|
|
|
|
installs all packages in the ktown repository
|
|
|
|
|
|
|
|
5) repository-name:package-name, for example
|
|
|
|
# slackpkg install slacky:openjdk
|
|
|
|
installs openjdk from slacky even if there is another openjdk in another
|
|
|
|
repository
|
|
|
|
|
|
|
|
6) file:local-file-name (txz/tgz), for example
|
|
|
|
# slackpkg install file:mypackage-1.0-noarch-1my.txz
|
|
|
|
installs mypackage even though not defined in slackpkgplus.conf
|
|
|
|
(you can specify either a relative or an absolute path)
|
|
|
|
|
|
|
|
7) dir:directory, for example
|
|
|
|
# slackpkg {install|upgrade} dir:/root/myrepo
|
|
|
|
installs or upgrades all packages in /root/myrepo/
|
|
|
|
(The final '/' is not strictly required.)
|
|
|
|
Note: 'slackpkg install .' is an alias of 'slackpkg install dir:./', but
|
|
|
|
'slackpkg install ./' is NOT the same alias; see FILE in man slackpkg
|
2013-09-04 15:12:19 +02:00
|
|
|
|
|
|
|
-----
|
|
|
|
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
PRIORITY CONFIGURATION
|
|
|
|
|
|
|
|
When a package is present in more than one repository, the package will be
|
|
|
|
searched for in the following order:
|
2013-04-27 22:51:00 +02:00
|
|
|
|
|
|
|
1) as listed in PKGS_PRIORITY
|
2013-10-29 00:08:29 +00:00
|
|
|
2) as listed in an official Slackware repository
|
|
|
|
(configured in /etc/slackpkg/mirrors)
|
2013-04-27 22:51:00 +02:00
|
|
|
3) as listed in REPOPLUS
|
2013-10-28 21:20:54 +00:00
|
|
|
4) all others defined in MIRRORPLUS
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
PKGS_PRIORITY syntax:
|
|
|
|
PKGS_PRIORITY=( <repository name>:<package name> ... )
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
for example:
|
|
|
|
PKGS_PRIORITY=( alienbob:openjdk )
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
<package name> accepts a regular expression, so for example
|
|
|
|
PKGS_PRIORITY=( restricted:.* )
|
|
|
|
means 'all packages in repository restricted'
|
2013-09-04 15:12:19 +02:00
|
|
|
|
|
|
|
-----
|
2013-04-27 22:51:00 +02:00
|
|
|
|
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
MULTILIB
|
|
|
|
|
|
|
|
If you want to use a multilib system, you can automatically configure the
|
|
|
|
multilib repository in slackpkgplus.conf and install multilib simply by running:
|
2013-10-28 12:44:51 +01:00
|
|
|
# /usr/doc/slackpkg+-1.0/setupmultilib.sh
|
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
To configure multilib manually (e.g. if you have installed multilib already),
|
|
|
|
uncomment the correct "MIRRORPLUS['multilib']=...",
|
|
|
|
and uncomment "PKGS_PRIORITY=( multilib:.* )",
|
|
|
|
and add multilib to the REPOPLUS list.
|
2013-04-29 12:48:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
To install multilib manually, launch:
|
2013-04-29 12:48:00 +02:00
|
|
|
# slackpkg update gpg
|
|
|
|
# slackpkg update
|
|
|
|
# slackpkg upgrade-all
|
2013-10-28 12:44:51 +01:00
|
|
|
# slackpkg install multilib
|
2013-04-29 12:48:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
After that, you can keep multilib up-to-date by launching:
|
2013-04-29 12:48:00 +02:00
|
|
|
# slackpkg update
|
|
|
|
# slackpkg upgrade-all
|
2013-10-29 00:08:29 +00:00
|
|
|
and re-running 'slackpkg install multilib' if 'slackpkg install-new' has found
|
|
|
|
any new packages.
|
2013-04-29 12:48:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
To uninstall multilib, you must remove 'multilib:.*' from PKGS_PRIORITY and from
|
|
|
|
REPOPLUS (but do not delete the related MIRRORPLUS line), then launch:
|
2013-09-04 15:12:19 +02:00
|
|
|
# slackpkg update
|
|
|
|
# slackpkg remove multilib
|
2013-10-29 00:08:29 +00:00
|
|
|
Note: this does NOT remove the core multilib packages, because they affect the
|
|
|
|
64bit system. You must remove these by launching:
|
2013-10-28 12:44:51 +01:00
|
|
|
# slackpkg upgrade-all
|
2013-10-29 00:08:29 +00:00
|
|
|
then delete or comment the related MIRRORPLUS line, and finally launch
|
2013-09-04 15:12:19 +02:00
|
|
|
# slackpkg update
|
2013-04-29 12:48:00 +02:00
|
|
|
|
2013-09-04 15:12:19 +02:00
|
|
|
-----
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-04-29 12:48:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
KTOWN (LATEST KDE)
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
If you want to install the latest KDE packages from AlienBOB's ktown repository
|
|
|
|
(presently 4.11.1), add "PKGS_PRIORITY=( ktown:.* )" then launch:
|
2013-09-04 15:12:19 +02:00
|
|
|
# slackpkg update gpg
|
|
|
|
# slackpkg update
|
|
|
|
# slackpkg install ktown
|
|
|
|
# slackpkg upgrade-all
|
2013-10-29 00:08:29 +00:00
|
|
|
Do not forget to read the special instructions from
|
|
|
|
http://taper.alienbase.nl/mirrors/alien-kde/current/latest/
|
|
|
|
because you may need to remove some Slackware KDE packages. At the time of
|
|
|
|
writing, these packages are:
|
2013-09-04 15:12:19 +02:00
|
|
|
# slackpkg remove kdeadmin kdenetwork kdesdk kdetoys
|
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
After that, you can keep the ktown KDE up-to-date by launching:
|
2013-09-04 15:12:19 +02:00
|
|
|
# slackpkg update
|
|
|
|
# slackpkg upgrade-all
|
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
To restore the Slackware KDE, remove 'ktown:.*' from PKGS_PRIORITY and from
|
|
|
|
REPOPLUS (but do not delete the related MIRRORPLUS line), then launch:
|
2013-09-04 15:12:19 +02:00
|
|
|
# slackpkg update
|
|
|
|
# slackpkg upgrade-all
|
|
|
|
# slackpkg install kde
|
|
|
|
# slackpkg remove ktown
|
2013-10-28 21:20:54 +00:00
|
|
|
then delete or comment the related MIRRORPLUS line and launch:
|
2013-09-04 15:12:19 +02:00
|
|
|
# slackpkg update
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
PERSONAL PACKAGES
|
2013-09-05 16:38:14 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
If you build some packages yourself, you can install these without
|
|
|
|
installpkg, by using slackpkg+. This helps you to track the install/upgrade,
|
|
|
|
and reduces the possibility of errors. You do NOT need to create a personal
|
|
|
|
repository with a gpg-key and metadata every time you build a package; also
|
|
|
|
you do NOT need to modify your slackpkgplus.conf file or launch 'slackpkg
|
|
|
|
update'.
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
You can:
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
1) install/upgrade/reinstall a single package by passing the full file name
|
|
|
|
(optionally with absolute or relative path), for example
|
|
|
|
# slackpkg install file:package-1.0-noarch-1my.txz
|
|
|
|
or
|
|
|
|
# slackpkg upgrade file:../repo/package-2.0-noarch-1my.txz
|
|
|
|
|
|
|
|
2) install/upgrade/reinstall all packages in a single directory (but not in a
|
|
|
|
subtree) by passing a directory name (optionally with absolute or relative
|
|
|
|
path), for example
|
|
|
|
# slackpkg install dir:/myrep
|
|
|
|
or
|
|
|
|
# slackpkg upgrade dir:./test/package/
|
|
|
|
or
|
|
|
|
# slackpkg reinstall .
|
|
|
|
|
|
|
|
Note: '.' is an alias of 'dir:./', but only that alias exists.
|
|
|
|
'slackpkg install ./' (or /myrepo/ or ./package.txz) generates an error,
|
|
|
|
because in standard slackpkg you can specify a FILE as input, so in
|
|
|
|
'slackpkg install ./list.txt' list.txt must be a plain file containing a list
|
|
|
|
of packages to install (see man slackpkg)
|
|
|
|
|
|
|
|
If a directory contains the same package with two different versions,
|
|
|
|
slackpkg shows the 'alphabetically' highest, so pkg-9.1 will be listed
|
|
|
|
instead of pkg-8, but pkg-9 will be listed instead of pkg-10.
|
|
|
|
Sorry... this is a slackpkg limitation!
|
|
|
|
|
|
|
|
Tip: if you want to use dir:/myrepo to track your installations and you have
|
|
|
|
lost the original txz/tgz file, you can simply create an empty file; this
|
|
|
|
fools slackpkg+, which only searches for file name and not for contents
|
|
|
|
(unless you run slackpkg reinstall on these packages ;)) So, by doing
|
|
|
|
# touch mypkg1-1.0-noarch-1my.tgz
|
|
|
|
# touch mysecondpkg-1.1-noarch-2my.txz
|
|
|
|
(where mypkg1 and mysecondpkg are already installed packages),
|
|
|
|
'slackpkg install .' (or upgrade) does not show you those packages, but
|
|
|
|
'slackpkg reinstall .' DOES show them (so do not continue the installation)
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-28 21:20:54 +00:00
|
|
|
NOTE: slackpkg+ will skip the gpg and md5 check for personal packages!!
|
2013-09-05 14:27:19 +02:00
|
|
|
|
|
|
|
-----
|
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
|
|
|
|
REMOTE PACKAGES WITHOUT METADATA
|
|
|
|
|
|
|
|
Some users share packages on their personal sites, but do not create metadata
|
|
|
|
files (particularly if they share only a few packages). To install one of these
|
|
|
|
packages, you could download it and install it manually. But now with slackpkg+
|
|
|
|
you can specify a direct URL for the package that will automatically download
|
|
|
|
and install/upgrade the package.
|
2013-09-05 14:27:19 +02:00
|
|
|
|
2013-09-05 16:38:14 +02:00
|
|
|
You can:
|
2013-10-29 00:08:29 +00:00
|
|
|
|
2013-09-09 14:45:25 +02:00
|
|
|
1) install/upgrade/reinstall a single package by specifying the complete url:
|
2013-10-29 00:08:29 +00:00
|
|
|
# slackpkg install http://site/path/package-1.0-noarch-1my.txz
|
|
|
|
For example, you may use this function to install a snapshot of slackpkg+
|
|
|
|
(that is not available with 'slackpkg upgrade slackpkg+' because it is a beta
|
|
|
|
version):
|
|
|
|
# slackpkg upgrade http://www.slakfinder.org/slackpkg+/pkg/slackpkg+-20130905.2-noarch-1mt.txz
|
2013-09-05 16:38:14 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
2) install/upgrade/reinstall all packages in a single remote directory (but not
|
|
|
|
in a subtree) even if the site owner does not create metadata:
|
|
|
|
# slackpkg install http://site/path/
|
2013-09-05 14:27:19 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
Note: this function requires lftp and may fail if the server does not support
|
|
|
|
Directory Listing or if there is a index.html in the path.
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
NOTE: slackpkg+ will skip the gpg and md5 check for remote packages without
|
|
|
|
metadata!!
|
2013-04-27 22:51:00 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
------
|
2013-04-27 22:51:00 +02:00
|
|
|
|
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
FURTHER INFORMATION
|
2012-10-10 13:44:45 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
The AlienBOB article about slackpkg+:
|
|
|
|
http://alien.slackbook.org/blog/introducing-slackpkg-an-extension-to-slackpkg-for-3rd-party-repositories/
|
2012-10-10 13:44:45 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
For questions, suggestions or contributions, you can email me at
|
|
|
|
zerouno@slacky.it or use the linuxquestions forum:
|
|
|
|
http://www.linuxquestions.org/questions/showthread.php?p=4940074
|
2013-09-04 15:12:19 +02:00
|
|
|
|
2013-10-29 00:08:29 +00:00
|
|
|
You can find slackpkg+ on sourceforge:
|
|
|
|
https://sourceforge.net/projects/slackpkgplus
|