User Tools

Site Tools


aix:aix_yum_install

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 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

aix/aix_yum_install.txt · Last modified: 2024/04/19 11:38 by manu