LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   New package/update manager: SlackRoll (https://www.linuxquestions.org/questions/slackware-14/new-package-update-manager-slackroll-571738/)

rg3 07-23-2007 06:47 PM

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. :)

hrp2171 07-23-2007 06:59 PM

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.

rg3 07-23-2007 07:03 PM

I'll try to read this thread at least once a day, but I prefer emails if possible. Thanks for testing.

erklaerbaer 07-24-2007 07:10 AM

Quote:

The output will be sent to less
better send it to $PAGER. i think i'll give it a try later

b0uncer 07-24-2007 07:20 AM

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.

rg3 07-24-2007 04:10 PM

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.


All times are GMT -5. The time now is 01:13 PM.