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
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 Yum errors
Install minimum packages
yum -y install bash bzip2 grep sed logrotate lpar2rrd-agent rsync zip unzip sudo coreutils
[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"
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
[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
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
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 ...
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
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.
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
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.
[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
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.
[root@aix39] /mnt/rpms_ibm/aix/yum> rpm -e openssl warning: file /usr/linux/bin/c_rehash: remove failed: No such file or directory
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)
Bad version of openssl
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.
[root@aix39] /mnt/rpms_ibm/aix/aix72> rpm -Uhv xz\-libs\-5.2.5\-1.aix6.1.ppc.rpm
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]
[root@aix05] /mnt/aix/aix72> rpm -Uhv curl\-7.76.1\-1.aix6.1.ppc.rpm
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.
[root@aix05] /mnt/aix/aix72> rpm --force -i bzip2\-1.0.8\-2.aix6.1.ppc.rpm
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
[root@aix05] /root> rpm -e freetype2 fontconfig libXft
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/
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:/:
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
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
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
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
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
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.
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.
# 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