Обсуждение: Onto a Caldera 2.2 distro
This is not a strict porting question really, but just wanted to check with others whether there might be a better way of doing this... I managed to get the RPM package of postgresql for RedHat installed onto Caldera's 2.2 distro. I had to do a few guessing to resolve some *real* dependency problems by downloading other RPMs for missing programs and libraries, but there were several depencies that were *misleading*. For example, I had the library "libc.so.6", but kpackage/rpm reported it as missing. What I ended up doing is just ignoring the depencies that were *false*. My guess is that RPMs are looking in the RPM database for specific RPM groups for where the packages or files are reported as being installed; hence, an RPM destined for a Redhat distro may have a different database groupings compared to groupings for a Caldera distro. I did, however, had to install "chkconfig" since my Caldera distribution did not have it and the libraries libtermcap and libcrypt. Now things mostly work except I am running into a problem with libcrypt calling a routine that is in another shared library that does exist... and I am trying to trace what is going on. I thought I would take a break and ask for some help. I am thinking that I should probably installed the source version, but I am not sure how many hassles that will be. Any further insights? Regards, Frank Shim fshim@cawthra.com
Francis K Shim wrote: > I managed to get the RPM package of postgresql for RedHat installed onto > Caldera's 2.2 distro. I had to do a few guessing to resolve some *real* > dependency problems by downloading other RPMs for missing programs and > libraries, but there were several depencies that were *misleading*. For > example, I had the library "libc.so.6", but kpackage/rpm reported it as > missing. What I ended up doing is just ignoring the depencies that were > *false*. My guess is that RPMs are looking in the RPM database for specific > RPM groups for where the packages or files are reported as being installed; > hence, an RPM destined for a Redhat distro may have a different > database groupings compared to groupings for a Caldera distro. Well, actually it's a little more complicated than that. The book 'Maximum RPM' goes into detail about how dependencies are calculated, getting down in great detail. You didn't say whether you got the RedHat 5.2 or RedHat 6.1 version of the RPM's. You'd need to determine which glibc 2.x Caldera 2.2 uses -- IIRC, it's glibc 2.0. The kernel version is not as important as the glibc version, as the RPMs built against glibc 2.1 are almost guaranteed to not work right on a glibc 2.0 system. IIRC, Caldera 2.2 is kernel 2.2, glibc 2.0. RH 5.2 is kernel 2.0, glibc 2.0, and RH 6.1 is kernel 2.2, glibc 2.1. > I did, however, had to install "chkconfig" since my Caldera distribution did > not have it and the libraries libtermcap and libcrypt. Hmmmm... Caldera doesn't ship libtermcap and libcrypt? Where did you get the missing libs -- RedHat RPMs, or Caldera RPMs? And, yes, chkconfig is a handy little RedHat-only program (actually was written by the RedHat guys!) that is used to add the initscript to the appropriate (for RedHat) rcX.d. > Now things mostly work except I am running into a problem with libcrypt calling > a routine that is in another shared library that does exist... The 'false' dependencies you mentioned above just bit. > I am thinking that I should probably installed the source version, but I am not > sure how many hassles that will be. If you have a complete C and C++ development system, with perl, tcl/tk, X11, and the python development libraries installed (the dev libs for ALL of those packages, not just those packages), then you should be able to 'rpm --rebuild postgresql-version.src.rpm' -- there probably will be issues that will arise (which I will attempt to help you with). Once the build is successful, look under /usr/src for a packages, or RPM directory. Under that directory, you should see the dirs SPECS, BUILD, RPMS, SRPMS, and SOURCES. Under RPMS, you will find architecture dirs (such as i386, alpha, i686....). Under one of those dirs will be the built binary RPMS. The src.rpm has been successfully rebuilt under SuSE 6.2, so it shouldn't be too much of a stretch to build it under Caldera. Let me know what else you find, as I don't have access to a Caldera box. -- Lamar Owen WGCR Internet Radio 1 Peter 4:11
> I am thinking that I should probably installed the source version, but I am not > sure how many hassles that will be. > Any further insights? It is A Good Thing to work this out, but it is probably easier in the short run to install from sources. Otherwise, you may want to become the Caldera RPM maintainer ;) - Thomas -- Thomas Lockhart lockhart@alumni.caltech.edu South Pasadena, California
On Tue, 14 Dec 1999, you wrote: > Well, actually it's a little more complicated than that. The book > 'Maximum RPM' goes into detail about how dependencies are calculated, > getting down in great detail. You didn't say whether you got the RedHat > 5.2 or RedHat 6.1 version of the RPM's. You'd need to determine which > glibc 2.x Caldera 2.2 uses -- IIRC, it's glibc 2.0. The kernel version > is not as important as the glibc version, as the RPMs built against > glibc 2.1 are almost guaranteed to not work right on a glibc 2.0 system. Thanks for the tip on the book title "Maximum RPM". That is the third time I have seen that title and I am assuming it must be a great resource. I will pick up a copy. I got "postgresql-6.4.2-6.i386.rpm", but I cannot remember if it was destined for RH 5.2 or 6.1. My guess is that it might have been 6.1. The only reason is because I do remember seeing both "GLIBC_2.0" and "GLIBC_2.1" being quoted in the "unsatisfied depencies" list. My Caldera glibc version is 2.1-3, so I am not sure that versioning is the issue, but more an issue with the way the RPM package and database setup. > IIRC, Caldera 2.2 is kernel 2.2, glibc 2.0. RH 5.2 is kernel 2.0, glibc > 2.0, and RH 6.1 is kernel 2.2, glibc 2.1. > > > I did, however, had to install "chkconfig" since my Caldera distribution did > > not have it and the libraries libtermcap and libcrypt. > > Hmmmm... Caldera doesn't ship libtermcap and libcrypt? Where did you > get the missing libs -- RedHat RPMs, or Caldera RPMs? And, yes, > chkconfig is a handy little RedHat-only program (actually was written by > the RedHat guys!) that is used to add the initscript to the appropriate > (for RedHat) rcX.d. Believe it or not... neither! I know, I know... it is asking for more trouble :-/ , but what I got was "libtermcap-2.0.8-17cl.i386.rpm" a Conectiva version and "libcrypt1-shared-1.0-5.i386.rpm" a S.u.S.E. 5.3 modified version. I was curious about whether "i386" packages/libraries would be compatible and got a little carried away. By this time, I became convinced that if I wanted to learn about the PostgreSQL database package, I will have to learn about the RPM software package database. It won't hurt except in the time it might take. > > Now things mostly work except I am running into a problem with libcrypt calling > > a routine that is in another shared library that does exist... > > The 'false' dependencies you mentioned above just bit. Ouch! It sure did. I can run pgsql, but not pgaccess. I am hoping that shared libraries are handled smartly by kpackage and RPM when installing, although it did stop complaining (ie: unsatisfied dependencies) once I installed the libcrypt package. > > I am thinking that I should probably installed the source version, but I am not > > sure how many hassles that will be. > > If you have a complete C and C++ development system, with perl, tcl/tk, > X11, and the python development libraries installed (the dev libs for > ALL of those packages, not just those packages), then you should be able > to 'rpm --rebuild postgresql-version.src.rpm' -- there probably will be > issues that will arise (which I will attempt to help you with). Thanks! I look forward to trying this out! Hopefully, Caldera has a complete set of development libraries. I installed all the packages that it had to offer from the CD (ie: that is I selected that "all packages" option in Caldera's own installation menu). > Once the build is successful, look under /usr/src for a packages, or RPM > directory. Under that directory, you should see the dirs SPECS, BUILD, > RPMS, SRPMS, and SOURCES. Under RPMS, you will find architecture dirs > (such as i386, alpha, i686....). Under one of those dirs will be the > built binary RPMS. > > The src.rpm has been successfully rebuilt under SuSE 6.2, so it > shouldn't be too much of a stretch to build it under Caldera. > > Let me know what else you find, as I don't have access to a Caldera box. Will do! Thanks for your help and I will be in touch. Regards, Frank Shim fshim@cawthra.com