Re: yup update problem


Subject: Re: yup update problem
From: Patrick Callahan (pac1@tiac.net)
Date: Thu Jan 25 2001 - 22:28:34 MST


On Wed, 24 Jan 2001, Hollis R Blanchard wrote:

> You should keep your dependancies met when installing any package. Assuming
> that you cannot meet the dependancies for every non-YDL-built package is
> incorrect.
>
>> Patrick Callahan had written:
>>Otherwise the solution is a clean install,followed by a yup update
>> followed by upgrades and installs of all the packages we want over and
>> above the ones ydl provides in the base distribution and yup.

> To which Hollis Replied:
> Or you could run yup with --ignore-deps.
>

Ok, but if I ignore dependencies, don't I run the risk of stepping back a
version on some library without knowing it? What if one of the the packages
installed by yup is a library or its corresponding devel which has been
independently upgraded? Does yup handle this gracefully? Will yup replace a
later version of something with an earlier version? Will it balk at continuing
with installation of other packages if it encounters a dependency or later
version for one of the packages

For example, the current version of glibc is 2.2.1 while the version I'm
running with cs 1.2.1 is glibc-2.1.3-15f .

http://www.gnu.org/software/libc/libc.html
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-2.2.1.tar.gz

Lets suppose for the moment that I've taken the impulsive step of upgrading
this by obtaining the sources, building a new rpm and installing that. figuring
out how to munge the spec file to get it to build a proper rpm along the way.
Would installing 2.2.1 via rpm remove the 2.1.3-15f libraries
or do they stay for the already compiled modules that need them.

Assuming I haven't broken everything in
sight by installing 2.1.3, what would happen if the yellow dog decides to put
out a new glibc as 2.1.3-15g or 2.1.3-whatever?
What would happen if I did a plain yup update then? Would 2.2.1 remain in
place? or would 2.1.3-15g take its place? Would the main libraries be ok? how
about the development libraries?

It's probably obvious that I don't know too much about libraries. Help me out
a bit:

Since glibc-2.1.3-15f .ppc and glibc-devel-2.1.3-15f.ppc are already a yup
packages, and I've run yup against my cs 1.2 install to bring it up to 1.2.1,
poking around in the rpms and in /lib and /usr/lib should shed some light on
what might happen.

/usr/lib contains things that originated in glibc-devel-2.1.3-15f.ppc
,
and I have glibc-2.1.3-5a.ppc.rpm and glibc-devel-2.1.3-5a.ppc.rpm
rpmsHere's what I know so far: The glibc package includes a whole bunch of
stuff. I'm guessing that the heart of it is in items with names that start
with libc. I

I used the checklibs script and the output given below to poke about in /lib
and /usr/lib for things installed from the glibc or glibc-devel packages.

/lib contains pairs of things like:

-rwxr-xr-x 1 root root 380k Sep 25 21:20 /lib/ld-2.1.3.so
lrwxrwxrwx 1 root root 11 Dec 28 01:58 /lib/ld.so.1 -> ld-2.1.3.so

and

-rwxr-xr-x 1 root root 4.0M Sep 25 21:20 /lib/libc-2.1.3.so
lrwxrwxrwx 1 root root 13 Dec 28 01:58 /lib/libc.so.6 -> libc-2.1.3.so

Each of these pairs is provided by the glibc-2.1.3-15f package.

I'd have to look at the glibc 2.2.1 sources to see what it would build. Would
it provide a libc.so.6 or a libc.so.7? If it provided a .6 that would get
overlaid by a yup update. if its a 7 as a link to libc-2.2.1.so that might be
ok. The two versions of the library ought to co-exist. Will they?

the development side is another story. After upgrading to glibc-devel-2.2.1,
would the glibc-devel-2.1.13 stuff that's in /usr/lib to be gone, overlaid by
similarly named items from 2.2.1? I'm guessing it would. Anyone know for sure?

At any rate, what happens when yup comes along and tries to overlay it?

Does that depend only on the dependencies? or does the existence of a later
version make a difference to yup or to rpm when yup calls it.

to find the dependencies I did

rpm -q --whatrequires glibc
and rpm -q --whatrequires glibc-devel

The answeres for glibc was surprisingly short:
bash-2.03$ rpm -q --whatrequires glibc
gnumeric-0.48-4
ppp-2.3.11-2
timeconfig-3.0.2-3

for glibc-devel, there were no dependencies, which makes sense.

  Here's the checklibs script
script cat >checklibs <<"EOD"
#!/bin/sh
#
# checklibs
#
search="${1:-/usr/lib/*}"
if [ "$2" != "" ] ; then
    $0 "$1" 2>&1|sort |grep $2
else
    b=" ";
    blen=${#b};
    for f in $search
    do
         s=`rpm -q --whatprovides $f`
         echo "$s ${b:${#s}} $f"
    done
fi
EOD
chmod +x checklibs
./checklibs '/lib/*' glibc
./checklibs '/usr/lib/*' glibc

the output for ./checklibs '/lib/*' glibc
glibc-2.1.3-15f /lib/ld-2.1.3.so
glibc-2.1.3-15f /lib/ld.so.1
glibc-2.1.3-15f /lib/libBrokenLocale-2.1.3.so
glibc-2.1.3-15f /lib/libBrokenLocale.so.1
glibc-2.1.3-15f /lib/libSegFault.so
glibc-2.1.3-15f /lib/libc-2.1.3.so
glibc-2.1.3-15f /lib/libc.so.6
glibc-2.1.3-15f /lib/libcrypt-2.1.3.so
glibc-2.1.3-15f /lib/libcrypt.so.1
glibc-2.1.3-15f /lib/libdb-2.1.3.so
glibc-2.1.3-15f /lib/libdb.so.2
glibc-2.1.3-15f /lib/libdb.so.3
glibc-2.1.3-15f /lib/libdb1-2.1.3.so
glibc-2.1.3-15f /lib/libdb1.so.2
glibc-2.1.3-15f /lib/libdl-2.1.3.so
glibc-2.1.3-15f /lib/libdl.so.2
glibc-2.1.3-15f /lib/libm-2.1.3.so
glibc-2.1.3-15f /lib/libm.so.6
glibc-2.1.3-15f /lib/libnsl-2.1.3.so
glibc-2.1.3-15f /lib/libnsl.so.1
glibc-2.1.3-15f /lib/libnss_compat-2.1.3.so
glibc-2.1.3-15f /lib/libnss_compat.so.2
glibc-2.1.3-15f /lib/libnss_db-2.1.3.so
glibc-2.1.3-15f /lib/libnss_db.so.2
glibc-2.1.3-15f /lib/libnss_dns-2.1.3.so
glibc-2.1.3-15f /lib/libnss_dns.so.2
glibc-2.1.3-15f /lib/libnss_files-2.1.3.so
glibc-2.1.3-15f /lib/libnss_files.so.2
glibc-2.1.3-15f /lib/libnss_hesiod-2.1.3.so
glibc-2.1.3-15f /lib/libnss_hesiod.so.2
glibc-2.1.3-15f /lib/libnss_nis-2.1.3.so
glibc-2.1.3-15f /lib/libnss_nis.so.2
glibc-2.1.3-15f /lib/libnss_nisplus-2.1.3.so
glibc-2.1.3-15f /lib/libnss_nisplus.so.2
glibc-2.1.3-15f /lib/libpthread-0.8.so
glibc-2.1.3-15f /lib/libpthread.so.0
glibc-2.1.3-15f /lib/libresolv-2.1.3.so
glibc-2.1.3-15f /lib/libresolv.so.2
glibc-2.1.3-15f /lib/librt-2.1.3.so
glibc-2.1.3-15f /lib/librt.so.1
glibc-2.1.3-15f /lib/libthread_db-1.0.so
glibc-2.1.3-15f /lib/libthread_db.so.1
glibc-2.1.3-15f /lib/libutil-2.1.3.so
glibc-2.1.3-15f /lib/libutil.so.1
        
./checklibs '/lib/*' glibc

glibc-devel-2.1.3-15f /usr/lib/Mcrt1.o
glibc-devel-2.1.3-15f /usr/lib/crt1.o
glibc-devel-2.1.3-15f /usr/lib/crti.o
glibc-devel-2.1.3-15f /usr/lib/crtn.o
glibc-devel-2.1.3-15f /usr/lib/gcrt1.o
glibc-devel-2.1.3-15f /usr/lib/libBrokenLocale.a
glibc-devel-2.1.3-15f /usr/lib/libBrokenLocale.so
glibc-devel-2.1.3-15f /usr/lib/libbsd-compat.a
glibc-devel-2.1.3-15f /usr/lib/libbsd.a
glibc-devel-2.1.3-15f /usr/lib/libc.a
glibc-devel-2.1.3-15f /usr/lib/libc.so
glibc-devel-2.1.3-15f /usr/lib/libc_nonshared.a
glibc-devel-2.1.3-15f /usr/lib/libc_stubs.a
glibc-devel-2.1.3-15f /usr/lib/libcrypt.a
glibc-devel-2.1.3-15f /usr/lib/libcrypt.so
glibc-devel-2.1.3-15f /usr/lib/libdb.a
glibc-devel-2.1.3-15f /usr/lib/libdb.so
glibc-devel-2.1.3-15f /usr/lib/libdb1.a
glibc-devel-2.1.3-15f /usr/lib/libdb1.so
glibc-devel-2.1.3-15f /usr/lib/libdl.a
glibc-devel-2.1.3-15f /usr/lib/libdl.so
glibc-devel-2.1.3-15f /usr/lib/libg.a
glibc-devel-2.1.3-15f /usr/lib/libieee.a
glibc-devel-2.1.3-15f /usr/lib/libm.a
glibc-devel-2.1.3-15f /usr/lib/libm.so
glibc-devel-2.1.3-15f /usr/lib/libmcheck.a
glibc-devel-2.1.3-15f /usr/lib/libndbm.a
glibc-devel-2.1.3-15f /usr/lib/libndbm.so
glibc-devel-2.1.3-15f /usr/lib/libnsl.a
glibc-devel-2.1.3-15f /usr/lib/libnsl.so
glibc-devel-2.1.3-15f /usr/lib/libnss_compat.so
glibc-devel-2.1.3-15f /usr/lib/libnss_db.so
glibc-devel-2.1.3-15f /usr/lib/libnss_dns.so
glibc-devel-2.1.3-15f /usr/lib/libnss_files.so
glibc-devel-2.1.3-15f /usr/lib/libnss_hesiod.so
glibc-devel-2.1.3-15f /usr/lib/libnss_nis.so
glibc-devel-2.1.3-15f /usr/lib/libnss_nisplus.so
glibc-devel-2.1.3-15f /usr/lib/libposix.a
glibc-devel-2.1.3-15f /usr/lib/libpthread.a
glibc-devel-2.1.3-15f /usr/lib/libpthread.so
glibc-devel-2.1.3-15f /usr/lib/libresolv.a
glibc-devel-2.1.3-15f /usr/lib/libresolv.so
glibc-devel-2.1.3-15f /usr/lib/librpcsvc.a
glibc-devel-2.1.3-15f /usr/lib/librt.a
glibc-devel-2.1.3-15f /usr/lib/librt.so
glibc-devel-2.1.3-15f /usr/lib/libthread_db.so
glibc-devel-2.1.3-15f /usr/lib/libutil.a
glibc-devel-2.1.3-15f /usr/lib/libutil.so



This archive was generated by hypermail 2a24 : Fri Jan 26 2001 - 01:24:07 MST