Hello Slacker.
First of all, sorry for my broken English.
I started writing
compat32pkg late April. At the begining it was only for my personal use (and for the fun), and, it was only dedicated to automate updates of 32-bit part of the 32-bit compatibility layer (AlienBob's multilib).
Afterward, I improved it, I added some features and now, it provides all the necessary for managing (
converting,
installing,
upgrading,
remove) of 32-bit part of the multilib, and others packages which are part of Slackware-32 like firefox, seamonkey, jre,...
As I guess it could be usefull for others, I decided to publish it. So, if you want it, you can grab it at
http://compat32pkg.sourceforge.net.
But before that, I guess that you want to know a bit more about it. So, let's go !
The installation of compat32pkg is done as for any Slackware package, using the command installpkg :
Code:
$ installpkg compat32pkg-0.9.100909-1_SeB.tgz
Once installed, you can use it right away. For example, if you want to know if there's updates for installed packages to format compat32 , you'll use it like that:
Code:
$ compat32pkg --mirror ftp://mirrors.kernel.org/slackware/slackware-13.1 --check-updates all
or
Code:
$ compat32pkg -m ftp://mirrors.kernel.org/slackware/slackware-13.0 -k all
When a mirror is required, this could be a local directory containing a valid Slackware tree, the URL of a Slackware mirror, or the alias (
key) of one of the mirrors given into the the file
/etc/compat32pkg/mirrors introduced by an "at symbol" (character
@) :
Code:
$ compat32pkg --mirror ~/mirrors/slackware-13.0 --check-updates all
or
Code:
$ compat32pkg --mirror @WorldWide-13.1 --check-updates all
To avoid to have to provide a mirror each time, a default mirror can be defined into the configuration's script
/etc/compat32pkg/compat32pkg.conf. To do that, you only need to assign the variable
DEFAULT_MIRROR declared into this file. By default, this variable is set to "". As the argument
--mirror, its value can be a local directory, an URL or the alias of one of the mirrors from
/etc/compat32pkg/mirrors. When a default mirror is defined, the argument
--mirror becomes optional and compat32pkg can be used like below:
Code:
$ compat32pkg --check-updates all
Now, imagine that you want to install the 32-bit part of the multilib. Yes, it's sure, AlienBob's tool massconvert32 works flawlessly, but this is just to show you what you can do with compat32pkg:
Code:
$ compat32pkg --install /etc/compat32pkg/multilib-32bit-packages.lst
packages can also be given into a comma separated list introduced by the keyword "
list:", like below :
Code:
$ compat32pkg --install list:alsa-lib,mysql,mozilla-firefox
Except when explicitly said, packages can be identified :
- by their basenames, like alsa-lib, mysql, ...
- by their baserefs, like slackware/l/alsa-lib, slackware/ap/mysql
- by using a regular expression, like alsa-.*, patches/packages/.*
If you want to convert packages to format compat32 only, you have to use compat32pkg in mode
--convert instead of
--install :
Code:
$ compat32pkg --convert /etc/compat32pkg/multilib-32bit-packages.lst
The packages to format compat32 which result from the conversion process will be stored into the directory pointed by the variable
COMPAT32PKG_CACHE declared into the configuration's script
/etc/compat32pkg/compat32pkg.conf. By default, this variable is set to
/var/cache/compat32pkg/compat-32.
compat32pkg uses another cache to store downloaded packages from mirrors. This one is controlled by the variable
SLACK32PKG_CACHE which is set to
/var/cache/compat32pkg/slackware-32. As these cache can grow up over time, they could be cleared, from time to time, using compat32pkg in mode
--clear-cache like below :
Code:
$ compat32pkg --clear-cache compat-32
$ compat32pkg --clear-cache slackware-32
$ compat32pkg --clear-cache all
As saw at the begining, compat32pkg can be used to check availability of updates for all of installed packages to format compat32. But it can also be used to check availability of updates for a given set of packages like below :
Code:
$ compat32pkg --check-updates /etc/compat32pkg/multilib-32bit-packages.lst
$ compat32pkg --check-updates list:mozilla-firefox,alsa-lib
The use of compat32pkg in mode
--check-updates will give you the number of updates found only. If you want an enumeration of these updates, use the mode
--list-updates instead :
Code:
$ compat32pkg --list-updates all
When there's available updates, you can then ask compat32pkg to convert them to format compat32 or to install them using the mode
--convert-updates and
--upgrade like below :
Code:
$ compat32pkg --convert-updates all
$ compat32pkg --convert-updates list:mozilla-firefox
$ compat32pkg --convert-updates /etc/compat32pkg/multilib-32bit-packages.lst
$ compat32pkg --upgrade all
$ compat32pkg --upgrade list:mozilla-firefox
$ compat32pkg --upgrade /etc/compat32pkg/multilib-32bit-packages.lst
compat32pkg also offers the mode
--remove which can be used to remove installed packages to format compat32. Obviously, this mode does not require a mirror :
Code:
$ compat32pkg --remove list:mozilla-.*
$ compat32pkg --remove /etc/compat32pkg/multilib-32bit-packages.lst
$ compat32pkg --remove all
compat32pkg also offers the possibility to exclude packages, permanently, or punctually :
- To exclude a package permanently it must be specified into the blacklist /etc/compat32pkg/blacklist.
- To exclude a package punctually, during an execution of compat32pkg, it must be specified in argument of the optional parameter --exclude like below :
Code:
$ compat32pkg --install list:alsa.* --exclude list:alsa-util
$ compat32pkg --convert /etc/compat32pkg/multilib-32bit-packages.lst --exclude list:patches/packages.*
$ compat32pkg --check-updates all --exclude list:mozilla-.*
$ compat32pkg --remove all --exclude ~/personal-32bit-packages.txt
Another thing that you can do with compat32pkg is to look for packages and to obtain some information about them. This is done by using compat32pkg in mode
--search :
Code:
$ compat32pkg --search list:.*
The example below will give you the list of all available packages from the selected mirror and the status of the compat32 version (installed, not installed, update) of these packages.
Finally, to complete this presentation, I think it's important to know that compat32pkg logs its activity into the
file /var/log/compat32pkg.log. As this file can grow up over time, it can be reset using compat32pkg in mode
--reset-log :
Code:
$ compat32pkg --reset-log
You will find more detailed documentation about compat32pkg
here,
into the README file which is part of the compat32pkg package, and into its man pages:
Code:
$ man compat32pkg
$ man compat32pkg.conf
Hoping that compat32pkg will be useful.
Cheers.
--
SeB