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, Of particular
interest is the useful book "Maximum RPM" by Edward Bailey, which can be
found online at
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 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
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.
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.