1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
|
<!--startcut ======================================================= -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<META NAME="generator" CONTENT="lgazmail v1.3F.f">
<TITLE>The Answer Gang 71: Dependency Hell</TITLE>
</HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"
LINK="#3366FF" VLINK="#A000A0">
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<P> <hr>
<CENTER>
<!-- *** BEGIN navbar *** -->
<!-- *** END navbar *** -->
</CENTER>
</p>
<P> <hr>
<!-- begin tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::-->
<p align="center">
<table width="100%" border="0"><tr>
<td align="right" valign="center"
><IMG ALT="" SRC="../../gx/navbar/left.jpg"
WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="middle" border="0"
><A HREF="..//"
><IMG SRC="../../gx/navbar/toc.jpg" align="middle"
ALT="[ Table Of Contents ]" border="0"></A
><A HREF="../lg_answer71.html"
><IMG SRC="../../gx/dennis/answertoc.jpg" align="middle"
ALT="[ Answer Guy Current Index ]" border="0"></A></td>
<td align="center" valign="center"><A HREF="../lg_answer71.html#greeting"><img align="middle"
src="../../gx/dennis/smily.gif" alt="greetings" border="0"></A>
<A HREF="1.html">1</A>
<A HREF="2.html">2</A>
<A HREF="3.html">3</A>
<A HREF="4.html">4</A>
<A HREF="5.html">5</A>
<A HREF="6.html">6</A>
<A HREF="7.html">7</A>
<A HREF="8.html">8</A>
</td>
<td align="left" valign="center"><A HREF="../../lg_index_tag.html"
><IMG SRC="../../gx/dennis/answerpast.jpg" align="middle"
ALT="[ Index of Past Answers ]" border="0"></A
><IMG ALT="" SRC="../../gx/navbar/right.jpg" align="middle"
WIDTH="14" HEIGHT="45" BORDER="0"></td></tr></table>
</p>
<!-- end tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::::-->
<P> <hr> <P>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<center>
<H1><A NAME="answer">
<img src="../../gx/dennis/qbubble.gif" alt="(?)"
border="0" align="middle">
<font color="#B03060">The Answer Gang</font>
<img src="../../gx/dennis/bbubble.gif" alt="(!)"
border="0" align="middle">
</A></H1>
<BR>
<H4>By Jim Dennis, Ben Okopnik, Dan Wilder, Breen, Chris, and the Gang,
the Editors of Linux Gazette...
and You!
<br>Send questions (or interesting answers) to
<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a>
</H4>
<p><em><font color="#990000">There is no guarantee that your questions
here will <b>ever</b> be answered. Readers at confidential sites
must provide permission to publish. However, you can be published
anonymously - just let us know!
</font></em></p>
</center>
<p><hr><p>
<!-- endcut ======================================================= -->
<!-- begin 3 -->
<H3 align="left"><img src="../../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Dependency Hell</H3>
<p><strong>From Andrew
</strong></p>
<p></strong></p>
<p align="right"><strong>Answered By Thomas Adams, Dan Wilder, Heather Stern
</strong></p>
<P><STRONG>
<IMG SRC="../../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hello Gang,
</STRONG></P>
<P><STRONG>
Hope you don't minding me milking some knowledge from
you. One thing that has been bugging me for a while now is this.
</STRONG></P>
<P><STRONG>
I am running Redhat 6.1 with a recompiled kernel (2.2.19)..
</STRONG></P>
<P><STRONG>
This is the thing though. There are given programs that i may/do want to
install that need different libraries for them to work. Most of my upgrades
have been via rpm -U scenario (easy to keep track of what is on my system).
</STRONG></P>
<P><STRONG>
I need to install gcc which when i do the following i get this
</STRONG></P>
<pre><strong>[root@echelon /root]# rpm -ivh gcc-2.96-54.i386.rpm
error: failed dependencies:
cpp =3D 2.96 is needed by gcc-2.96-54
</strong></pre>
<P><STRONG>
so then i do this
</STRONG></P>
<pre><strong>[root@echelon /root]# rpm -q cpp
cpp-1.1.2-24
</strong></pre>
<P><STRONG>
so i better upgrade
</STRONG></P>
<pre><strong>[root@echelon /root]# rpm -U cpp-2.96-85.i386.rpm
error: failed dependencies:
libc.so.6(GLIBC_2.2) is needed by cpp-2.96-85
cpp =3D 1.1.2 is needed by egcs-1.1.2-30
cpp =3D 1.1.2 is needed by egcs-objc-1.1.2-30
</strong></pre>
<P><STRONG>
Mmmm i know GLIBC is pretty important so i get the version above & do the
following
</STRONG></P>
<pre><strong>[root@echelon /root]# rpm -q glibc
glibc-2.1.3-22
</strong></pre>
<P><STRONG>
so ok lets upgrade this (or at least try to)
</STRONG></P>
<pre><strong>[root@echelon /root]# rpm -U glibc-2.2-12.i386.rpm
error: failed dependencies:
glibc-common =3D 2.2 is needed by glibc-2.2-12
glibc > 2.1.3 conflicts with db3-3.1.17-4.6x
glibc > 2.1.3 conflicts with rpm-4.0-6x
libdb.so.2 is needed by enlightenment-conf-0.15-9
libdb.so.2 is needed by pan-0.9.1-0_helix_1
libdb.so.2 is needed by ggv-0.95-0_helix_1
libdb.so.2 is needed by pygnome-1.0.53-0_helix_3
[ . . . about 70 more complaints . . . ]
libdb.so.3(GLIBC_2.1) is needed by perl-5.00503-6
libdb.so.3(GLIBC_2.1) is needed by pam-0.72-20.6.x
libdb.so.3(GLIBC_2.1) is needed by php-3.0.18-1.6.x
libdb.so.3(GLIBC_2.1) is needed by sendmail-8.11.0-1
libdb.so.3(GLIBC_2.1) is needed by openldap-1.2.9-6
</strong></pre>
<P><STRONG>
Do you see wehat i am getting at
</STRONG></P>
<P><STRONG>
How would you get around these issues it can become rather frustrating
</STRONG></P>
<P><STRONG>
Any advice on this would be great like always
</STRONG></P>
<P><STRONG>
Thanx guys n girls
</STRONG></P>
<P><STRONG>
Regards
</STRONG></P>
<P><STRONG>
Andrew
</STRONG></P>
<blockQuote>
<IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
> [Thomas]
Hi Andrew,
</blockQuote>
<blockQuote>
Yuck!! You have managed to expose one of the more
annoying features that the RPM format
brings....version dependant files.
</blockQuote>
<blockQuote>
Since every package (or nearly every) is linked to
another, you can imagine just how one package may be
needed by another.
</blockQuote>
<blockQuote>
To try and get arounf your problem, you can specify to
install an RPM file without looking for it's
dependencies, thus:
</blockQuote>
<blockquote><code><font color="#000033"><br>rpm -i --nodeps ./rpmfile-version-3.rpm
</font></code></blockquote>
<blockQuote>
But, one caveat with this, is that if you don't
have/install the dependencies, then the program might
not work.
</blockQuote>
<blockQuote>
Hope That Helps
</blockQuote>
<blockQuote>
<IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
> [Dan]
It is a common problem. The common solution is to upgrade the
installation using the upgrade method provided by the
distribution. It may be time for you to upgrade across-the-board to
Redhat 7.1.
</blockQuote>
<blockQuote>
It is possible to upgrade a distribution piecemeal, but it becomes
more difficult (as you have observed) as the number of dependencies
increases.
</blockQuote>
<blockQuote>
The alternative is going off-distribution and building the specific
things you need from source, one at a time. This is more often not
worth the effort.
</blockQuote>
<blockQuote>
<IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
> [Heather]
Heh. Jim calls this "dependency hell". Every distro has it. <A HREF="http://www.debian.org/">Debian</A>
is pretty good about reducing the number of parts in the puzzle -- about
the time you're looking at upgrading glibc, they call it the next version
name, and a lot of people bust their butts to make the upgrade smooth.
Of course, unless you're using <A HREF="http://www.libranet.com/">LibraNet</A> or something, the install is a
bit rocky...
</blockQuote>
<blockQuote>
For staying with an older distro a bit longer (hey, it's not crashing,
why change it much, right?) my common solution is to remove the offending
rpms, use alien (a perl script) to transform deb files from the equivalent
Debian variant, and then use those to provide the libraries and so on, that
just my app needs. I've used this trick to introduce lynx-ssl to a number
of systems that otherwise only come with a non-SSL version, often a bit old.
</blockQuote>
<blockQuote>
Nonetheless, I agree with Dan -- once you've decided to upgrade glibc, it's
time to take your upgrade seriously, and make a new round of it. Distros
vary widely as to whether it's safer to upgrade or to just install
anew; with a good backup of all your personal files (don't forget odd things
like any tweaks you made to config files in <TT>/etc/</TT> or <TT>/usr/lib</TT>, notes about
hardware you have and need support for, etc.) you can try an upgrade, and
<EM>if</EM> it bombs, <EM>then</EM> install fresh.
</blockQuote>
<!-- end 3 -->
<!--startcut ======================================================= -->
<P> <hr> </p>
<!-- *** BEGIN copyright *** -->
<H5 align="center">This page edited and maintained by the Editors
of <I>Linux Gazette</I>
<a href="http://www.linuxgazette.com/copying.html"
>Copyright ©</a> 2001
<BR>Published in issue 71 of <I>Linux Gazette</I> October 2001</H5>
<H6 ALIGN="center">HTML script maintained by
<A HREF="mailto:star@starshine.org">Heather Stern</a> of
Starshine Technical Services,
<A HREF="http://www.starshine.org/">http://www.starshine.org/</A>
</H6>
<!-- *** END copyright *** -->
<P> <hr>
<!-- begin tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::-->
<p align="center">
<table width="100%" border="0"><tr>
<td align="right" valign="center"
><IMG ALT="" SRC="../../gx/navbar/left.jpg"
WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="middle" border="0"
><A HREF="..//"
><IMG SRC="../../gx/navbar/toc.jpg" align="middle"
ALT="[ Table Of Contents ]" border="0"></A
><A HREF="../lg_answer71.html"
><IMG SRC="../../gx/dennis/answertoc.jpg" align="middle"
ALT="[ Answer Guy Current Index ]" border="0"></A></td>
<td align="center" valign="center"><A HREF="../lg_answer71.html#greeting"><img align="middle"
src="../../gx/dennis/smily.gif" alt="greetings" border="0"></A>
<A HREF="1.html">1</A>
<A HREF="2.html">2</A>
<A HREF="3.html">3</A>
<A HREF="4.html">4</A>
<A HREF="5.html">5</A>
<A HREF="6.html">6</A>
<A HREF="7.html">7</A>
<A HREF="8.html">8</A>
</td>
<td align="left" valign="center"><A HREF="../../lg_index_tag.html"
><IMG SRC="../../gx/dennis/answerpast.jpg" align="middle"
ALT="[ Index of Past Answers ]" border="0"></A
><IMG ALT="" SRC="../../gx/navbar/right.jpg" align="middle"
WIDTH="14" HEIGHT="45" BORDER="0"></td></tr></table>
</p>
<!-- end tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::::-->
<P> <hr>
<CENTER>
<!-- *** BEGIN navbar *** -->
<!-- *** END navbar *** -->
</CENTER>
</p>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
</BODY></HTML>
<!--endcut ========================================================= -->
|