still in the works, please be patient.....
Please note: While I strive to keep my RPM packages 100%-compatible with the RPM packages of the AIX Toolbox for Linux Applications there are some things beyond my control.
Whenever the rpm.rte
AIX LPP gets updated -- for whatever reason, e.g., a technology level update -- problems may arise if you have installed newer versions of the following three packages from my website:
The main culprit is the gettext
package here, I have yet to see an error with bzip2
or zlib
. Therefore, if you get the following error message
... 0509-150 Dependent module /opt/freeware/lib/libintl.a(libintl.so.8) could not be loaded. 0509-152 Member libintl.so.8 is not found in archive ...
you are using an old version of that program/package that is still linked against gettext version 0.17:
Explanation: The reason that gettext
needs to be re-installed is that whenever the rpm.rte
fileset is updated (e.g., new AIX maintenance level etc.), this update blindly overwrites any newly installed versions of those three RPM packages in /opt/freeware/lib.
I consider this behavior completely broken Attach:sad_smiley.gif Δ but there is nothing in my power to change that.
What is especially unfortunate and what I don't understand is why rpm.rte
(especially the rpm
command) is not compiled with private shared libraries in some private directory -- which would be very easily possible -- and that would not interfere with anything newer installed in /opt/freeware/lib
...
Newer versions of rpm.rte
at least issue a statement during installation like that:
Warning: the contents of the following RPM packages will be overwritten. If these packages did not come from the AIX Toolbox for Linux Applications, it may be necessary to reinstall them. bzip2-1.0.5-1 gettext-0.17-1 info-4.12-1 zlib-1.2.3-5
I guess everybody who has installed a couple of RPM packages using rpm
itself and not the help with a tool like yum
ran into the following issue:
aaa.rpm
.
aaa.rpm
has dependency on bbb.rpm
and ccc.rpm
.
bbb.rpm
has dependency on ddd.rpm
and ccc.rpm
on eee.rpm
and fff.rpm
.
So you end up circling through all your RPM files and downloading all prerequisite RPM files just to install aaa.rpm
. This can become quite annoying and time-consuming for packages with lots of dependencies. This is actually where a tool like yum
is helping you a lot because it does all the steps outlined above for you. Unfortunately, I have so far found no way of compiling and providing YUM for AIX that could be done in a compatible manner (to the IBM provided RPM) as AIX still uses the old V3.0.5 version of RPM while all RPM-based Linux distributions have switched to RPM V4.X a long time ago. Also all recent YUM versions require at least a RPM version >= 4.4.
aaa.rpm
.
aaa.rpm
as easy as rpm -Uvh *.rpm
software bundle
(the list here) and a lpp_source
(the separate directory containing all required RPM files).
I have generated (with the help of some scripts) dependency lists for the latest and fully compatible binary RPMs for the following AIX versions:
FTP download | HTTP download |
---|---|
AIX5L v5.1 | AIX5L v5.1 |
AIX5L v5.2 | AIX5L v5.2 |
AIX5L v5.3 | AIX5L v5.3 |
AIX v6.1 | AIX 6.1 |
AIX v7.1 | AIX 7.1 |
You have exactly one list for each binary RPM file and the naming convention is as follows:
If the RPM file is called aaa.aix5.1.ppc.rpm
then the dependency list file is named aaa.aix5.1.ppc.deps
, i.e., the extension .rpm
is replaced with .deps
.
wget
.
aaa.aix5.1.ppc.rpm
and would then issue the following command:
# either download with FTP protocol while read i; do wget ftp://www.oss4aix.org/everything/RPMS/${i} done < aaa.aix5.1.ppc.deps # or download with HTTP protocol while read i; do wget http://www.oss4aix.org/download/everything/RPMS/${i} done < aaa.aix5.1.ppc.deps
Please note: While the command above shows what intended action are, a better alternative (no loop at all) would be to combine wget's -B and -i switches:
# either download with FTP protocol wget -B ftp://www.oss4aix.org/everything/RPMS/ -i aaa.aix5.1.ppc.deps # or download with HTTP protocol wget -B http://www.oss4aix.org/download/everything/RPMS/ -i aaa.aix5.1.ppc.deps
So what do you have to do if you want to combine multiple RPM dependency lists into one, e.g., you want a combined list for Apache and PHP. Those are the required steps (in the example I use AIX 6.1 and please note that the exact version numbers might vary):
httpd-2.4.3-1.aix5.1.ppc.deps
and mod_php_ap24-5.4.6-1.aix5.1.ppc.deps
from ftp://www.oss4aix.org/rpmdb/deplists/aix61
cat httpd-2.4.3-1.aix5.1.ppc.deps mod_php_ap24-5.4.6-1.aix5.1.ppc.deps | sort | uniq > httpd+php.deps
httpd+php.deps
) for Apache and PHP that you can then use to download all required RPMs as described above.
In this case you are still using an old version of the program/package that is producing this error message. Please download and install a newer version of that package. All packages released since July 2009 are linked against the older gettext version 0.10.40 so that error message can not occur anymore.
No, you don't.
If you really need functionality of gettext >= 0.10.40 (the version compatible with the original AIX Toolbox for Linux applications) you should install the gettext-progs package that provides the binaries of gettext which are statically linked in order to avoid this error message.
wget produces a warning message similar to this one:
# wget <URI> ... libidn: warning: libiconv not installed, cannot convert data to UTF-8 ...
Starting with version 1.12 GNU wget added support for Internationalized Resource Identifiers (IRIs, RFC 3987). When support is enabled (requires GNU libidn and GNU libiconv), links with non-ASCII bytes are translated from their source encoding to UTF-8 before percent-encoding. This requires also libidn to be compiled with GNU libiconv support which was not the case before.
This is now fixed in wget versions starting with:
If configure
shows the following output lines
... checking whether to build shared libraries... no checking whether to build static libraries... yes ...
then you must be alerted because then in the earlier output you should have seen the following lines:
... checking build system type... rs6000-ibm-aix checking host system type... rs6000-ibm-aix ...
In this case you should check the following items:
config.guess
script knows about AIX V6.1 and V7.1!
aix4* | aix5*)
" in these scripts, thus neglecting AIX V6.1/7.1 while the newer versions have checks like 殿ix[4-9]*)?
config.guess
tries to "guess" the correct value for the OS rs6000-ibm-aix
powerpc-ibm-aix6.1.0.0
(or powerpc-ibm-aix7.1.0.0
, respectively)
grep AIX config.guess
" must return the following output: *:AIX:*:[45])
*:AIX:*:[4567])
or *:AIX:*:[4-9])
autoreconf
has improved?
To be completed....