[LON-CAPA-users] RPM update

Martin Siegert lon-capa-users@mail.lon-capa.org
Fri, 31 May 2002 10:23:25 -0700

Hi Lars,

On Thu, May 30, 2002 at 11:16:59PM -0700, Lars Jensen wrote:
> Hi Martin,
> On Thu, 30 May 2002, Martin Siegert wrote:
> > I.e., all the packages that were listed by check-rpms are already
> > installed on your system! Check-rpms lists them because there is a
> > newer version available. At this point you have serveral choices:
> > 1) uninstall the old version of the packages, if you do not need it.
> > 2) upgrade the packages (e.g., check-rpms -v -r --update ...)
> Does the dots mean -ftp rpm-file-server ? I assume that check-rpms needs
> to have something to compare against, right?

The answer is yes to the second question. For the first: not necessarily.
check-rpms uses a configuration file, /usr/local/etc/check-rpms.conf by
default, where you can specify a default ftp server and directory. If you do
this, then all what you have to type is actually

check-rpms -v -r --update

Here is an example configuration file:

===<cut here: /usr/local/etc/check-rpms.conf>===============================
# check-rpms configuration file

# $RPMDIR is the directory where up-to-date RPMs can be found and/or
# rpm packages are downloaded into. 
$RPMDIR = "/var/tmp/rpms";

# $RPMUSER is the user name that check-rpms switches to for most of
# the script when run as root
$RPMUSER = "jensen";

# $FTPSERVER and $FTPUPDATES are the hostname of a ftp server and the
# directory where RPM updates can be found without the <arch> directory.
# I.e., $FTPUPDATES should be set to something like pub/7.2, if the RPMs
# are located in pub/7.2/i386, pub/7.2/i686, etc.
# $FTPSERVER and $FTPUPDATES are used if -ftp is specified or if the
# "$FTP=1" line is not commented out.
$FTP = 1;
$FTPSERVER = "rufus.w3.org";
$FTPUPDATES = "rufus.w3.org/linux/redhat/updates/6.2/en/os";
===<cut here: /usr/local/etc/check-rpms.conf>===============================

If you do not want to use a configuration file, then the answer to your
question is yes.

> > 3) do nothing. Note, however, that most updates released by RedHat are
> >    security updates. Thus, by doing nothing you leave a package installed
> >    on your system that has a security hole. When choosing 3) you must be
> >    able to decide whether you are vulnereable to that security hole or not.
> > 
> > My advice is: choose 1), if possible, otherwise choose 2). I recommend
> > to run check-rpms -v at least once a week.
> Again here: do I need the -ftp flag also ?

As above: no if you configure the ftp server in the configuration file,
otherwise yes.

> > 
> > With respect to dependencies:
> > run "check-rpms -v -r --update ..." first. check-rpms updates all packages
> > at once (with the exception of the kernel). By doing so all dependencies
> > should be resolved. The assumption is that the old packages that are
> > installed on your system have the same dependencies as the new packages.
> > This would be true, if updates of packages do not introduce dependencies
> > that did not exist between the old packages. This is the sane way of doing
> > things and almost always correct. Unfortunately RedHat has introduced
> > a few "insane" updates that do introduce dependencies that did not exist
> > before. Sigh. If there are such packages with new dependencies that cannot be
> > resolved within the packages that check-rpms lists for upgrading, then
> > check-rpms will fail (without doing any damage). In those cases you have
> > to do the upgrades that involve those packages by hand. It would be nice,
> > if check-rpms could handle those cases as well and I spent quite a bit
> > of time investigating this problem before I discarded it as beeing not
> > feasible. It basically cannot be done without downloading the whole
> > update directory tree to your machine.
> > 
> > Thus: try "check-rpms -v -r --update ..." if it does not fail - fine.
> > If it does, send me an email with the output of check-rpms and I'll try to
> > help you to figure out what's wrong. 
> The output I get (or part of it) is included below - I understand that
> some dependencies are not satisfied - can I download the rpms needed to
> satisfy the dependencies with check-rpms -ftp also? Or how do I get them?:

No. The dependency errors are actually generated by "rpm" itself, check-rpms
does not know about those packages, because these are packages that
are not installed on your system. (check-rpms only checks for updates for
packages that are installed on you system). Thus, those additionally
needed packages must be downloaded separately, e.g., using ftp and
the same ftp server that you used for check-rpms.
It is a different question, whether in your case you really need those
packages, see below.

> The other error below, I don't understand - should I worry about it?
> I also get a these messages:
> lnet-0.17.6x-18.i386.rpm ... not needed:
> error: cannot open Depends index using db1 - Permission denied (13)
> ** rechecking telnet-server-0.17.6x-18.i386.rpm ... not needed:
> error: cannot open Depends index using db1 - Permission denied (13)
> ...more of these 

I worry about these messages. You should not get the "Permission denied"
responses. Can you please run as yourself (not as root!) the command:

check-rpms -v -r -d /var/tmp/rpms ...

where ... again is -ftp <ftpserver/directory> or nothing depinding on whether
you use a configuration file or not.

Do these "Permission denied" error messages disappear?


> RPM files to be updated:
> XFree86-3.3.6-29.i386.rpm
> XFree86-75dpi-fonts-3.3.6-29.i386.rpm
> XFree86-SVGA-3.3.6-29.i386.rpm
> XFree86-devel-3.3.6-29.i386.rpm
> XFree86-libs-3.3.6-29.i386.rpm
> XFree86-xfs-3.3.6-29.i386.rpm
> This list goes on...
> error: failed dependencies:
> libtiff-devel is needed by imlib-devel-1.9.13-3.6.x
> rhn_register is needed by up2date-2.7.61-6.x.1
> python-xmlrpc >= 1.5.0 is needed by
> up2date-2.7.61-6.x.1
> up2datepoptmodule.so is needed by
> up2date-2.7.61-6.x.1

Are you using up2date? Do you need imlib-devel? If you don't (or if you
do not know what these are good for), it is by far easier just to uninstall
the original packages:

rpm -e up2date imlib-devel

After that (hopefully) you will not have any dependencies anymore and you
do not have to download anything besides those packages that check-rpms
will download for you.