I have just released
SlackRoll v13. I think it's a perfect moment to try to give it more exposure, because IMHO it's probably feature-complete. I can't think of many more operations that should be implemented to make it more useful, because as it is now it can give all the information I need and has all the operations I would expect from it. However, it may have some bugs I have not detected, so I wanted to have more users so they may be detected and fixed, and then I can proudly put the "stable" tag on it at SourceForge.net and freshmeat.net. ;)
The program webpage has all the information you need to start using it and you will need to read it if you're going to try the program, but I'm going to give you a summary of its features and give you some examples. KAAPA (from freenode) told me some time ago that the program looks much more appealing if I show what it can do and how.
Basically, SlackRoll is a package or update manager that sits on top of pkgtools. It doesn't have the same goals as swaret or slapt-get, being closer to slackpkg. Its target audience are users that rely mainly on official packages, and have some (probably not many) unofficial packages. If you have many unofficial packages from sites like linuxpackages.net you should probably use another tool, IMHO. It can be used with the stable release or with slackware-current. Many of its features, however, are oriented to detect things that happen in -current. The stable release is much easier to manage, but you can also use SlackRoll with it. It can:
- Retrieve new entries of the change log and display the new entries only, so activity is easier to overview.
- Detect and display a complete list of packages that have been added to the tree.
- Detect and display a complete list of packages that have been removed from the tree.
- Detect and display a list of available upgrades.
- Show URLs, descriptions, download, verify and/or install/upgrade packages from the command line.
- Let you choose which version to install or upgrade to if there are several available versions.
- Handle .new files at the end of every upgrade or installation, in a similar way to slackpkg.
- Be told which packages are not official.
- Be told which packages should not be upgraded automatically.
- Detect when an unofficial package gets an official version.
- Detect glibc upgrades or new or removed packages, warning you and giving them priority in upgrades.
- Install, download, show information, search or remove packages with a given path component (like "/testing/").
- Query the Slackware Package Browser from the command line.
- Search for files in installed packages.
- Search for orphan files (that do not belong to any package).
- Search for broken symlinks.
It can do more things, but those are the most important ones. Those come at a price, which is that the initial setup may be more complex than what you're used to, and that you'll have to familiarize yourself with the different states a package can be in. There are seven of them, in two groups: temporary states and usual states. The webpage explains them all and what they're used for. So now lets throw some examples of daily usage. Keep in mind the output of some of these examples has been invented, but it matches the format of what you'd see in the real world usage.
You use the
update operation to download the new changelog entries and the remote package list:
Code:
# slackroll update
Updating ChangeLog.txt ... new entries found.
Downloading FILELIST.TXT ... 100% of 587k
You see there are new entries. You can view the file ChangeLog.txt with your favourite pager/text editor, and you can get a summary of activity with the
list-transient operation:
Code:
# slackroll list-transient
Initializing package lists...
Transient packages:
amarok (outdated)
gd (outdated)
gnome-icon-theme (outdated)
hal (new)
screen (outdated)
tar (outdated)
tcp-ip (unavailable)
End of list
If there were upgrades in glibc packages, you'd get a big fat warning at the end of the output, so you notice you should upgrade those first:
Code:
WATCH OUT: ACTIVITY IN GLIBC PACKAGES
You can install or upgrade individual packages with the
install operation, that will let you choose different package versions if there are several ones available:
Code:
# slackroll install fontconfig
Initializing package lists...
Local: fontconfig-2.2.3-i486-2
Choose option:
(1) ./patches/packages/fontconfig-2.4.2-i486-2_slack11.0.tgz
(2) ./testing/packages/fontconfig-2.4.1-i486-1.tgz
You choose option...
You can also install specific versions directly by giving the full name in a copy/paste friendly way, like:
Code:
# slackroll install fontconfig-2.4.2-i486-2_slack11.0
# slackroll install ./patches/packages/fontconfig-2.4.2-i486-2_slack11.0.tgz
If there are new or unavailable packages, you can get a specific and clear list with the
list-new and
list-unavailable operations. You can install all new packages with the
install-new operation, or install some specific ones with the
install operation as I just showed and mark the rest as not installed. Or you can also retrieve the package description if you don't know what a package is about before installing it, with the
info operation. The output will be sent to
less:
Code:
# slackroll info wpa_supplicant
Initializing package lists...
Downloading wpa_supplicant-0.4.9-i486-1.txt ... 100% of 0k
wpa_supplicant: wpa_supplicant (WPA/WPA2/IEEE 802.1X Supplicant)
wpa_supplicant:
wpa_supplicant: wpa_supplicant is a WPA Supplicant for Linux with support for
wpa_supplicant: WPA and WPA2 (IEEE 802.11i / RSN). Supplicant is the
wpa_supplicant: IEEE 802.1X/WPA component that is used in the client stations.
wpa_supplicant: It implements key negotiation with a WPA Authenticator and it
wpa_supplicant: controls the roaming and IEEE 802.11 authentication/association
wpa_supplicant: of the wlan driver.
wpa_supplicant:
wpa_supplicant: More info: http://hostap.epitest.fi/wpa_supplicant/
wpa_supplicant:
wpa_supplicant-0.4.9-i486-1.txt lines 1-11/11 (END)
You can also simply download the package, without installing it:
Code:
# slackroll download gd
Initializing package lists...
Total size: 166k
Downloading gd-2.0.35-i486-1_slack11.0.tgz ... 100% of 166k
Downloading gd-2.0.35-i486-1_slack11.0.tgz.asc ... 100% of 0k
Verifying signature gd-2.0.35-i486-1_slack11.0.tgz.asc ...
And later install it. The package will be cached.
Code:
# slackroll install gd
Initializing package lists...
Total size: 166k
Package gd-2.0.35-i486-1_slack11.0 found in cache
Installing gd-2.0.35-i486-1_slack11.0.tgz ...
+==============================================================================
| Upgrading gd-2.0.33-i486-1 package using ./packages/gd-2.0.35-i486-1_slack11.0.tgz
+==============================================================================
Or you can also show the package URLs, so you can save them to a file and retrieve them with wget or other download manager, if you prefer:
Code:
# slackroll urls gcc
Initializing package lists...
Total size: 3962k
http://slackware.osuosl.org/slackware-11.0/slackware/d/gcc-3.4.6-i486-1.tgz
http://slackware.osuosl.org/slackware-11.0/slackware/d/gcc-3.4.6-i486-1.tgz.asc
Before upgrading your packages, you can get a detailed overview of the available upgrades with the
list-upgrades operation:
Code:
# slackroll list-upgrades
Initializing package lists...
Available upgrades:
fontconfig:
Local: fontconfig-2.2.3-i486-2
Remote: ./patches/packages/fontconfig-2.4.2-i486-2_slack11.0.tgz
Remote: ./testing/packages/fontconfig-2.4.1-i486-1.tgz
freetype:
Local: freetype-2.1.9-i486-1
Remote: ./patches/packages/freetype-2.3.4-i486-2_slack11.0.tgz
gd:
Local: gd-2.0.33-i486-1
Remote: ./patches/packages/gd-2.0.35-i486-1_slack11.0.tgz
End of list
Remember you'd get a warning if there were glibc upgrades. You'll get a warning too if you try to install a package while there are glibc upgrades pending:
Code:
WARNING: it seems there is activity in glibc packages
Press Ctrl+C to cancel or Enter to continue...
The
local-search operation lets you search files in your local packages:
Code:
# slackroll local-search 'xine\.h' 'trail'
Reading contents of /var/log/packages ...
Searching for "xine\.h":
xine-lib-1.1.2-i686-2
/usr/include/xine.h
Searching for "trail":
cups-1.1.23-i486-4
/usr/share/cups/templates/be/option-trailer.tmpl
/usr/share/cups/templates/be/trailer.tmpl
/usr/share/cups/templates/de/option-trailer.tmpl
/usr/share/cups/templates/de/trailer.tmpl
/usr/share/cups/templates/es/option-trailer.tmpl
/usr/share/cups/templates/es/trailer.tmpl
/usr/share/cups/templates/fr/option-trailer.tmpl
/usr/share/cups/templates/fr/trailer.tmpl
/usr/share/cups/templates/option-trailer.tmpl
/usr/share/cups/templates/trailer.tmpl
And the
path-search operation lets you search packages with matching path components:
Code:
# slackroll path-search '/testing/'
Initializing package lists...
Searching for "/testing/":
./testing/packages/bash-3.2.017-i486-1_slack11.0.tgz
./testing/packages/cairo-1.2.4-i486-1.tgz
./testing/packages/cups-1.2.4/cups-1.2.4-i486-1.tgz
./testing/packages/flex-2.5.33-i486-1.tgz
./testing/packages/fontconfig-2.4.1-i486-1.tgz
./testing/packages/gutenprint-5.0.0-i486-2.tgz
./testing/packages/hplip-1.6.9-i486-1.tgz
./testing/packages/iptables-1.3.6-i486-1.tgz
./testing/packages/linux-2.6.18/kernel-generic-2.6.18-i486-1.tgz
./testing/packages/linux-2.6.18/kernel-headers-2.6.18-i386-1.tgz
./testing/packages/linux-2.6.18/kernel-modules-2.6.18-i486-1.tgz
./testing/packages/linux-2.6.18/kernel-source-2.6.18-noarch-1.tgz
./testing/packages/wpa_supplicant-0.4.9-i486-1.tgz
As I said, there are
more operations and more details, but I think I've gone far enough already with the examples, and they're varied enough. Remember to read the webpage and the FAQ before reporting bugs and asking questions. :)