Not really happy with smart

Michael Mansour mic at npgx.com.au
Sat Dec 17 12:45:03 PST 2005


Hi,

I'm new to smart, testing it out as a long time yum user, and thought I'd join
the mailing list to help improve the product with the things I don't really
like about it.

First off, as I've been using yum for years, I have scripts which run on each
of my yum clients which query the yum repo's (enabling specific ones to check
based on the package I want checked on the repo) and email me a list of
updated package daily so I can decide / apply them.

I do this by first disabling all 3rd party repo's and keeping only base ones.
I then run a nightly check based on that (to pickup vendor errata for
example), and I then cron a yum check-update for each of the 3rd party repo's
by enabling the specific repo with a list of packages I use from that repo,
then email it to myself.

For example, the yum syntax for vendor updates I cron nightly is:

yum check-update

while the yum syntax I cron nightly for 3rd party repo's is:

yum --enablerepo=repo1 check-update package1 package2 package3

and the next 3rd party repo:

yum --enablerepo=repo2 check-update anotherpackage1 anotherpackage2

If updates are found, then emails are generated informing me of the packages,
which repo they exist in and I can then manually update them on the node.

This system works very well and if going to use smart, I'll need smart to do
this exact same thing.

In trying to find the equivalent command in smart (which would make it easy
for me to modify my scripts by just changing the "yum check-update" command to
a "smart check update" command), I couldn't get the equivalent to work.

For example, on an FC3 machine I wanted smart to tell me about the perl and
perl-suidperl packages which were just released for FC3, and this is what I see:

# smart query 'perl' --show-channels
Loading cache...
Updating cache...                              
################################################################## [100%]

perl-3:5.8.5-9 at i386 [release]
perl-3:5.8.5-14.FC3 at i386 [updates]
perl-3:5.8.5-18.FC3 at i386 [updates]
perl-3:5.8.5-20.FC3 at i386 [updates]
perl-3:5.8.5-22.FC3 at i386 [rpm-db, updates]
perl-3:5.8.5-24.FC3 at i386 [updates]

I see here that the new perl exists.

# smart upgrade perl perl-suidperl
Loading cache...
Updating cache...                              
################################################################## [100%]

Computing transaction...

Upgrading packages (2):
 perl-3:5.8.5-24.FC3 at i386                perl-suidperl-3:5.8.5-24.FC3 at i386

11.4MB of package files are needed. 71B will be freed.

Confirm changes? (Y/n): n

This confirms that the new perl and perl-suidperl can be installed, but:

# smart upgrade --check perl perl-suidperl
Loading cache...
Updating cache...                         
########################################################## [100%]

Computing transaction...
There are new upgrades available!

This tells me smart can't "list" the new packages for me (so I can't email
myself about new updates being available), and I can't find any way so far on
how smart can.

I also want the ability for smart to enable and disable repo's via the command
line, in the same fashion I can do it with yum ie. have smart check the "base"
repo's from the vendor, and enable the 3rd party repo's using the command line
for the packages I want checked on that repo.

The only way I can see that happening so far is by using:

1. smart channel --disable mychannel

2. then have smart check for updated packages 

3. smart channel --enable mychannel

Again, I've just started "learning" smart so may be off-base with this one,
but yum seems to take a much easier approach to providing this functionality
than smart does.

The other thing I didn't like about smart is the way it presents its output,
under yum a package upgrade looks like this:

# yum --enablerepo=atrpms -y update medley-package-config
Setting up Update Process
Setting up repositories
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for medley-package-config to pack into transaction set.
medley-package-config-103 100% |=========================| 6.7 kB    00:00
---> Package medley-package-config.i386 0:103-2.rhfc1.at set to be updated
--> Running transaction check
--> Processing Dependency: atrpms-package-config = 103-2.rhfc1.at for package:
medley-package-config
--> Processing Dependency: /etc/yum.conf for package: yum
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for atrpms-package-config to pack into transaction set.
atrpms-package-config-103 100% |=========================| 6.8 kB    00:01
---> Package atrpms-package-config.i386 0:103-2.rhfc1.at set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Updating:
 medley-package-config   i386       103-2.rhfc1.at   atrpms            8.9 k
Installing for dependencies:
 atrpms-package-config   i386       103-2.rhfc1.at   atrpms             11 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       1 Package(s)
Remove       0 Package(s)
Total download size: 20 k
Downloading Packages:
(1/2): medley-package-con 100% |=========================| 8.9 kB    00:01
(2/2): atrpms-package-con 100% |=========================|  11 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: atrpms-package-config        ######################### [1/3]
  Updating  : medley-package-config        ######################### [2/3]
  Cleanup   : medley-package-config        ######################### [3/3]

Dependency Installed: atrpms-package-config.i386 0:103-2.rhfc1.at
Updated: medley-package-config.i386 0:103-2.rhfc1.at
Complete!

Very nice, formatted and informative output, with a nice transaction summary.
To me, when looking at smart's equivalent output on package upgrades, smart
can learn alot from yum on how to present it to the admin.

Other features like support for other repo's etc don't really concern me
because I'd never use them. I use exclusively RH based systems and yum repo's
from ATrpms, Dag, Dries, Freshrpms, Newrpms which supply most of the packages
I need (if they don't I just build my own RPM or install from source).

I decided to test smart based on favourable comments from Axel (ATrpms) but
haven't really been impressed with it, so thought I'd join the list and voice
my issues in the hope that the software could be made better.

Please consider this email constructive criticism.

Regards,

Michael.




More information about the Smart mailing list