Frequently Asked Questions - AIX Toolbox for Linux Applications

                           Updated Nov 17, 2016

Table of Contents

General

  1. Is there a mailing list?
  2. How do I report a bug?
  3. How do I request that a tool be added to the Toolbox?
  4. Why isn't my favorite tool in the Toolbox?
  5. Why aren't the tools in installp format?
  6. Many of these tools have been available on AIX for years. Why the Toolbox?
  7. Is there a list of known problems?
  8. How often will the contents of the Toolbox be updated?
  9. I requested an application a long time ago, and it still isn't in the
     Toolbox.  Why not?
 10. How does library versioning work in the AIX Toolbox?

RPM

  1. Why does rpm.rte take so long to install?
  2. Where can I find more information on using rpm?
  3. I have gtk+ installed but I can't link to it? Why not?
  4. I downloaded an RPM, but rpm won't install it. Why not?
  5. rpm won't install an RPM because it is missing a dependency. How do I
     find out how to resolve that dependency?
  6. I installed a shared library using installp, but RPM does not recognize
     that the support is installed. What do I do?
  7. How do I remove all of this stuff?
  8. What is the purpose of the AIX-rpm package that I see installed?
  9. I have AIX 5.2, but the rpm I want has "aix4.3.ppc" in the name.  Is
     there a version for 5.2?
 10. What's info?

  ------------------------------------------------------------------------

General

  1. Q:  Is there a mailing list?
     A:  There is no mailing list but there is a forum for AIX open source.
     https://www.ibm.com/developerworks/community/forums/html/forum?id=2eb0f36d-9534-471b-8b27-c21e6c5b9b2b&ps
     You may subscribe to the forum and you will get notifications.

  2. Q:  How do I report a bug?
     A:  You can report a bug or issue on the above AIX open source forum.
     Remember, the images are "as-is" so there is no guarantee that any given
     bug will be worked on.  If you have a suggested fix to your bug,
     or to any other bug on the list, feel free to post your solution.
     This increases the chance that the fix will be incorporated.

  3. Q:  How do I request that a tool be added to the Toolbox?
     A:  It is very similar to reporting a bug as above.
     Be forewarned, the Toolbox content is generally expanded with due
     cosideration and resource availability.
     Hence few such requests will be fulfilled.
     Better to use the Toolbox tools and build the packages that you desire.

  4. Q:  Why isn't my favorite tool in the Toolbox?
     A:  There are thousands of open source tools in the world.  The Toolbox is
     meant to provide a core set of some of the most common tools, particularly
     development tools and libraries plus a few other miscellaneous popular
     packages.  By providing core development tools, the Toolbox provides the
     infrastructure for users to build a wide variety of other open source
     packages that may be desired.

  5. Q:  Why aren't the tools in installp format?
     A:  RPM is a common packaging system on Linux platforms
     (though it is not on every Linux platform) and most popular open source
     projects are available as source RPMS (SRPMS), making it relatively
     straightforward to build new packages for the Toolbox.

  6. Q:  Many of these tools have been available on AIX for years. Why the
     Toolbox?
     A:  The Toolbox is provided as a convenience to AIX customers. Every
     The Toolbox provides common development tools which help customers
     build a wide variety of open source packages beyond what the
     Toolbox itself offers.

  7. Q:  Is there a list of known problems?
     A:  The reported bugs and issues are accessible via the forum page at
     https://www.ibm.com/developerworks/community/forums/html/forum?id=2eb0f36d-9534-471b-8b27-c21e6c5b9b2b&ps
     There are also some known problems listed in the README.

 8. Q:  How often will the contents of the Toolbox be updated?
     A:  The current plans are to update the packages once or twice a year.
     This also depends on how frequently a packages is getting updated in
     the community, if there is no new release of a package then it will not
     be updated. Also we will update selected packages for
     security vulnerability and hence sometimes for those packages update
     can be more than twice in a year.

 9. Q:  I requested an application a long time ago, and it still isn't in the
     Toolbox.  Why not?
     A:  Could be any number of reasons.  It could be a legal issue (the
     license may have problems, or there may be some suspect copyrights or
     potential patent infringements).  It could be a priority issue (e.g. an
     app that doesn't appear on major Linux distributions has much less value
     in what is, after all, a "Toolbox for Linux Applications"; or it may be
     functionally similar to something else already in AIX or the Toolbox).
     We encourage you to download such apps that you want yourself and build
     yourself a copy.  There is nothing special we do to build the images
     that could not be done outside of IBM on a system with the Toolbox.

 10. Q: How does library versioning work in the AIX Toolbox?
     A: (This is a technical question which may not be of interest to general
     users).  Due to some differences between linking on AIX and Linux, the
     creation of shared objects & shared libraries is handled a little
     differently.  In the AIX Toolbox, a shared object is created and then
     archived into a shared library.  (A shared library is simply an archive
     library with at least one shared object as a member).  So if you have a
     shared object named libfoo.so.0, in the AIX Toolbox you will find it inside
     the archive libfoo.a, and when linking and executing a binary, the
     necessary symbols will be found within that shared object, which is written
     as libfoo.a(libfoo.so.0).  Ideally, most updates of packages to new
     versions will be completely compatible with earlier versions.  When
     compatibility is preserved, the library version does not need to change;
     that way, something linked against an older libfoo.a(libfoo.so.0) will
     continue to execute cleanly with a newer libfoo.a(libfoo.so.0) when the
     example package updates to a newer version.
       Unfortunately, a package will occasionally break compatibility with older
     versions of its libraries.  When this happens, a problem arises: if you
     simply replace the old libfoo.so.0 in libfoo.a, older applications using
     the old version may stop working.  To get around this, the package creates
     a new version of the shared object, libfoo.so.1.  Now, newer applications
     can use the new version ".so.1", while older applications can continue
     using version ".so.0".  This works because the libfoo.a library is now
     created with both members inside.  But how do newly linked applications
     know which shared object member to use?  This is handled by setting the
     LOADONLY flag in the older shared object.  With this flag set, the object
     can continue to be loaded by applications that need it, but the linker will
     know to ignore this older object.  You can see whether the flag is set or
     not with the "dump -ov [filename]" command.  For info on changing the
     LOADONLY flag, see the manual page for the AIX "strip" command.  Some
     packages avoid this whole versioning issue by creating a completely new and
     separate package version.  For a real example, consider the "libxml"
     package and the "libxml2" package.  Because they are not compatible, a new
     package was created with a new archive name: libxml.a versus libxml2.a.
     Because the package used this approach, versioning of the original library
     was not needed.

RPM

  1. Q:  Why does rpm.rte take so long to install?
     A:  rpm generally handles dependencies between packages by
     auto-detecting shared library requirements. It uses its own database to
     determine the shared library support provided on the system. The
     /usr/sbin/updatevpg program is run at rpm.rte installation time to add
     information about shared libraries installed via installp into the RPM
     database. /usr/sbin/updtvpkg examines every file delivered by installp
     to determine if it provides shared library support and that can take
     quite a while on older systems or on systems where many installp
     packages have been installed.  See question #8 below for more in depth.

  2. Q:  Where can I find more information on using rpm?
     A:  For basic information, run rpm --help. For detailed information,
     particularly if you want to produce your own RPMs, the best source of
     information is the rpm home page, http://www.rpm.org.  Of particular
     interest is the useful book "Maximum RPM" by Edward Bailey, which can be
     found online at http://www.rpm.org/max-rpm/.

  3. Q:  I have gtk+ installed but I can't link to it? Why not?
     A:  gtk+ and several other libraries had to be built with run-time
     linking enabled. In order to link with libraries which have been built
     using run-time linking, specify the -brtl flag to the linker. In some
     Makefiles and configure steps, this is done by setting
     LDFLAGS="-Wl,-brtl". If a library is available with a .so extension
     rather than a .a extension, then it was built using run-time linking
     support. run-time linking techniques are generally used when
     dependencies between shared objects cannot be easily resolved at link
     time.

  4. Q:  I downloaded an RPM, but rpm won't install it. Why not?
     A:  It was probably corrupted during the download. Make sure that you
     downloaded it in binary form.

  5. Q:  rpm won't install an RPM because it is missing a dependency. How do
     I find out how to resolve that dependency?
     A:  There is an RPM search facility at http://rpmfind.net which can
     help you determine which package provides a particular file or shared
     library. But a better way is to install YUM on AIX from Toolbox.
     YUM automatically resolve package's dependencies and install the
     dependent packages with the requested package. To install YUM on AIX
     you can refer
     https://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/README-yum

  6. Q:  I installed a shared library using installp, but RPM does not
     recognize that the support is installed. What do I do?
     A:  Run /usr/sbin/updtvpkg.

  7. Q:  How do I remove all of this stuff?
     A:  Use the destroyRPMS script available on the FTP site.
     https://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/contrib/destroyRPMS
     It will remove all installed rpms, followed by rpm itself.  Or, to
     deinstall individual rpms, run "rpm -e ".

  8. Q:  What is the purpose of the AIX-rpm package that I see installed?
     A:  See also rpm question #1 above.  The "AIX-rpm" package doesn't actually
     install anything, and in general you can just ignore it (but DO NOT
     deinstall it!).  It is a "virtual package", created by /usr/sbin/updtvpkg
     when rpm.rte itself is installed.  It is also regenerated any time you
     rerun updtvpkg.  So what is it for?  Rpm keeps a database of every
     installed package and the files provided by each package.  However, rpm
     has no knowledge about the installp-format installed images, meaning it
     is not naturally aware of the files that make up the AIX operating system
     itself.  This presents a dependency problem: most binary rpm packages
     depend on basic AIX libraries like libc.a, but rpm is not aware that these
     libraries are available because they are not provided by any rpm package.
     AIX-rpm solves this problem.  The updtvpkg script scans all installed
     installp-format images for available shared libraries and shells, and then
     it creates the AIX-rpm package which tells rpm that these libraries are
     indeed available.  Thus, rpm thinks that AIX-rpm provides libc.a, though
     technically it is provided by AIX itself.  Then when an rpm package is
     being installed that requires libc.a (as most do), rpm knows that the
     requirement is met because it finds it in AIX-rpm.  If you are curious to
     see everything AIX-rpm "provides" on behalf of the AIX system, you can
     run "rpm -q --provides AIX-rpm".

  9. Q:  I have AIX 7.2, but the rpm I want has "aix6.1.ppc" in the name.  Is
     there a version for 7.2?
     A:  That same image is also for AIX 7.2.  Because of binary compatibility,
     an RPM image built on AIX 6.1 will install and run on AIX 6.1, AIX 7.1,
     and AIX 7.2.
     The only exception is gcc. gcc package is built for different AIX version
     separately.

 10. Q:  What's info?
     A:  info is a documentation system common to Linux. Some applications
     install information into the info system rather than provide man pages.
http://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/FAQ.txt
10-09 21:03