LinuxQuestions.org
Register a domain and help support LQ
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices

Reply
 
Search this Thread
Old 07-23-2007, 06:47 PM   #1
rg3
Member
 
Registered: Jul 2007
Distribution: Slackware Linux
Posts: 508

Rep: Reputation: Disabled
New package/update manager: SlackRoll


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.
 
Old 07-23-2007, 06:59 PM   #2
hrp2171
Member
 
Registered: Aug 2004
Location: California, USA
Distribution: Ubuntu
Posts: 243
Blog Entries: 3

Rep: Reputation: 30
I will be more than glad to give it a whirl.

It sounds very promising. Thanks for sharing.

This is the perfect thing for me to do on my newly installed Slackware 12 system.

I'll keep you posted. How would you like to learn about bugs and stuff? Through this thread, a website of yours, PM, email?

Thanks.
 
Old 07-23-2007, 07:03 PM   #3
rg3
Member
 
Registered: Jul 2007
Distribution: Slackware Linux
Posts: 508

Original Poster
Rep: Reputation: Disabled
I'll try to read this thread at least once a day, but I prefer emails if possible. Thanks for testing.
 
Old 07-24-2007, 07:10 AM   #4
erklaerbaer
Member
 
Registered: Mar 2006
Posts: 381

Rep: Reputation: 30
Quote:
The output will be sent to less
better send it to $PAGER. i think i'll give it a try later
 
Old 07-24-2007, 07:20 AM   #5
b0uncer
Guru
 
Registered: Aug 2003
Distribution: CentOS, OS X
Posts: 5,131

Rep: Reputation: Disabled
Sounds promising. I haven't installed any package managers/updaters on my Slackware systems till today, because they all sound like a hazzle and begging for trouble. However this looks good, I might actually try it in some future installations of Slackware - thanks for sharing.
 
Old 07-24-2007, 04:10 PM   #6
rg3
Member
 
Registered: Jul 2007
Distribution: Slackware Linux
Posts: 508

Original Poster
Rep: Reputation: Disabled
Quote:
better send it to $PAGER. i think i'll give it a try later
Hmm... good idea. I will send it to $PAGER, or "less" if $PAGER is not set. That will be the behaviour in SlackRoll v14.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
SlackRoll maintainer rg3 LinuxQuestions.org Member Intro 1 07-23-2007 06:22 PM
LXer: Simple Package management with Synaptic Package Manager LXer Syndicated Linux News 0 12-05-2006 06:33 PM
Synaptic Package Manager wont update microwave135 Ubuntu 4 10-19-2006 11:53 AM
Poll: Yast Package Manager vs. Smart Package Manager in 10.1 agentchange Suse/Novell 6 06-02-2006 08:29 AM
synaptic package manager forcing me to delete a broken package mbman Linux - Software 6 04-25-2006 09:30 AM


All times are GMT -5. The time now is 11:56 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration