NAME
rhupdate - Check for updates to RedHat RPMs
SYNOPSIS
rhupdate [ pattern ] [ --download [dir] | --list ] [ --options ]
DESCRIPTION
Checks for updates for installed RPMS on RedHat's updates site.
No, I'm not an RPM Fan. I don't like RPMs, I like building things myself. I use RedHat, and RedHat is easier to deal with (as an OS) when you use the RPMs the RedHat puts-out. I'm not at all interested in supplying an RPM version of rhupdate.
Requires `Net::FTP' and `Pod::Usage' Perl modules to be installed. On some versions of RedHat you will need to update File::Spec before Pod::Usage will install. (Even using CPAN.) See `man CPAN' for information on installing Perl modules.
NOTE: since version strings aren't simple numerics, I do my best to check them, but use your own judgement.
Install updates at your own risk.
See
http://www.redhat.com/support/docs/howto/kernel-upgrade/kernel-upgrade.h
tml for information on installing the kernel-* packages. Failure to
install the Linux Kernel properly will result in a non-bootable machine.
Use --exclude kernel to skip notification and download of Kernel
packages.
INSTALL
(see INSTALL file)
http://www.jjminer.org/rhupdate/INSTALL
OPTIONS
pattern
A pattern that the updates should match. (Shortcut for "--include
pattern".)
--absolute
The path given in --dir is the absolute path, no attempt should be
made to change in to the correct machine-type.
--add pattern
A pattern for a package to add, even if it is not installed or
already exists on the system (and doesn't need to be updated.) Can
be specified more than once to add more than one package.
--all
List or Download all updates that are available on the server, not
just those that are installed on the local machine (and different
from the local version.) Different from just mirroring the updates
directory because it downloads only the correct architecture.
--arch arch
Default architecture (default: i386).
--dir directory
Root directory of the updates.redhat.com mirror.
--download [dir]
Download updated RPMs to the named directory or the current
directory.
--exclude pattern
Pattern for packages to exclude. NOTE Exclude takes precedence over
include. --exclude can be specified more than once to exclude
multiple packages.
--hash [bytes]
Print hash marks as the file is downloaded. One hash mark for every
specified number of bytes (128000 default).
--include pattern
Pattern for packages to include. NOTE Exclude takes precedence over
include. --include can be specified more than once to include
multiple packages.
--list
List the available updates.
--locale locale
Set the locale to 'locale', if you want to force the issue or if
your system doesn't have 'locale.'
--passive
Get updates in passive mode.
--passwd passwd
Password to log in with (default: $USER@$HOST).
--retry [num]
Retry connecting to the FTP server num times (or infinitely if num
is not specified) if it fails.
--rhversion [version]
RedHat version, in case your /etc/redhat-release is wrong (or for
whatever reason you want to force the issue.)
--server server
Server to check for updates on.
--timeout timeout
Change the timeout for the FTP Client (if Net::FTP consistently
times-out.)
--user user
Username to log in as (default: anonymous).
DOWNLOAD
http://www.jjminer.org/rhupdate
FAQ
I've got an RPM version (or .spec file, whatever that is) of rhupdate...
No, I'm not interested in it. Please don't send it to me. You can
package up rhupdate and redistribute it all you want, but I'm not
interested.
It just says "Cannot change to :"
RedHat's FTP servers don't deny anonymous login when the limit is
reached, instead they return a "Login incorrect" after the password
(in this case the email address) is entered. `Net::FTP' doesn't
recognize that the anonymous login failed (I'm not an FTP expert, so
I don't know whose fault this is.) The login appears to succeed,
and you get this error when it tries to change directories.
If you upgrade to the latest beta, the error message is fixed, and
when you do --retry it will properly retry on this error.
How do I install `Net::FTP' or `Pod::Usage'?
Well, there are any number of ways. There are probably RPM versions
of these packages out there, but the only thing I handle with RPM
are the RedHat updates (and hence this program.)
The way I prefer to do it comes right off the `CPAN' manpage (try
`man CPAN'):
` # perl -MCPAN -e shell'
(answer all the questions to the best of your knowledge), and type
`install Net::FTP' (Or `Pod::Usage', or any other Perl module you
want.)
How do I enter a password with special characters?
This isn't an rhupdate problem, your shell is attempting to
interpret meta-characters in your password. Putting the password
inside single-quotes (') may help, but there may be some other
things you need to do. (if you use a csh-based shell, you will need
to escape '!' with a '\', even inside single-quotes.)
Can you include an install option?
No. I do not believe that it is appropriate to automatically
install updates. You need to evaluate the updates the rhupdate
downloads to make sure that they are appropriate to install. I
don't trust my own software any more than I trust somebody else's.
I get an error when trying to (include|exclude|add) libstdc++
--include, --exclude, and --add take a Regular Expression as their
argument, so special characters for Perl Regular Expressions need to
be escaped.
For example:
$ rhupdate --list --include libstdc++
Argument to --include "libstdc++" is not a valid regular expression.
Please try again.
$ rhupdate --list --include 'libstdc\+\+'
Listing Updates..
No updates available.
I am considering changing this behavior for the 2.0 release.
CHANGELOG
(See ChangeLog file)
http://www.jjminer.org/rhupdate/ChangeLog
TODO
multiple servers
Allow multiple servers to be queried (but, the question is, should
they be queried only if the previous server was unavailable, if
there were no updates at the previous server, or always?)
config file
Create/use a config file (~/.rhupdate or something?) To record the
defaults for a specific site.
error messages
Print a different error message when there are no updates versus
nothing found in the updates directory.
local directory
Allow a local directory where the updates are located to be
specified, copy the updates that are applicable.
quiet mode
Include a "quiet" mode so that output is only made if there are
packages to download. (Also: a double-quiet mode that just returns
as the error code the number of packages downloaded or listed.)
AUTHOR
Jonathan J. Miner <jon@jjminer.org>
LICENSE
Copyright (C) 2001 Jonathan J. Miner
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
VERSION
1.9 beta $Revision: 1.99 $
