Thanks for the detailed explanation.
So, here after I satisfied all the prerequisites, when compiling the RPM
source, I encounter the following compilation errors:
In file included from dbconfig.c:14:
./rpmdb.h:433: error: expected specifier-qualifier-list before
'DB_SEQUENCE'
./rpmdb.h:490: error: expected specifier-qualifier-list before 'DB_LOGC'
./rpmdb.h: In function 'dbiCopen':
./rpmdb.h:589: error: 'struct _dbiIndex' has no member named 'dbi_vec'
./rpmdb.h: In function 'dbiCclose':
.....
.....
what do you think that is?!
On Mon, 08 Aug 2011 15:36:34 -0400, Jeff Johnson <n3...@mac.com> wrote:
On Aug 8, 2011, at 1:19 PM, Belal Salem wrote:
Actually, what I'm trying to do is the following, may be you have an
advice for me:
I'm running RHEL-5, I found it the most stable and secure Distro that
runs smoothly almost all the high-end simulation and 3D applications
that I'm using intensively, the problem is that there are dozens of
simple but important applications/utilities that requires higher
versions of glibc and python, those that where supplied as rpm packages
that requires newer versions of the RPM to be installed!
Yes, you aren't alone here either: most "enterprise" distros have such a
;one
"supported" life that they become irrelevant.
I'm not sure that ether's any "enterprise" distro with a solid upgrade
path.
Dag's repository is likeliest best both reputation ally and in in
"reality".
Check there first imho.
So, I decided to build a custom system installation that satisfies all
my needs.
I manually forced upgrade glibc with a version that gives 2.6 and 2.7
without breaking the system dependencies, and I compiled python-2.7.2,
and now my system runs really great! and I can run those new
applications smoothly.
Upgrading REHL5 to python-2.7.2 is non-trivial: congratulations on
success.
The only one thing that I'm suffering from is that I have to manually
extract and install them since they require higher signature of
fileDegist, payload and rpm compressing... for that I decided to
upgrade to RPM-5 to be able to install them regularly using the RPM
Packager.
Yes: distros have chosen to use SHA-256 file digests without bothering
to release a compatible version of rpm.
There is a way to disable file digests using --nofdigests (I've
forgotten the
older option, it has been 6 years or so: --nomd5sums? something like
that).
Sadly that *still* isn't enough because of the XZ! XZ! XZ! craziness. So
there's
often nothing one can do except extract the payload
rpm2cpio.sh foo*.rpm | cpio -dim
(there's a shell script that permits inserting a unxz where needed).
There are back ports of XZ and SHA256 file digests to whatever RPM is
in RHEL5 if needed: I can dig out the necessary patches if GOOG
cannot find something that Just Works.
Any advices about that! are there an easy way to let the RPM source
compile both of the i686 and x86_64 bit.
All depends on what is considered "easy".
FYI: rpm-4.4.7 (on which @rpm5.org is based) treats arch simply as a
string. SO
it's entirely feasible to do
rpmbuild -ba --target=hotmommacpu foo.spec
and end up producing binary
foo*.hotmammacpu.rpm
Whether that is useful or not is a far more complex answer: but RPM
won't stop you
from attempting.
For RHEL5, its likely easiest to add (and change)
/etc/rpm/platform
which contains in 1-line the usual config.guess string like
x86_64-unknown-linux
There are ways to invoke with a setarch(1) prefix like
setarch x86_64 rpmbuild -ba yadda.spec
but I find that rather more annoying than easy: usually I'm building
a set of packages, and editing /etc/rpm/platform is persistent (and easy)
even if I usually forget to check the setting when building.
What I'm confused about, is that the RPM has many dependencies, and I
don't know which one of them should be compiled for both i686 and
x86_64 and which needs to only compile for x86_64.
All ELF dependencies have a "color" and are attached to file(s) (if the
functionality is not disabled).
So color is 0 == "white", 1 == elf32, and 2 == elf64 and you can see the
dependencies by doing
rpm -qp --filerequire *.rpm
to see which dependencies are associated with each file.
There is a --fileprovide as well, and you can also see what rpm is going'
to do by typing, say,
find /bin | /usr/lib/rpm/rpmdeps --requires
or even
echo "/bin/sh" | …
(there's a --provides analogue to --requires too).
Other arch-specific dependencies are usually dictated by Packaging
Policy Police somewhere.
Note that RHEL5 is particularly strangely painful in the way it handles
ix86 <-> x86_64 "multilib".
hth
73 de Jeff
______________________________________________________________________
RPM Package Manager http://rpm5.org
User Communication List rpm-users@rpm5.org
--
Using Opera's revolutionary email client: http://www.opera.com/mail/
______________________________________________________________________
RPM Package Manager http://rpm5.org
User Communication List rpm-users@rpm5.org