IBM Support

AIX: Old Open Source RPM Packages Clean-Up then use Yum

How To


Summary

This AIXpert Blog covers cleaning out my old "home" AIX virtual machine, which has problems with RPM prerequisites. The problem makes adding new RPM packages impossible. The problem is probably due to using RPM packages from difference source over a number of years. The clean up involves removing most RPM packages and starting again from a clean sheet. Final, we use only RPM packages from the AIX Open Source Toolbox and Yum to manage the RPM packages and automatically handle prerequisites.

Objective

Nigels Banner

Environment


Before you start take a backup, or take a AIX JFS2 snapshot, or take a disk snapshot so you can recover from any problems.

Steps


Update

My AIX "home" system has been around for well over a decade and had a lot of abuse with experiments in open source tools and been upgrade from AIX 5 to AIX 6 to AIX 7.1 to AIX 7.2.  Open Source RPMs have been used from several places (IBM, Bull, perzl.org and others) and there has been know problems in the dependencies.  There are problems installing new RPM packages due to dependencies mismatches = I can't add a package as yum wants to add other packages due to dependencies that clash with installed software.  So I can't go forward.  There are problems erasing packages, as so many packages rely on them and I am worried about breaking running tools. So I can't go back.
I was told by one of the AIX Open Source Toolbox developers - if all else fails "remove all the RPMs and start again!" Warning: I think that is an over simplification - read this article before you start. 

This article is about my experience on my AIX server - your mileage may vary.
You will have different sets of RPM packages and may encounter different issues.
Please, share your experience with me but I can't offer comprehensive support.

Warning: This method involves:
  1. Stopping any open source applications that you have installed.
  2. Removing the installed RPM packages - except one.
  3. Updating AIX to the current latest level to remove older problematic code.
  4. Installing the Yum Bundle to make installing AIX Open Source Toolbox RPMs very fast and simple.
  5. Reinstalling your AIX open source application and, if required, setting them up again.
  6. In the future, only use packages from the AIX Open Source Toolbox website.
If that is not an option, for you, then "good luck" trying some other method. 
Perhaps, you can start with a 100% new AIX 7.2 (latest Technology Level and Service pack) and moving your code and data over by hand.

How did I get here?
  1. I can't remember where many of the RPM packages initial came from - not a good position.
  2. I recall problems sometimes and having to "force" the install a few packages.
  3. I think I copied some program files to this server. Probably, to the wrong directory.
  4. Some packages I know are out of date but they will not upgrade.
  5. Some packages I am sure I don't need (these were experiments) but can't be sure.
  6. I would like to clean up and simplify.
  7. I would like access to many new open source applications and tools.
  8. All of this requires the use of the root user BE CAREFUL.
  9. Warning: I had X Windows System xterm sessions to the old VM and the new cloned VM. BE CAREFUL not to mix the X Windows System up - I nearly destroyed the older working one.
If I started again what would I use?
In the last few years, IBM has greatly improved the AIX Open Source Toolbox and now has Yum for AIX - which sorts out those dependencies automatically.
AIX Open Source Toolbox
Phase 1 - Evaluate what I have
Currently:
$ oslevel -s
7200-02-02-1832
$ 
And the AIX Open Source packages look like this:
# rpm-qa | sort
AIX-rpm-7.2.1.2-6.ppc
apr-1.4.5-1.ppc
apr-util-1.3.12-1.ppc
apr-util-ldap-1.3.12-1.ppc
atk-1.32.0-1.ppc
bash-4.0-2.ppc
bzip2-1.0.5-1.ppc
cairo-1.12.14-1.ppc
curl-7.19.7-1.ppc
db4-4.7.25-2.ppc
dejavu-lgc-sans-mono-fonts-2.33-1.noarch
dejavu-sans-mono-fonts-2.33-1.noarch
expat-2.1.0-1.ppc
expect-5.42.1-3.ppc
figlet-2.2.5-1.ppc
findutils-4.4.2-2.ppc
firefox-2.0.0.20-1.ppc
fontconfig-2.8.0-2.ppc
freetype2-2.5.0-1.ppc
gawk-3.1.3-1.ppc
gd-2.0.35-4.ppc
gdbm-1.10-1.ppc
gettext-0.17-1.ppc
glib-1.2.10-3.ppc
glib2-2.34.3-1.ppc
gtk+-1.2.10-5.ppc
gtk2-2.20.1-2.ppc
httpd-2.2.19-1.ppc
info-4.13a-2.ppc
jasper-1.900.1-2.ppc
jbigkit-libs-2.0-2.ppc
libXpm-3.5.8-2.ppc
libXrender-0.9.7-2.ppc
libart_lgpl-2.3.21-1.ppc
libcroco-0.6.5-1.ppc
libdatrie-0.2.4-1.ppc
libdbi-0.8.4-1.ppc
libffi-3.0.13-1.ppc
libgcc-4.8.1-1.ppc
libiconv-1.14-3.ppc
libidn-1.26-1.ppc
libjpeg-9-1.ppc
libpng-1.6.2-1.ppc
librsvg2-2.34.2-1.ppc
libssh2-1.2.7-1.ppc
libthai-0.1.18-1.ppc
libtiff-4.0.3-1.ppc
libxcb-1.7-1.ppc
libxml2-2.9.1-1.ppc
lzo-2.06-1.ppc
m4-1.4.1-1.ppc
mod_perl-2.0.4-1.ppc
nimon-61-0.ppc
openldap-2.4.23-0.2.ppc
openssl-1.0.1e-2.ppc
pango-1.24.5-1.ppc
pcre-8.12-1.ppc
perl-5.8.8-2.ppc
php-5.3.6-1.ppc
php-common-5.3.6-1.ppc
pixman-0.28.2-1.ppc
pkg-config-0.25-2.ppc
readline-6.2-2.ppc
rrdtool-1.4.8-2.ppc
sqlite-3.6.17-1.ppc
t1lib-5.1.2-1.ppc
tcl-8.4.7-3.ppc
tk-8.4.7-3.ppc
unzip-6.0-2.ppc
vnc-3.3.3r2-6.ppc
wget-1.14-2.ppc
xcursor-1.1.7-3.ppc
xft-2.1.6-5.ppc
xorg-compat-aix-1.0-1.ppc
xz-libs-5.0.4-1.ppc
zlib-1.2.5-1.ppc
That is 75 RPMs - I don't honestly remember half of them. Many packages must be prerequisites.
Now the blunt reality - this includes a lot of crufty builds up. Crufty is the fluff, crumbs and grit that builds in a pocket of an old pair of trousers or jacket. No one is really sure where is comes from but occasionally it is annoying and needs to be regularly cleaned out.
Phase 2 - Which RPMs are important to me?
Review:
  • Web server: Some RPM packages are important - like Apache web-server (httpd) that is running an old version to run a PHP based wiki website. I should have upgraded that years ago. We also need PHP for Apache. More on that later.
  • Compress like tools: gzip, zip and unzip are important.
  • Editing: vim - better than the AIX vi.
  • Internet tools: Could not live without wget and curl.
  • Removte X Windows: VNC is used all day long.
  • Then there are some packages that are now in AIX like openssh/openssl and Perl. So the clean up is a good idea.
  • Some RPM packages were good in their day like rrdtool but now (in my humble opinion) look rather silly compared to InfluxDB and Grafana and similar tools. So rrdtool can go.
Phase 3 - Which RPM packages we must NOT erase?
If you have installed a fresh copy of AIX 7.2 TL4 and immediately check the RPMs installed, you will find this list:
 
# rpm -qa
tcl-8.4.7-3.ppc
expect-5.42.1-3.ppc
AIX-rpm-7.2.4.0-1.ppc
tk-8.4.7-3.ppc
# 
We could assume that we can erase (rpm -e) all the other RPM packages. This is true.
If we are installing the Yum Bundle RPMs then we can go down to one package = AIX-rpm.
If we erase AIX-rpm the package the rpm will not work. That is a total dead end.
Do NOT erase the AIX-rpm RPM packages.
Phase 4 - Make a parachute or two!
  1. Do NOT try this clean up on an important server without testing it first on a clone. This is where AIX NIM is excellent but there are other options.
  2. Back up twice. At least once with an mksysb on your NIM server. Perhaps, use an alternative disk upgrade so you have spare disks to fall back too and get out of a problem.
  3. If possible, snapshot your disks. I used the VIOS Shared Storage Pool and save the disks before, during and then after the update. I had to roll back the disks many times to find the simplest clean out solution.
  4. Save all settings for the RPM packages that you are about to erase: for me Apache PHP and VNC
  5. Warning: When you erase some packages they will remove any standard directories so for example your Apache "httpd.conf" configuration file with 100's of settings will disappear and you may need those settings.  If you have an online way to read the "before" backup then it can save a lot of time.
  6. Also make sure your application data is NOT in the directory structure of the code or it can get deleted too. Typically, on AIX the Open Source application go in /opt/freeware but some files may be in /var, /usr and /etc
Phase 5 - Take a look around
Take a look around the AIX directories where you might have place extra binary program files like:
  • /usr/bin - Most commands are here but many are symbolic links to other places
  • /user/sbin - root/super-user only commands go here
  • /usr/lbin - AIX normal place for system administration added commands and "local" scripts
  • /usr/local/bin - Linux normal place for system administration added commands/scripts. But created on AIX.
  • /usr/lib - Normal place for libraries and the bulk are symbolic link to other places/ Many have two level of links.
I was guilty on this one.  I move binaries program filesbetween AIX servers rather than install RPM packages. Foe example, zip and unzip. So I might have erase and install a new RPM but actually be using by binary program files from the list in $PATH that is totally unrelated to the new fresh code. This can be very confusing.
Phase 6 - Get yourself the Yum Bundle and prepare for a AIX update
Browse to https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/ and download the latest yum bundle .tar file.
At the time of writing this "yum_bundle_v5.tar"
I have this ready on my NFS server.
I am also going to update to the latest AIX, so I have downloaded all the updates and dependencies available for my AIX 7.2 to my NFS server. The current latest is AIX 7.2 TL4 sp2 and that is about 8 GB of files.
Phase 7 - Close down services
In my case, Apache and VNC but you might have other services running.  While it might be interesting or even fun to be running Apache, while you erase all the files, it might cause problems with the service and problems with the erasing programs that are in use.
Then save the latest data and configuration files for these open source applications.
Phase 8 - Check if the Yum Bundle installs
If you can get the Yum Bundle RPM packages installed then your job may be done:
  1. Check "rpm -qa" works.
  2. Check with yum adding a small RPM package and then erase it.
  3. Run yum update - to freshen up your versions.
  4. Be careful that newer software makes use of your old configuration files - large upgrade might need the config files reworked.
  5. Try removing RPM packages, you don't need.
If these all work the you, do not need to read further.
I tried to install the Yum bundle 5 RPM packages. In my case the install was expected to fail. It is one of the main problems that needs fixing by this clean up.:
# rpm -Uvh *.rpm
error: Failed dependencies:
        libgio-2.0.a(libgio-2.0.so.0) is needed by (installed) gtk2-2.20.1-2.ppc
        libgio-2.0.a(libgio-2.0.so.0) is needed by (installed) librsvg2-2.34.2-1.ppc
        glib2 >= 2.17.3 is needed by (installed) pango-1.24.5-1.ppc
        glib2 >= 2.22.5 is needed by (installed) cairo-1.12.14-1.ppc
        glib2 >= 2.24.2-1 is needed by (installed) gtk2-2.20.1-2.ppc
        glib2 >= 2.22.5 is needed by (installed) librsvg2-2.34.2-1.ppc
        glib2 >= 2.22.5 is needed by (installed) atk-1.32.0-1.ppc
        glib2 >= 2.22.5 is needed by (installed) rrdtool-1.4.8-2.ppc
        libreadline.a(libreadline.so.5) is needed by (installed) pcre-8.12-1.ppc
This means I am stuck. I can't got forward and can't go back. I need to clean up the old RPMs and start from a clean sheet.
Phase 9 - Clear your schedule
Don't do this clean up, when you can get distracted, take telephone calls, attend meetings or virtual conferences.
Missing a single step, might mean starting from scratch.
Phase 10a - Clean up: save files for later
Note: the current rpm command versions (yours might be different if you are starting at a different AIX level):
#  lslpp -L | grep rpm.rte
  rpm.rte                   4.13.0.3    C     F    RPM Package Manager

# rpm -qa | grep AIX
AIX-rpm-7.2.1.2-6.ppc
It is useful to have a list of all the files before you change anything for later, when some go missing:
# find / >/tmp/files
For later use (if you need it), find the files for libdb.so and save a copy:
# ls -l /usr/lib/libdb.so
lrwxrwxrwx    1 root   system      31 May 22 14:07 /usr/lib/libdb.so -> ../../opt/freeware/lib/libdb.so
# ls -l /opt/freeware/lib/libdb.so
lrwxrwxrwx    1 root   system      34 May 22 14:08 /opt/freeware/lib/libdb.so -> /usr/opt/freeware/lib/libdb-4.8.so
# ls -l /usr/opt/freeware/lib/libdb-4.8.so
-rwxr-xr-x    1 root   system 2518523 Jul 08 2017  /usr/opt/freeware/lib/libdb-4.8.so
So /usr/lib/libdb.so is a link ->
     /opt/freeware/lib/libdb.so is a link -> 
     /usr/opt/freeware/lib/libdb-4.8.so = the real file 
     
Save a copy in /tmp
# cp /usr/opt/freeware/lib/libdb-4.8.so /tmp
For later use, find the files for libintl.so and save a copy:
# ls -l /usr/lib/libintl.a
lrwxrwxrwx    1 root   system      32 May 22 14:06 /usr/lib/libintl.a -> ../../opt/freeware/lib/libintl.a
# ls -ltr /opt/freeware/lib/libintl.a
-rwxr-xr-x    1 root   system  441267 Jul 08 2017  /opt/freeware/lib/libintl.a
So /usr/lib/libintl.a -> /opt/freeware/lib/libintl.a
Save a copy to /tmp:
# cp /opt/freeware/lib/libintl.a /tmp
For later use, find the files for install-info program and save a copy:
# ls -l /sbin/install-info
lrwxrwxrwx    1 root   system      32 May 22 14:09 /sbin/install-info -> ../opt/freeware/bin/install-info
# ls -l /opt/freeware/bin/install-info
-rwxr-xr-x    1 root   system   26376 Jul 08 2017  /opt/freeware/bin/install-info
Note this is a program with read execute permissions
 
Save a copy to /tmp:
# cp /opt/freeware/bin/install-info /tmp
Just in case, save a copy of the links:
ls -l /usr/lib | grep -- "->" >/tmp/usrlib.out
ls -l /opt/freeware/lib | grep -- "->" >/tmp/optfreewarelib.out
ls -l /usr/opt/freeware/lib | grep -- "->" >/tmp/usroptfreewarelib.out
Phase 10b - Clean up: try removing RPMs
We want to avoid the AIX-rpm RPM package needed for AIX.
The command below takes the output from "rpm -qa" removes the AIX.rpm package name and hands the resulting list to rpm for erasure.
This in my case was expected to fail, that is, it is one of the problems I am trying to clean up.
rpm -e $(rpm -qa | grep -v ^AIX-rpm- )

error: Failed dependencies:
        bzip2 is needed by (installed) AIX-rpm-7.2.1.2-6.ppc
        gettext is needed by (installed) AIX-rpm-7.2.1.2-6.ppc
        info is needed by (installed) AIX-rpm-7.2.1.2-6.ppc
        readline is needed by (installed) AIX-rpm-7.2.1.2-6.ppc
        zlib is needed by (installed) AIX-rpm-7.2.1.2-6.ppc
This failure is expected.
I think it is due to the old AIX-rpm RPM package and rpm.rte LPP (part of AIX, LPP = Licensed Program Product) having prerequisites that an updated version does not.
Note: If I try to "rpm -e" with avoiding "AIX-rpm" and these 5 packages, then you get yet more dependent packages. In the end, I had 12 packages that I could not erase.
Later versions of AIX.rpm, do not have these prerequisites.
Phase 10c - Upgrade AIX
Next we have to update this old AIX-rpm package.  As far as I can find out AIX-rpm comes with AIX. My AIX-rpm package is from AIX 7.2 TL2 from 2017. A time when we had lots of churn in the RPM packages repositories and inconsistency in preequisites.
I downloaded the current best AIX updates from IBM FixCentral website, at the time of writing this was AIX 7.1 TL4 sp2
Then I installed the AIX updates:
smitty update_all
I assume you know how to do this.
Once completed, I rebooted AIX.
Phase 10d - Check the new package levels
Check the update worked and the rpm command level:
# oslevel -s
7200-04-02-2028
#
#  lslpp -L | grep rpm.rte
  rpm.rte                   4.13.0.11    C     F    RPM Package Manager
# 
# rpm -qa | grep AIX
AIX-rpm-7.2.2.15-7.ppc
Note: both "rpm.rte" and "AIX.rpm" packages are at a higher level after the AIX update.
Remove all RPM packages except the AIX-rpm, this time is works:
# rpm -e $(rpm -qa | sort | grep -v ^AIX-rpm- )
/var/tmp/rpm-tmp.T3sMec[2]: /sbin/install-info:  not found.
This is GOOD but the "install-info" program is messed up.
Probably removed when the "info" RPM package was erases.
Fixing up our system - let us check the install-info state:
# ls -ltr /sbin/install-info /opt/freeware/bin/install-info
ls: 0653-341 The file /sbin/install-info does not exist.
ls: 0653-341 The file /opt/freeware/bin/install-info does not exist.

Note: if you don't get this issue and find these two files do exist then you do not have this problem.
You can skip to Checking the libintl.a section.

Fixing install-info:
# cp /tmp/install-info /opt/freeware/bin/install-info
# ln -s /opt/freeware/bin/install-info /sbin/install-info
# chmod ugo+rx /sbin/install-info /opt/freeware/bin/install-info
Note: install-info is a binary program files and you need that "chmod" command to give execute access.
Checking the libintl.a section
If you try rpm and yum commands you may get warning about libintl.a and then will have to try undoing the damage.
Let us check libintl.a them BEFORE you hit errors:
# ls -l /usr/lib/libintl.a
 ls: 0653-341 The file /usr/lib/libintl.a does not exist.

Note: if you don't get this issue and found the file do exist you then do not have this problem.
You can skip to Phase 10e.

If the /usr/lib/libintl.a was not exist, follow these commands to fix it:
# ls -l /usr/opt/rpm/lib/libintl.a
-rwxr-xr-x    1 root     system       441267 Jun 09 2018  /usr/opt/rpm/lib/libintl.a
# ln -s /usr/opt/rpm/lib/libintl.a /usr/lib/intl.a
# rm -f /opt/freeware/lib/libintl.a
# cp /usr/opt/rpm/lib/libintl.a   /opt/freeware/lib/libintl.a
Warning: follow this last line fix exactly! I found using a link did not work.

Phase 10e - Now we add the Yum bundle packages
Now it is time to install the Yum Bundle, so we can use Yum to install packages and automatically install the prerequesites.
You downloaded the Yum Bundle 5 earlier - extract the files:
tar xvf yum_bundle_v5.tar
The Yum Bundle 5 contains:
ca-certificates-2016.10.7-2.aix6.1.ppc.rpm    python-iniparse-0.4-1.aix6.1.noarch.rpm
curl-7.52.1-1.aix6.1.ppc.rpm                  python-pycurl-7.19.3-1.aix6.1.ppc.rpm
db-4.8.24-3.aix6.1.ppc.rpm                    python-tools-2.7.10-1.aix6.1.ppc.rpm
gdbm-1.8.3-5.aix5.2.ppc.rpm                   python-urlgrabber-3.10.1-1.aix6.1.noarch.rpm
gettext-0.19.7-1.aix6.1.ppc.rpm               readline-6.1-2.aix6.1.ppc.rpm
glib2-2.14.6-2.aix5.2.ppc.rpm                 sqlite-3.15.2-1.aix6.1.ppc.rpm
pysqlite-1.1.7-2.aix6.1.ppc.rpm               yum-3.4.3-7.aix6.1.noarch.rpm
python-2.7.10-1.aix6.1.ppc.rpm                yum-metadata-parser-1.1.4-2.aix6.1.ppc.rpm
python-devel-2.7.10-1.aix6.1.ppc.rpm
Optionally, test installing one package. 
If this works then you can install the Yum bundle packages in one go.
rpm -Uvh  readline*.rpm
rpm -e readline
If this did not work cleanly (no errors) then you have to fix those errors before continuing.

Just install the Yum Bundle all at one time:
# rpm -Uvh *.rpm                                              
Preparing...                          ################################# [100%]
Updating / installing...
   1:readline-6.1-2                   ################################# [  6%]
   2:sqlite-3.15.2-1                  ################################# [ 12%]
/
   3:gettext-0.19.7-1                 ################################# [ 18%]
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
/
   4:glib2-2.14.6-2                   ################################# [ 24%]
   5:yum-metadata-parser-1.1.4-2      ################################# [ 29%]
   6:gdbm-1.8.3-5                     ################################# [ 35%]
   7:db-4.8.24-3                      ################################# [ 41%]
   8:python-2.7.10-1                  ################################# [ 47%]
   9:pysqlite-1.1.7-2                 ################################# [ 53%]
  10:python-iniparse-0.4-1            ################################# [ 59%]
  11:ca-certificates-2016.10.7-2      ################################# [ 65%]
  12:curl-7.52.1-1                    ################################# [ 71%]
  13:python-pycurl-7.19.3-1           ################################# [ 76%]
  14:python-urlgrabber-3.10.1-1       ################################# [ 82%]
  15:yum-3.4.3-7                      ################################# [ 88%]
  16:python-devel-2.7.10-1            ################################# [ 94%]
  17:python-tools-2.7.10-1            ################################# [100%]

Note: those "add libintl.so.1" lines after "gettext" are normal informational messages and not a problem.

Phase 10f - Test rpm and Yum 
First, we test rpm:
# rpm -qa
AIX-rpm-7.2.2.15-7.ppc
sqlite-3.15.2-1.ppc
glib2-2.14.6-2.ppc
gdbm-1.8.3-5.ppc
python-2.7.10-1.ppc
python-iniparse-0.4-1.noarch
curl-7.52.1-1.ppc
python-urlgrabber-3.10.1-1.noarch
python-devel-2.7.10-1.ppc
readline-6.1-2.ppc
gettext-0.19.7-1.ppc
yum-metadata-parser-1.1.4-2.ppc
db-4.8.24-3.ppc
pysqlite-1.1.7-2.ppc
ca-certificates-2016.10.7-2.ppc
python-pycurl-7.19.3-1.ppc
yum-3.4.3-7.noarch
python-tools-2.7.10-1.ppc
Next, we use Yum to update all the packages we installed with Yum. I think there is a lot of updates as the Yum Bundle 5 RPM packages are really a "starter pack" and a bit out of date.  The update requires you to type "y" an can take a few minutes to download and install the packages. 33 packages in my case
# yum update
AIX_Toolbox                                                                                      | 2.9 kB  00:00:00     
AIX_Toolbox/primary_db                                                                           | 1.6 MB  00:00:01     
AIX_Toolbox_72                                                                                   | 2.9 kB  00:00:00     
AIX_Toolbox_72/primary_db                                                                        |  88 kB  00:00:00     
AIX_Toolbox_noarch                                                                               | 2.9 kB  00:00:00     
AIX_Toolbox_noarch/primary_db                                                                    |  89 kB  00:00:00     
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package ca-certificates.ppc 0:2016.10.7-2 will be updated
---> Package ca-certificates.ppc 0:2019.01.10-2 will be an update
--> Processing Dependency: p11-kit-tools >= 0.23.16-1 for package: ca-certificates-2019.01.10-2.ppc
---> Package curl.ppc 0:7.52.1-1 will be updated
---> Package curl.ppc 0:7.67.0-2 will be an update
--> Processing Dependency: libgcc >= 8.3.0-1 for package: curl-7.67.0-2.ppc
--> Processing Dependency: openldap >= 2.4.45-1 for package: curl-7.67.0-2.ppc
--> Processing Dependency: libssh2 >= 1.8.0-3 for package: curl-7.67.0-2.ppc
--> Processing Dependency: krb5-libs >= 1.16.1-4 for package: curl-7.67.0-2.ppc
--> Processing Dependency: libssh2.a(libssh2.so.1) for package: curl-7.67.0-2.ppc
--> Processing Dependency: libcom_err.so for package: curl-7.67.0-2.ppc
--> Processing Dependency: libk5crypto.so for package: curl-7.67.0-2.ppc
--> Processing Dependency: libkrb5.a(libkrb5.so) for package: curl-7.67.0-2.ppc
--> Processing Dependency: libgssapi_krb5.a(libgssapi_krb5.so) for package: curl-7.67.0-2.ppc
--> Processing Dependency: libldap.a(libldap-2.4.so.2) for package: curl-7.67.0-2.ppc
--> Processing Dependency: libgcc_s.a(shr.o) for package: curl-7.67.0-2.ppc
--> Processing Dependency: libcom_err.a(libcom_err.so) for package: curl-7.67.0-2.ppc
--> Processing Dependency: liblber.a(liblber-2.4.so.2) for package: curl-7.67.0-2.ppc
--> Processing Dependency: libkrb5.so for package: curl-7.67.0-2.ppc
--> Processing Dependency: libgssapi_krb5.so for package: curl-7.67.0-2.ppc
--> Processing Dependency: libk5crypto.a(libk5crypto.so) for package: curl-7.67.0-2.ppc
---> Package db.ppc 0:4.8.24-3 will be updated
---> Package db.ppc 0:6.2.38-2 will be an update
---> Package gdbm.ppc 0:1.8.3-5 will be updated
---> Package gdbm.ppc 0:1.18.1-1 will be an update
---> Package gettext.ppc 0:0.19.7-1 will be updated
---> Package gettext.ppc 0:0.19.8.1-5 will be an update
--> Processing Dependency: libunistring >= 0.9.9-2 for package: gettext-0.19.8.1-5.ppc
--> Processing Dependency: libxml2 >= 2.9.7 for package: gettext-0.19.8.1-5.ppc
--> Processing Dependency: libiconv >= 1.14 for package: gettext-0.19.8.1-5.ppc
--> Processing Dependency: ncurses >= 6.1-2 for package: gettext-0.19.8.1-5.ppc
--> Processing Dependency: libncurses.a(libncurses.so.6) for package: gettext-0.19.8.1-5.ppc
--> Processing Dependency: libiconv.a(libiconv.so.2) for package: gettext-0.19.8.1-5.ppc
--> Processing Dependency: libunistring.a(libunistring.so.2) for package: gettext-0.19.8.1-5.ppc
---> Package glib2.ppc 0:2.14.6-2 will be updated
---> Package glib2.ppc 0:2.56.1-2 will be an update
--> Processing Dependency: libffi >= 3.0.10-1 for package: glib2-2.56.1-2.ppc
--> Processing Dependency: libffi.a(libffi.so.6) for package: glib2-2.56.1-2.ppc
---> Package m4.ppc 0:1.4.1-1 will be updated
---> Package m4.ppc 0:1.4.17-1 will be an update
---> Package pysqlite.ppc 0:1.1.7-2 will be updated
---> Package pysqlite.ppc 0:2.8.3-2 will be an update
---> Package python.ppc 0:2.7.10-1 will be updated
---> Package python.ppc 0:2.7.18-1 will be an update
--> Processing Dependency: expat >= 2.2.9 for package: python-2.7.18-1.ppc
--> Processing Dependency: zlib >= 1.2.11 for package: python-2.7.18-1.ppc
--> Processing Dependency: libstdc++ >= 8.3.0 for package: python-2.7.18-1.ppc
--> Processing Dependency: bzip2 >= 1.0.8 for package: python-2.7.18-1.ppc
--> Processing Dependency: libexpat.a(libexpat.so.1) for package: python-2.7.18-1.ppc
--> Processing Dependency: libstdc++.a(libstdc++.so.6) for package: python-2.7.18-1.ppc
---> Package python-devel.ppc 0:2.7.10-1 will be updated
---> Package python-devel.ppc 0:2.7.18-1 will be an update
---> Package python-pycurl.ppc 0:7.19.3-1 will be updated
---> Package python-pycurl.ppc 0:7.43.0-1 will be an update
---> Package python-tools.ppc 0:2.7.10-1 will be updated
---> Package python-tools.ppc 0:2.7.18-1 will be an update
---> Package readline.ppc 0:6.1-2 will be updated
---> Package readline.ppc 0:8.0-2 will be an update
--> Processing Dependency: info >= 6.4 for package: readline-8.0-2.ppc
---> Package sqlite.ppc 0:3.15.2-1 will be updated
---> Package sqlite.ppc 0:3.32.1-1 will be an update
--> Running transaction check
---> Package bzip2.ppc 0:1.0.8-2 will be installed
---> Package expat.ppc 0:2.2.9-2 will be installed
---> Package info.ppc 0:6.6-2 will be installed
--> Processing Dependency: bash for package: info-6.6-2.ppc
---> Package krb5-libs.ppc 0:1.16.1-4 will be installed
---> Package libffi.ppc 0:3.2.1-3 will be installed
---> Package libgcc.ppc 0:8.3.0-2 will be installed
---> Package libiconv.ppc 0:1.16-1 will be installed
---> Package libssh2.ppc 0:1.9.0-1 will be installed
---> Package libstdc++.ppc 0:8.3.0-2 will be installed
---> Package libunistring.ppc 0:0.9.9-2 will be installed
---> Package libxml2.ppc 0:2.9.9-1 will be installed
--> Processing Dependency: xz-libs >= 5.2.2-1 for package: libxml2-2.9.9-1.ppc
--> Processing Dependency: liblzma.a(liblzma.so.5) for package: libxml2-2.9.9-1.ppc
---> Package ncurses.ppc 0:6.2-1 will be installed
---> Package openldap.ppc 0:2.4.48-1 will be installed
--> Processing Dependency: cyrus-sasl >= 2.1.26-2 for package: openldap-2.4.48-1.ppc
--> Processing Dependency: libsasl2.a for package: openldap-2.4.48-1.ppc
---> Package p11-kit-tools.ppc 0:0.23.16-1 will be installed
--> Processing Dependency: p11-kit = 0.23.16 for package: p11-kit-tools-0.23.16-1.ppc
--> Processing Dependency: libp11-kit.a(libp11-kit.so.0) for package: p11-kit-tools-0.23.16-1.ppc
---> Package zlib.ppc 0:1.2.11-1 will be installed
--> Running transaction check
---> Package bash.ppc 0:5.0-1 will be installed
---> Package cyrus-sasl.ppc 0:2.1.26-3 will be installed
---> Package p11-kit.ppc 0:0.23.16-1 will be installed
---> Package xz-libs.ppc 0:5.2.5-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================
 Package                      Arch             Version                      Repository                   Size
==============================================================================================================
Updating:
 ca-certificates              ppc              2019.01.10-2                 AIX_Toolbox                 924 k
 curl                         ppc              7.67.0-2                     AIX_Toolbox                 1.5 M
 db                           ppc              6.2.38-2                     AIX_Toolbox                  11 M
 gdbm                         ppc              1.18.1-1                     AIX_Toolbox                 278 k
 gettext                      ppc              0.19.8.1-5                   AIX_Toolbox                 7.6 M
 glib2                        ppc              2.56.1-2                     AIX_Toolbox                  28 M
 m4                           ppc              1.4.17-1                     AIX_Toolbox                 392 k
 pysqlite                     ppc              2.8.3-2                      AIX_Toolbox                 139 k
 python                       ppc              2.7.18-1                     AIX_Toolbox                  21 M
 python-devel                 ppc              2.7.18-1                     AIX_Toolbox                  16 k
 python-pycurl                ppc              7.43.0-1                     AIX_Toolbox                 243 k
 python-tools                 ppc              2.7.18-1                     AIX_Toolbox                  16 k
 readline                     ppc              8.0-2                        AIX_Toolbox                 2.4 M
 sqlite                       ppc              3.32.1-1                     AIX_Toolbox                 8.2 M
Installing for dependencies:
 bash                         ppc              5.0-1                        AIX_Toolbox                 3.1 M
 bzip2                        ppc              1.0.8-2                      AIX_Toolbox                 238 k
 cyrus-sasl                   ppc              2.1.26-3                     AIX_Toolbox                 910 k
 expat                        ppc              2.2.9-2                      AIX_Toolbox                 895 k
 info                         ppc              6.6-2                        AIX_Toolbox                 664 k
 krb5-libs                    ppc              1.16.1-4                     AIX_Toolbox                  11 M
 libffi                       ppc              3.2.1-3                      AIX_Toolbox                  47 k
 libgcc                       ppc              8.3.0-2                      AIX_Toolbox_72              977 k
 libiconv                     ppc              1.16-1                       AIX_Toolbox                 1.6 M
 libssh2                      ppc              1.9.0-1                      AIX_Toolbox                 963 k
 libstdc++                    ppc              8.3.0-2                      AIX_Toolbox_72               12 M
 libunistring                 ppc              0.9.9-2                      AIX_Toolbox                 1.5 M
 libxml2                      ppc              2.9.9-1                      AIX_Toolbox                 5.4 M
 ncurses                      ppc              6.2-1                        AIX_Toolbox                 3.5 M
 openldap                     ppc              2.4.48-1                     AIX_Toolbox                 4.2 M
 p11-kit                      ppc              0.23.16-1                    AIX_Toolbox                 2.1 M
 p11-kit-tools                ppc              0.23.16-1                    AIX_Toolbox                  38 k
 xz-libs                      ppc              5.2.5-1                      AIX_Toolbox                 540 k
 zlib                         ppc              1.2.11-1                     AIX_Toolbox                 174 k

Transaction Summary
==============================================================================================================
Install      19 Packages
Upgrade      14 Packages

Total download size: 131 M
Is this ok [y/N]: 
Of course, you type "y" and RETURN to update 33 packages with a size of 131 MBs of updates - output is not shown here.
Check the contents of the AIX Open Source Toolbox tools and applications that you can install:
  • You can browse the AIX Open Source Toolbox website or run
  • yum list
  • Warning that command delivers 800+ lines of output
These are my choices. Yours will be different.
yum install gzip
yum install zip
yum install unzip
yum install wget
yum install tightvnc-server
yum install php-fpm
yum install httpd
yum vim*
yum install python3.ppc  python3-requests  python3-argparse  python3-docs
Then I had to configure
  • VNC - actually worked first time. After the following issue was addressed: 
    "xterm" did not work after this update - no idea why. The fix is yet another symbolic link was missing:
    ln -s  /usr/lpp/X11/lib/R7/libXpm.a  /usr/lib/libXpm.a
  • Apache and PHP for Apache (httpd and php-fpm). 
    I have upgraded from Apache 2.2 to Apache 2.4. so there are some serious configuration files differences to work through before my web server is running again. The old Apache used PHP directly but the new Apache used the "php-fpm" package (PHP FastCGI Process Manager) and a much more complex configuration file.

Yum tips:

Note: If you run the yum command as a regular user (not root user), then the 20 lines of output is insane (IMHO), apart from the last line which says: "The file access permissions do not allow the specified action."  

  1. # yum list
    List output over 800 packages in the AIX Open Source Repository
  2. # yum search *vnc*
    Outputs Not found.  Hint: do not use the "*"
  3. # yum search vnc
    Outputs the three vnc packages
  4. # yum
    Output all the options = a few screens full
  5. # yum install python3
    DO NOT TRY THIS - it will install about 100 Python3 packages! Be more selective.
  6. # yum install python3.ppc python3-requests python3-argparse python3-docs
    Sensible minimum install of Python3
- - - - - The End - - - - -

Additional Information

Find more content from Nigel Griffiths (retired) here:

Document Location

Worldwide

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG10","label":"AIX"},"ARM Category":[{"code":"","label":""}],"Platform":[{"code":"PF002","label":"AIX"}],"Version":"All Versions","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
09 June 2023

UID

ibm11166338