======= AIX RPM installation and YUM / DNF ======
===== DNF installation on AIX 7.3 =====
Starting point: AIX 7.3 TL1 SP01
[root@aix73]/root# oslevel -s
7300-01-01-2246
[root@aix73]/root# lslpp -Lc | grep rpm.rte
rpm.rte:rpm.rte:4.15.1.2006: : :C: :RPM Package Manager: : : : : : :0:0:/:
[root@aix73]/root# rpm -qa
libgcc10-10.3.0-6.ppc
libstdc++-10-2.ppc
db-5.3.28-1.ppc
AIX-rpm-7.3.1.1-6.ppc
libgcc-10-2.ppc
libstdc++10-10.3.0-6.ppc
Source package for this install (ppc, noarch, ppc-7.3, and dnf bundle:
https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/
https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/dnf_bundle_aix_73_v6.tar
Install the following rpms, and ignore the following error
# rpm -Uhv libxml2-2.10.2-1.aix7.1.ppc.rpm libunistring-0.9.10-1.aix6.1.ppc.rpm libtextstyle-0.21-2.aix7.1.ppc.rpm libgomp8-8.3.0-7.aix7.3.ppc.rpm libgcc8-8.3.0-7.aix7.3.ppc.rpm ncurses-6.3-1.aix7.1.ppc.rpm libiconv-1.17-1.aix7.1.ppc.rpm info-6.7-1.aix6.1.ppc.rpm gettext-0.21-2.aix7.1.ppc.rpm xz-libs-5.2.5-1.aix6.1.ppc.rpm glib2-2.56.1-3.aix6.1.ppc.rpm zlib-1.2.12-1.aix6.1.ppc.rpm libffi-3.4.2-1.aix7.1.ppc.rpm libgomp-10-2.aix7.3.ppc.rpm libgomp10-10.3.0-6.aix7.3.ppc.rpm
Updating / installing...
exec(): 0509-036 Cannot load program /sbin/install-info because of the following errors:
0509-150 Dependent module /opt/freeware/lib64/libintl.a(libintl.so.8) could not be loaded.
0509-022 Cannot load module /opt/freeware/lib64/libintl.a(libintl.so.8).
0509-026 System error: A file or directory in the path name does not exist.
# rpm -Uhv libzstd-1.5.2-1.aix7.1.ppc.rpm
# rpm -Uhv ca-certificates-2021.2.52-3.aix6.1.ppc.rpm p11-kit-tools-0.23.22-1.aix6.1.ppc.rpm libtasn1-4.16.0-1.aix6.1.ppc.rpm p11-kit-0.23.22-1.aix6.1.ppc.rpm
# rpm -Uhv krb5-libs-1.18.4-1.aix6.1.ppc.rpm
# rpm -Uhv libssh2-1.10.0-1.aix7.1.ppc.rpm
# rpm -Uhv libnghttp2-1.46.0-1.aix6.1.ppc.rpm
# rpm -Uhv openldap-2.4.58-1.aix6.1.ppc.rpm cyrus-sasl-2.1.26-5.aix6.1.ppc.rpm
# rpm -Uhv curl-7.83.1-1.aix7.1.ppc.rpm
# rpm -Uhv zchunk-libs-1.1.4-101.aix7.1.ppc.rpm
# rpm -Uhv libsolv-0.7.9-64_50.aix7.3.ppc.rpm
# rpm -Uhv sqlite-3.37.2-1.aix7.1.ppc.rpm readline-8.1-1.aix6.1.ppc.rpm
# rpm -Uhv gdbm-1.23-1.aix7.1.ppc.rpm
# rpm -Uhv python3-3.7.12-1.aix6.1.ppc.rpm
# rpm -Uhv gpgme-1.13.1-100.aix7.1.ppc.rpm gnupg2-2.2.35-1.aix6.1.ppc.rpm libassuan-2.5.5-1.aix7.1.ppc.rpm libgpg-error-1.45-1.aix7.1.ppc.rpm gnutls-3.7.2-1.aix7.1.ppc.rpm libgcrypt-1.9.4-1.aix6.1.ppc.rpm libksba-1.6.0-1.aix7.1.ppc.rpm npth-1.5-1.aix6.1.ppc.rpm gmp-6.2.1-1.aix6.1.ppc.rpm nettle-3.7.3-1.aix6.1.ppc.rpm
# rpm -Uhv librepo-1.11.0-100.aix7.1.ppc.rpm
# rpm -Uhv libcomps-0.1.11-100.aix7.1.ppc.rpm
# rpm -Uhv libsmartcols-2.34-100.aix7.1.ppc.rpm
# rpm -Uhv check-0.13.0-1.aix7.1.ppc.rpm
# rpm -Uhv libmodulemd-1.5.2-100.aix7.1.ppc.rpm libyaml-0.2.5-1.aix7.1.ppc.rpm
# rpm -Uhv json-c-0.15-2.aix6.1.ppc.rpm
# rpm -Uhv rpm-python3-4.15.1-64_2.aix7.1.ppc.rpm
# rpm -Uhv python3-libdnf-0.39.1-64_50.aix7.3.ppc.rpm libdnf-0.39.1-64_50.aix7.3.ppc.rpm
# rpm -Uhv python3-hawkey-0.39.1-64_50.aix7.3.ppc.rpm
# rpm -Uhv python3-libcomps-0.1.11-100.aix7.1.ppc.rpm
# rpm -Uhv python3-gpg-1.13.1-100.aix7.1.ppc.rpm
# rpm -Uhv dnf-4.2.17-64_51.aix7.3.ppc.rpm python3-dnf-4.2.17-64_51.aix7.3.ppc.rpm dnf-data-4.2.17-64_51.aix7.3.ppc.rpm
# dnf update
Here is the full list of installed rpm on AIX 7300-01-01
AIX-rpm-7.3.1.1-11.ppc bzip2-1.0.8-2.ppc ca-certificates-2021.2.52-3.ppc check-0.13.0-1.ppc curl-7.83.1-1.ppc
cyrus-sasl-2.1.26-5.ppc db-5.3.28-1.ppc dnf-4.2.17-64_51.ppc dnf-data-4.2.17-64_51.ppc expat-2.4.9-1.ppc
gdbm-1.23-1.ppc gettext-0.21-2.ppc glib2-2.56.1-3.ppc gmp-6.2.1-1.ppc gnupg2-2.2.35-1.ppc gnutls-3.7.2-1.ppc
gpgme-1.13.1-100.ppc grep-3.7-1.ppc info-6.7-1.ppc json-c-0.15-2.ppc krb5-libs-1.18.4-1.ppc libassuan-2.5.5-1.ppc
libcomps-0.1.11-100.ppc libdnf-0.39.1-64_50.ppc libffi-3.4.2-1.ppc libgcc-10-2.ppc libgcc10-10.3.0-6.ppc
libgcc8-8.3.0-7.ppc libgcrypt-1.9.4-1.ppc libgomp-10-2.ppc libgomp10-10.3.0-6.ppc libgomp8-8.3.0-7.ppc
libgpg-error-1.45-1.ppc libiconv-1.17-1.ppc libksba-1.6.0-1.ppc libmodulemd-1.5.2-100.ppc
libnghttp2-1.46.0-1.ppc librepo-1.11.0-100.ppc libsmartcols-2.34-100.ppc libsolv-0.7.9-64_50.ppc
libssh2-1.10.0-1.ppc libstdc++-10-2.ppc libstdc++10-10.3.0-6.ppc libtasn1-4.16.0-1.ppc libtextstyle-0.21-2.ppc
libunistring-0.9.10-1.ppc libxml2-2.10.2-1.ppc libyaml-0.2.5-1.ppc libzstd-1.5.2-1.ppc ncurses-6.3-1.ppc
nettle-3.7.3-1.ppc npth-1.5-1.ppc openldap-2.4.58-1.ppc p11-kit-0.23.22-1.ppc p11-kit-tools-0.23.22-1.ppc
python3-3.7.12-1.ppc python3-dnf-4.2.17-64_51.ppc python3-gpg-1.13.1-100.ppc python3-hawkey-0.39.1-64_50.ppc
python3-libcomps-0.1.11-100.ppc python3-libdnf-0.39.1-64_50.ppc readline-8.1-1.ppc rpm-python3-4.15.1-64_2.ppc
sqlite-3.37.2-1.ppc xz-libs-5.2.5-1.ppc zchunk-libs-1.1.4-101.ppc zlib-1.2.12-1.ppc
===== Yum update =====
rpm -qa > /root/rpm.txt
mount aixna001:/export/software /mnt
cd /mnt/rpms_ibm/aix/aix72
Remove obsolete packages python-libs and remove gcc (will be installed later only if needed
rpm -e $(rpm -qa | grep yum | tr '\n' ' ' )
rpm -e $(rpm -qa | grep pyth | tr '\n' ' ' )
rpm -e $(rpm -qa | grep gcc | grep -v lib | tr '\n' ' ' )
rpm -Uhv libgcc\-8.3.0\-2.aix7.2.ppc.rpm libstdcplusplus\-8.3.0\-2.aix7.2.ppc.rpm
Remove obsolete packages bd4
rpm --force -i db\-6.2.38\-2.aix6.1.ppc.rpm
rm /var/lib/rpm/__db.00*
rpm -e db4
Reinstall rpm.rte
installp -agXY -d /mnt/rpms_ibm/aix/yum rpm.rte
If it failed, rpm.rte have to be reinstall with force as it's on same version as installed
installp -F -acY -d /mnt/rpms_ibm/aix/yum rpm.rte
Install Yum dependancies
cd /mnt/rpms_ibm/aix/aix72
rpm -Uhv libgcc\-8.3.0\-2.aix7.2.ppc.rpm libstdcplusplus\-8.3.0\-2.aix7.2.ppc.rpm
rpm -Uhv zlib\-1.2.11\-1.aix6.1.ppc.rpm xz\-libs\-5.2.5\-1.aix6.1.ppc.rpm
rpm -Uhv libiconv\-1.16\-1.aix6.1.ppc.rpm gettext\-0.19.8.1\-5.aix6.1.ppc.rpm glib2\-2.56.1\-2.aix6.1.ppc.rpm ncurses\-6.2\-1.aix6.1.ppc.rpm libxml2\-2.9.9\-1.aix6.1.ppc.rpm libffi\-3.2.1\-3.aix6.1.ppc.rpm libunistring\-0.9.9\-2.aix6.1.ppc.rpm info\-6.6\-2.aix6.1.ppc.rpm bash\-5.0\-1.aix6.1.ppc.rpm
rpm -Uhv bzip2\-1.0.8\-2.aix6.1.ppc.rpm
Install yum
cd /mnt/rpms_ibm/aix/yum
./install_yum.sh
Yum update
yum -y update
If it failed go to problem section [[aix:aix_rpm_package#yum_errors|Yum errors]]
Install minimum packages
yum -y install bash bzip2 grep sed logrotate lpar2rrd-agent rsync zip unzip sudo coreutils
===== YUM installation =====
[root@aixa031] /root/scripts> lslpp -Lc | grep rpm.rte
rpm.rte:rpm.rte:4.13.0.3: : :C: :RPM Package Manager: : : : : : :0:0:/:
[root@aixna001] /root/scripts> cat install_yum.sh
#!/bin/ksh
rpmpath=/mnt/rpms_perzl/yum-bundles/yum-bundle-aix72
mount aixna001:/export/software /mnt
cd $rpmpath
rpm -Uhv libffi-3.2.1-2.aix5.1.ppc.rpm readline-7.0-3.aix5.1.ppc.rpm openssl-1.0.2k-1.aix5.1.ppc.rpm
rpm -Uhv gdbm-1.11-1.aix5.1.ppc.rpm sqlite-3.17.0-1.aix5.1.ppc.rpm expat-2.2.0-1.aix5.1.ppc.rpm
rpm -Uhv db4-4.8.30-1.aix5.1.ppc.rpm
rm /var/lib/rpm/__db.00*
rpm -Uhv python-2.7.13-1.aix6.1.ppc.rpm python-libs-2.7.13-1.aix6.1.ppc.rpm
rpm -Uhv glib2-2.34.3-1.aix5.1.ppc.rpm
rpm -Uhv pkg-config-0.29.1-1.aix5.1.ppc.rpm
rpm -Uhv libidn-1.33-1.aix5.1.ppc.rpm libssh2-1.8.0-1.aix5.1.ppc.rpm
rpm -Uhv curl-7.53.1-1.aix5.1.ppc.rpm
rpm -Uhv python-iniparse-0.4-1.aix5.1.noarch.rpm python-pysqlite-2.8.3-1.aix6.1.ppc.rpm python-urlgrabber-3.10.2-1.aix5.1.noarch.rpm python-pycurl-7.43.0-1.aix6.1.ppc.rpm
rpm -Uhv libxml2-2.9.4-1.aix5.1.ppc.rpm xz-libs-5.2.3-1.aix5.1.ppc.rpm
rpm -Uhv yum-3.4.3-1.aix5.1.noarch.rpm yum-metadata-parser-1.1.4-1.aix6.1.ppc.rpm
rpm --noscripts -Uhv yum-3.4.3-1.aix5.1.noarch.rpm
updtvpkg
echo "##########################################"
echo "Now connect to the nim server : aixna001 and copy config file"
echo 'scp /opt/freeware/etc/yum/repos.d/perzl-org.repo _aix_node_:/opt/freeware/etc/yum/repos.d/'
echo
echo "Please check into the file on client the AIX version into config file /opt/freeware/etc/yum/repos.d/perzl-org.repo"
echo
echo "Start : yum update"
===== RPM DB corrupt =====
After upgrading the rpm package db4, RPMDB is corrupt
root@devsrv - /mnt/rpm # rpm -Uhv db4-4.8.30-1.rpm
Updating / installing...
1:db4-4.8.30-1 ################################# [ 50%]
Cleaning up / removing...
2:db4-4.7.25-2 ################################# [100%]
root@devsrv - /mnt/rpm # rpm -qa
error: db4 error(-30971) from dbenv->open: DB_VERSION_MISMATCH: Database environment version mismatch
error: cannot open Packages index using db4 - (-30971)
error: cannot open Packages database in /opt/freeware/packages
===== Error during upgrade rpm.rte from 3 to 4 =====
[root@aixnim] /root> lslpp -Lc | grep open
error: incorrect format: unknown tag
**Uninstall openssl AIX package and reinstall:**
make a backup of /etc/ssh (new keys will be generated!)
cd /etc; tar cvf ssh.tar ssh
Uninstall (will also uninstall openssh and sysmgt.cim)
installp -ug openssl.base openssl.license openssl.man.en_US
Reinstall openssh and openssl (sysmgt.cim not necessary)
restore the ssh keys
cd /etc; tar xvf ssh.tar
Just remove the DB files into **/var/lib/rpm**
root@devsrv - /root # cd /var/lib/rpm
root@devsrv - /var/lib/rpm # mkdir old_db_rpm_2017
root@devsrv - /var/lib/rpm # mv __db.001 __db.002 __db.003 __db.004 old_db_rpm_2017
root@devsrv - /var/lib/rpm # rpm -qa
expect-5.42.1-3.ppc
freetype2-2.5.5-1.ppc
AIX-rpm-7.2.2.0-7.ppc
db4-4.8.30-1.ppc
...
If the database is not refreshed, the use the command
rpm --rebuilddb
Change folder : /export/packages/RPMS/noarch
> rpm -Uhv bash-4.4-4.aix5.1.ppc.rpm
> rpm -Uhv info-6.4-1.aix5.1.ppc.rpm gettext-0.10.40-8.aix5.2.ppc.rpm libiconv-1.15-1.aix5.1.ppc.rpm
Preparing... ################################# [100%]
Updating / installing...
1:gettext-0.10.40-8 ################################# [ 33%]
2:libiconv-1.15-1 ################################# [ 67%]
3:info-6.4-1 ################################# [100%]
Please check that /etc/info-dir does exist.
You might have to rename it from /etc/info-dir.rpmsave to /etc/info-dir.
exec(): 0509-036 Cannot load program /usr/opt/freeware/bin/rpm because of the following errors:
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
rpm_share: 0645-007 ATTENTION: get_rpm_inst_root_list() returned an unexpected result.
rpm_share: 0645-007 ATTENTION: update_inst_root() returned an unexpected result.
Problem with RPM Databse
root@nimprod /var/lib/rpm> rm /var/lib/rpm/__db.00*
You need to force the reinstallation of package rpm.rte
root@nimprod /export/lpp/aix7200/aix7200-01-02-lpp> installp -F -acYN -d ./ rpm.rte
===== Yum cleanup repository =====
The "simple" way is to just dump everything in a directory and run:
# rm $(repomanage --keep=2 --old /path/to/repo)
# createrepo /path/to/repo
===== Yum errors =====
==== YUM check ====
=== Error ===
Here you can see bad packages, gcc compiled for AIX 7.1 on a AIX 7.2.
[root@aixdev]/root# yum check
1:libgcc-8-1.ppc has missing requires of AIX-rpm < ('0', '7.2.0.0', None)
libgcc8-8.3.0-6.ppc has missing requires of AIX-rpm < ('0', '7.2.0.0', None)
1:libgomp-8-1.ppc has missing requires of AIX-rpm < ('0', '7.2.0.0', None)
libgomp8-8.3.0-6.ppc has missing requires of AIX-rpm < ('0', '7.2.0.0', None)
1:libstdc++-8-1.ppc has missing requires of AIX-rpm < ('0', '7.2.0.0', None)
libstdc++8-8.3.0-6.ppc has missing requires of AIX-rpm < ('0', '7.2.0.0', None)
Error: check all
[root@aixdev]/root#
Or
[root@aixdev]/root# yum check
Could not load program /opt/freeware/bin/python2:
Dependent module libstdc++.a(libstdc++.so.6) could not be loaded.
Could not load module libstdc++.a(libstdc++.so.6).
System error: No such file or directory
[root@aixdev]/root# oslevel -s
7200-05-04-2220
[root@aixdev]/root# rpm -ql libgcc8
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0
...
=== Resolution ===
Reinstall force all conflicted packages
[root@aixdev]/mnt/rpm/ibm/latest/ppc-7.2# rpm -Uhv libstdcplusplus-10-2.aix7.2.ppc.rpm libgcc-10-2.aix7.2.ppc.rpm libgomp-10-2.aix7.2.ppc.rpm libgcc10-10.3.0-6.aix7.2.ppc.rpm libstdcplusplus10-10.3.0-6.aix7.2.ppc.rpm libgomp10-10.3.0-6.aix7.2.ppc.rpm
[root@aixdev]/mnt/rpm/ibm/latest/ppc-7.2# rpm --force -ivh libgcc8-8.3.0-6.aix7.2.ppc.rpm libgomp8-8.3.0-6.aix7.2.ppc.rpm libstdcplusplus8-8.3.0-6.aix7.2.ppc.rpm
Yum check is now OK
==== popt ====
=== Error ===
Symbol resolution failed for /usr/opt/rpm/lib/librpm.so because:
Symbol poptSaveInt (number 266) is not exported from dependent
module /usr/lib/libpopt.so.
=== Resolution ===
Install the right level of popt (as this include into rpm.rte is too old)
root@nimprod /root> rpm -Uhv popt-1.16-3.aix6.1.ppc.rpm
==== libxml2 ====
=== Error ===
Could not load module /opt/freeware/lib/libxml2.a(libxml2.so.2).
Dependent module /usr/lib/libiconv.a(libiconv.so.2) could not be loaded.
Member libiconv.so.2 is not found in archive
Could not load module /opt/freeware/lib/python2.7/site-packages/_sqlitecache.so.
Dependent module /opt/freeware/lib/libxml2.a(libxml2.so.2) could not be loaded.
=== Resolution ===
[root@aixb039] /mnt/rpms_ibm/aix/yum> ll /usr/lib/libxml2.a
/usr/lib/libxml2.a not found
[root@aixb039] /mnt/rpms_ibm/aix/yum> ln -s /usr/ccs/lib/libxml2.a /usr/lib/libxml2.a
==== libcrypto ====
=== Error ===
Could not load module /opt/freeware/lib/python2.7/site-packages/pycurl.so.
Dependent module /opt/freeware/lib/libcrypto.a(libcrypto.so) could not be loaded.
Member libcrypto.so is not found in archive
Could not load module /opt/freeware/lib/python2.7/site-packages/pycurl.so.
Dependent module /opt/freeware/lib/python2.7/site-packages/pycurl.so could not be loaded.
=== Resolution ===
[root@aix39] /mnt/rpms_ibm/aix/yum> rpm -e openssl
warning: file /usr/linux/bin/c_rehash: remove failed: No such file or directory
==== libcrypto/libssl ====
=== Error ===
Error: Package: krb5-libs-1.18.5-2.ppc (AIX_Toolbox_BDL)
Requires: libcrypto.a(libcrypto.so.1.1)
Error: Package: openldap-2.4.58-4.ppc (AIX_Toolbox_BDL)
Requires: libssl.a(libssl.so.1.1)
Error: Package: openldap-2.4.58-4.ppc (AIX_Toolbox_BDL)
Requires: libcrypto.a(libcrypto.so.1.1)
Error: Package: krb5-libs-1.18.5-2.ppc (AIX_Toolbox_BDL)
Requires: libssl.a(libssl.so.1.1)
=== Resolution ===
Bad version of **openssl**
* Else you upgrade openssl to version 1.1.1 (and openssh associated)
* Or remove the packages : krb5-libs, openldap and cyrus-sasl from repository
==== xz-libs ====
=== Error ===
Symbol resolution failed for /opt/freeware/lib/libxml2.a(libxml2.so.2) because:
Symbol _GLOBAL__AIXI_liblzma_so (number 4) is not exported from dependent
module /opt/freeware/lib/liblzma.a(liblzma.so.5).
Symbol _GLOBAL__AIXD_liblzma_so (number 5) is not exported from dependent
module /opt/freeware/lib/liblzma.a(liblzma.so.5).
Could not load module /opt/freeware/lib/python2.7/site-packages/_sqlitecache.so.
System error: Exec format error
Examine .loader section symbols with the 'dump -Tv' command.
=== Resolution ===
[root@aix39] /mnt/rpms_ibm/aix/aix72> rpm -Uhv xz\-libs\-5.2.5\-1.aix6.1.ppc.rpm
==== curl ====
=== Error ===
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
pycurl: libcurl link-time version (7.52.1) is older than compile-time version (7.56.1)
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.7.18 (default, May 31 2021, 11:28:01)
[GCC 8.3.0]
=== Resolution ===
[root@aix05] /mnt/aix/aix72> rpm -Uhv curl\-7.76.1\-1.aix6.1.ppc.rpm
==== bzip2 ====
=== Error ===
rtld: 0712-001 Symbol _GLOBAL__AIXI_libbz2_so was referenced
from module /opt/freeware/lib/python2.7/lib-dynload/bz2.so(), but a runtime definition
of the symbol was not found.
rtld: 0712-001 Symbol _GLOBAL__AIXD_libbz2_so was referenced
from module /opt/freeware/lib/python2.7/lib-dynload/bz2.so(), but a runtime definition
of the symbol was not found.
=== Resolution ===
[root@aix05] /mnt/aix/aix72> rpm --force -i bzip2\-1.0.8\-2.aix6.1.ppc.rpm
==== libpng / freetype2 ====
=== Error ===
Error: Package: freetype2-2.10.4-1.ppc (installed)
Requires: libpng16.a(libpng16.so.16)
Removing: libpng-1.6.31-1.ppc (installed)
libpng16.a(libpng16.so.16)
Updated By: 2:libpng-1.2.32-2.ppc (AIX_Toolbox)
Not found
Available: libpng-1.6.27-3.ppc (AIX_Toolbox)
libpng16.a(libpng16.so.16)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
=== Resolution ===
[root@aix05] /root> rpm -e freetype2 fontconfig libXft
====== Install YUM on AIX ======
First steps to install YUM:
Download the latest YUM bundle from IBM
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/
Or latest bundle from Perzl
ftp://www.oss4aix.org/bundles/yum-bundles/
Also required : rpm.rte.4.9.1.3 or later
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/INSTALLP/ppc/rpm.rte.4.9.1.3
For information you will find the latest RPMs in
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/
ftp://www.oss4aix.org/latest/
===== RPM minimum level for YUM =====
First update using smit **rpm.rte** AIX package to minimum 4.9.1.3 (required for YUM)
[root@prnim01]/root# lslpp -Lc | grep rpm.rte
rpm.rte:rpm.rte:4.9.1.3: : :C: :RPM Package Manager: : : : : : :0:0:/:
===== Yum from Perzl =====
After untar the bundle Ex: yum-bundle-aix72.tar
[root@prnim01]/export/lppsources/rpm/perzl/yum_bundle/aix72# rpm -qa
AIX-rpm-7.2.1.0-6
[root@prnim01]/export/lppsources/rpm/perzl/yum_bundle/aix72# ls
bash-4.4-4.aix5.1.ppc.rpm libstdc++-4.9.4-1.aix7.2.ppc.rpm
bzip2-1.0.5-3.aix5.3.ppc.rpm libxml2-2.9.4-1.aix5.1.ppc.rpm
curl-7.53.1-1.aix5.1.ppc.rpm openldap-2.4.23-0.5.aix5.1.ppc.rpm
db4-4.8.30-1.aix5.1.ppc.rpm openssl-1.0.2k-1.aix5.1.ppc.rpm
expat-2.2.0-1.aix5.1.ppc.rpm pkg-config-0.29.1-1.aix5.1.ppc.rpm
fontconfig-2.12.1-1.aix5.1.ppc.rpm python-2.7.13-1.aix6.1.ppc.rpm
freetype2-2.7.1-1.aix5.1.ppc.rpm python-iniparse-0.4-1.aix5.1.noarch.rpm
gdbm-1.11-1.aix5.1.ppc.rpm python-libs-2.7.13-1.aix6.1.ppc.rpm
gettext-0.10.40-8.aix5.2.ppc.rpm python-pycurl-7.43.0-1.aix6.1.ppc.rpm
glib2-2.34.3-1.aix5.1.ppc.rpm python-pysqlite-2.8.3-1.aix6.1.ppc.rpm
gmp-6.1.2-1.aix5.1.ppc.rpm python-urlgrabber-3.10.2-1.aix5.1.noarch.rpm
info-5.1-2.aix5.1.ppc.rpm readline-7.0-3.aix5.1.ppc.rpm
libXft-2.3.2-1.aix5.1.ppc.rpm sqlite-3.17.0-1.aix5.1.ppc.rpm
libXrender-0.9.10-1.aix6.1.ppc.rpm tcl-8.6.6-1.aix5.1.ppc.rpm
libffi-3.2.1-2.aix5.1.ppc.rpm tk-8.6.6-1.aix5.1.ppc.rpm
libgcc-4.9.4-1.aix7.2.ppc.rpm xz-libs-5.2.3-1.aix5.1.ppc.rpm
libiconv-1.15-1.aix5.1.ppc.rpm yum-3.4.3-1.aix5.1.noarch.rpm
libidn-1.33-1.aix5.1.ppc.rpm yum-metadata-parser-1.1.4-1.aix6.1.ppc.rpm
libpng-1.6.28-1.aix5.1.ppc.rpm zlib-1.2.4-2.aix5.1.ppc.rpm
libssh2-1.8.0-1.aix5.1.ppc.rpm
[root@prnim01]> rpm -Uhv $(ls libffi-* bzip2-* zlib-* libgcc-*)
libffi ##################################################
bzip2 ##################################################
zlib ##################################################
libgcc ##################################################
[root@prnim01]> rpm -Uhv $(ls readline-* openssl-* gettext-* bash-* info-*)
readline ##################################################
openssl ##################################################
gettext ##################################################
bash ##################################################
info ##################################################
[root@prnim01]> rpm -Uhv $(ls sqlite-* gdbm-* db4-*)
sqlite ##################################################
gdbm ##################################################
db4 ##################################################
[root@prnim01]> rpm -Uhv $(ls expat-* python-libs-* python-2.7*)
expat ##################################################
python-libs ##################################################
python ##################################################
[root@prnim01]> rpm -Uhv $(ls libiconv-* glib2-*)
libiconv ##################################################
glib2 ##################################################
[root@prnim01]> rpm -Uhv $(ls curl-* libssh2-* libidn-* pkg-config-*)
curl ##################################################
libssh2 ##################################################
libidn ##################################################
pkg-config ##################################################
[root@prnim01]> rpm -Uhv $(ls python-iniparse-* python-pysqlite-* python-urlgrabber-* python-pycurl-*)
python-iniparse ##################################################
python-pysqlite ##################################################
python-urlgrabber ##################################################
python-pycurl ##################################################
[root@prnim01]> rpm -Uhv $(ls libxml2-* xz-libs-*)
libxml2 ##################################################
[root@prnim01]> rpm -Uhv $(ls yum-3.4* yum-metadata-parser-*)
yum-metadata-parser ##################################################
yum ##################################################
Now you are ready to install packages using YUM (required internet connection, else create a local repository)
[root@prnim01]/opt/freeware/etc/yum/repos.d# cat perzl-org.repo
[perzl.org]
name=perzl.org_AIX_7.2
baseurl=ftp://www.oss4aix.org/compatible/aix72/
# alternatively instead of ftp:// you can also use http://
# baseurl=http://www.oss4aix.org/download/compatible/aix72/
enabled=1
gpgcheck=0
[root@prnim01]/opt/freeware/etc/yum/repos.d# yum -y install wget curl logrotate
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-3
gettext-0.10.40-8
info-5.1-2
zlib-1.2.4-2
readline-7.0-3
# installp -F -aYcN -d ./ rpm.rte
===== Force install of yum =====
In case of trouble
[root@nim]/mnt/yum-bundle-aix72# rpm --nodeps --ignoreos --ignorearch --noscripts --install yum-3.4.3-1.aix5.1.noarch.rpm
===== Yum from IBM =====
Now YUM package also available on Perzl : ftp://www.oss4aix.org/RPMS/yum/
Before starting, list current RPMs
[root@aix71]/software/ibm# rpm -qa
AIX-rpm-7.1.4.30-16
Solve the dependancy problem with **libintl.a**
[root@aix71]/software/ibm# rpm -Uhv python-2.7.12-2.aix6.1.ppc.rpm <
error: failed dependencies:
libintl.a(libintl.so.8) is needed by python-2.7.12-2
[root@aix71]/software/ibm# rpm -Uhv gettext-0.19.7-1.aix6.1.ppc.rpm
gettext ##################################################
add libintl.so.1 (32bits) shared member to /opt/freeware/lib/libintl.a
add libintl.so.1 (64bits) shared member to /opt/freeware/lib/libintl.a
Then install python and his dependancies
# rpm -Uhv python-2.7.12-2.aix6.1.ppc.rpm gdbm\-1.8.3\-5.aix5.2.ppc.rpm readline\-6.1\-2.aix6.1.ppc.rpm libffi\-3.0.12\-1.aix7.1.ppc.rpm expat\-2.2.0\-1.aix6.1.ppc.rpm db\-4.8.24\-
3.aix6.1.ppc.rpm libgcc\-6.3.0\-1.aix7.1.ppc.rpm ncurses\-6.0\-1.aix6.1.ppc.rpm sqlite\-3.15.2\-1.aix6.1.ppc.rpm libstdcplusplus\-6.3.0\-1.aix7.1.ppc.rpm
rpm -Uhv python\-iniparse\-0.4\-1.aix6.1.noarch.rpm pysqlite\-1.1.7\-2.aix6.1.ppc.rpm
rpm -Uhv glib2\-2.48.0\-1.aix6.1.ppc.rpm
rpm -Uhv python\-urlgrabber\-3.10.1\-1.aix6.1.noarch.rpm python\-pycurl\-7.19.3\-1.aix6.1.ppc.rpm curl\-7.54.1\-2.aix6.1.ppc.rpm ca\-certificates\-2016.10.7\-2.aix6.1.ppc.rpm
[root@aix71]/software/ibm# rpm -Uhv yum\-metadata\-parser\-1.1.4\-2.aix6.1.ppc.rpm
yum-metadata-parser ##################################################
[root@aix71]/software/ibm# rpm -Uhv yum\-3.4.3\-5.aix6.1.noarch.rpm
cannot get shared lock on database
rpmQuery: rpmdbOpen() failed
rpm_share: 0645-007 ATTENTION: set_time_token() returned an unexpected result.
cannot get shared lock on database
rpmQuery: rpmdbOpen() failed
You doesn't seems to have rpm.rte 4.9.1.3 or higher version.
Please update rpm.rte to latest version from ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/INSTALLP/ppc/
execution of yum-3.4.3-5 script failed, exit status 1
Now I need to download the latest rpm.rte AIX package from ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/INSTALLP/ppc/
Update bff package to **rpm.rte.4.9.1.3** using smit update_all
it may be necessary to reinstall them.
gettext-0.19.7-1
db-4.8.24-3
readline-6.1-2
[root@aix71]/software/ibm# rpm --force -ivh gettext-0.19.7-1.aix6.1.ppc.rpm
[root@aix71]/software/ibm# rpm --force -ivh db-4.8.24-3.aix6.1.ppc.rpm
[root@aix71]/software/ibm# rpm --force -ivh db-4.8.24-3.aix6.1.ppc.rpm
Now we are ready to install YUM:
[root@aix71]/software/ibm# rpm -Uhv yum-3.4.3-5.aix6.1.noarch.rpm
Yum is configured to download from IBM ftp site:
[root@aix71]/software/ibm# cat /opt/freeware/etc/yum/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
[AIX_Toolbox]
name=AIX generic repository
baseurl=https://anonymous:anonymous@public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/
enabled=1
gpgcheck=0
[AIX_Toolbox_noarch]
name=AIX noarch repository
baseurl=https://anonymous:anonymous@public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/noarch/
enabled=1
gpgcheck=0
[AIX_Toolbox_71]
name=AIX 7.1 specific repository
baseurl=https://anonymous:anonymous@public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc-7.1/
enabled=1
gpgcheck=0
===== Local repository =====
If no internet connexion is available, you have to create a repository that contain all packages. This directory can then be accessed using:
local directories
http/https
ftp
nfs...
To change to local directories, you have to install an additionnal package: **createrepo**
[root@aix71]/software/ibm# rpm -Uhv createrepo-0.10.3-2.aix6.1.noarch.rpm libxml2\-python\-2.9.4\-1.aix6.1.ppc.rpm python\-deltarpm\-3.6\-1.aix6.1.ppc.rpm xz\-5.2.2\-1.aix6.1.ppc.rpm xz\-libs\-5.2.2\-1.aix
6.1.ppc.rpm libxml2\-2.9.4\-1.aix6.1.ppc.rpm deltarpm\-3.6\-1.aix6.1.ppc.rpm bash\-4.3.30\-1.aix6.1.ppc.rpm
Then download all RPMs into folders
Ex:
[root@aix71]/software/ibm/RPMS# ls
noarch ppc ppc-6.1 ppc-7.1 ppc-7.2
Create a repository into each folder with **createrepo** like:
/usr/bin/createrepo /software/ibm/RPMS/norarch
Update Yum config and test
[root@aix71]/software/ibm# cat /opt/freeware/etc/yum/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
[AIX_Toolbox]
name=AIX generic repository
baseurl=file:///software/ibm/RPMS/ppc
enabled=1
gpgcheck=0
[AIX_Toolbox_noarch]
name=AIX noarch repository
baseurl=file:///software/ibm/RPMS/noarch
enabled=1
gpgcheck=0
[AIX_Toolbox_71]
name=AIX 7.1 specific repository
baseurl=file:///software/ibm/RPMS/ppc-7.1
enabled=1
gpgcheck=0
[root@aix71]/software/ibm/RPMS# yum install coreutils
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package coreutils.ppc 0:8.25-1 will be installed
--> Processing Dependency: gmp >= 4.3.2 for package: coreutils-8.25-1.ppc
--> Processing Dependency: libgmp.a(libgmp.so.10) for package: coreutils-8.25-1.ppc
--> Processing Dependency: info for package: coreutils-8.25-1.ppc
--> Running transaction check
---> Package gmp.ppc 0:5.1.3-2 will be installed
---> Package info.ppc 0:4.6-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
coreutils ppc 8.25-1 AIX_Toolbox 8.2 M
Installing for dependencies:
gmp ppc 5.1.3-2 AIX_Toolbox 1.0 M
info ppc 4.6-1 AIX_Toolbox 163 k
...
Installed:
coreutils.ppc 0:8.25-1
Dependency Installed:
gmp.ppc 0:5.1.3-2 info.ppc 0:4.6-1
Complete!
List installed packages and repository:
[root@aix71]/software/ibm# yum list installed
Installed Packages
AIX-rpm.ppc 7.2.4.1-15 installed
apr.ppc 1.5.2-1 installed
apr-util.ppc 1.5.4-1 installed
atk.ppc 2.20.0-3 @IBM_AIX_7.2_08-2020
bash.ppc 5.0-1 @IBM_AIX_7.2_08-2020
bzip2.ppc 1.0.8-2 @IBM_AIX_7.2_08-2020
fontconfig.ppc 2.12.6-2 @perzl.org
freetype2.ppc 2.9-1 @perzl.org
===== Error on install =====
If python-libs is installed, uninstall it.
On YUM folder yum:
./install_yum.sh
into the folder aix72:
ATTENTION libgcc is for specific version of AIX 7.1 or 7.2
rpm -Uhv libgcc\-8.3.0\-2.aix7.2.ppc.rpm libstdcplusplus\-8.3.0\-2.aix7.2.ppc.rpm
rpm -Uhv zlib\-1.2.11\-1.aix6.1.ppc.rpm xz\-libs\-5.2.5\-1.aix6.1.ppc.rpm
rpm -Uhv gettext\-0.19.8.1\-5.aix6.1.ppc.rpm libiconv\-1.16\-1.aix6.1.ppc.rpm ncurses\-6.2\-1.aix6.1.ppc.rpm libxml2\-2.9.9\-1.aix6.1.ppc.rpm libunistring\-0.9.9\-2.aix6.1.ppc.rpm glib2\-2.56.1\-2.aix6.1.ppc.rpm libffi\-3.2.1\-3.aix6.1.ppc.rpm
then: yum update
=== Cause ===
This is due to conflicting libraries.
First we can examine the library listed in the error:
# ar -X32_64 -tv /opt/freeware/lib/libintl.a | grep libintl
rwxr-xr-x 203/1 114582 Jan 04 14:38 2008 libintl.so.1
rwxr-xr-x 203/1 130986 Jan 04 14:40 2008 libintl.so.1
Now, let's examine the libintl.a from rpm.rte:
# ar -X32_64 -tv /usr/opt/rpm/lib/libintl.a
rwxr-xr-x 0/0 86741 Jun 02 08:56 2016 libintl.so.8
rwxr-xr-x 0/0 94425 Jun 02 08:50 2016 libintl.so.8
rwxr-xr-x 0/0 114582 Apr 06 13:53 2017 libintl.so.1
rwxr-xr-x 0/0 130986 Apr 06 13:53 2017 libintl.so.1
Now we can determine what provided this problematic libintl.a:
# rpm -q --whatprovides /opt/freeware/lib/libintl.a
gettext-0.19.8.1-1.ppc (current Toolbox version)
This occurs in a specific scenario where the gettext - 0.19.7-1 rpm was installed when rpm.rte 3.0.5 was installed. Later, rpm.rte was updated to 4.13.0.n which provided a libintl.a with libintl.so.8.
The gettext-0.19.7-1 rpm had a post-uninstall script which backed up libintl.a (from rpm.rte 3.0.5 which only has libintl.so.1) and during gettext upgrade, (say to gettext 0.19.8.1-1 ), the post-uninstall script of gettext-0.19.7-1 ran at the end, reverting back to the saved libintl.a which creates this issue.
=== Answer ===
This issue was fixed in gettext 0.19.8.1-2 release where the backed-up libintl.a was removed, so it cannot replace the latest libintl.a file.
===== DNF error on AIX 7.3 =====
# updtvpkg
warning: Found bdb_ro Packages database while attempting sqlite backend: using bdb_ro backend.
Convert the db from bdb_ro to sqlite before running updtvpkg
# rpmdb -–rebuilddb
https://www.ibm.com/support/pages/node/7113626