Problems encountered during rsync installation using rpm in Aix and Solutions
Recently, I was tossing over the AIX system. It had a package management tool named installp, but it was useless and I didn't know where to find the package.
Thanks to the RPM support provided by Aix, the most familiar RPM package is used for software installation. Puppet And mcollective are installed. Then I started to manage it, but there was a problem when installing rsync later.
The packages in Aix basically have three sources:
- IBM official website (http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html), official, but some package does not, so I did not download from here.
- 3rd-Party website perzl.org (http://www.perzl.org /)
- Large Open Source Software archive for Aix (http://www.bullfreeware.com /)
In these two 3rd-party websites, the bullfreeware search package is more convenient, So I basically use the basic RPM package here.
Next, let's continue with rsync. What is the download address of my http://www.bullfreeware.com/affichage.php? Id = 1653.
The dependencies are gettext, popt, and libiconv, And I have installed them. However, an error occurred while executing the rsync command. The error is probably like the following, because our production environment is too restrictive, which is a rough mistake I remember.
exec(): 0509-036 Cannot load program /usr/bin/rsync because of the following errors:
0509-022 Cannot load module /usr/lib/popt.a(popt.so).
0509-150 Dependent module /usr/lib/libiconv.a(libiconv.so.2) could not be loaded.
0509-152 Member libiconv.so.2 is not found in archive
0509-022 Cannot load module rpm.
0509-150 Dependent module /usr/lib/popt.a(popt.so). could not be loaded.
0509-022 Cannot load module .
It means that libiconv. so.2 cannot be loaded. I went to find it and did not have this file. libiconv. A is always there. Run the rpm-QL libiconv package to check whether libconv. so.2 is in the list. It's strange. Then run the LDD/usr/bin/rsync command to view the required shared library, and the file libiconv. so.2 is not found.
In theory, the file libiconv. so.2 must belong to the libiconv package, but why does it not exist in the package? I started searching for it on Google. After searching for it for half a day, I saw this discussion. Http://bbs.chinaunix.net/thread-1692140-1-1.html, here the latest [yddll] (http://bbs.chinaunix.net/space-uid-46610.html) gave a prompt, said man ar.
So I came to man.
AR(1) GNU Development Tools AR(1)
Name
Ar-create, modify, and extract from Archives
Synopsis
Ar [-plugin name] [-x32_64] [-] P [mod [relpos] [count] Archive
[Member…]
Description
The GNU ar program creates, modifies, and extracts from archives.
Archive is a single file holding a collection of other files in
Structure that makes it possible to retrieve the original individual
Files (called members of the archive ).
The original files’ contents, mode (permissions), timestamp, owner, and group are preserved in the archive, and can be restored on extraction. GNU ar can maintain archives whose members have names of any length; however, depending on how ar is configured on your system, a limit on member-name length may be imposed for compatibility with archive formats maintained with other tools. If it exists, the limit is often 15 characters (typical of formats related to a.out) or 16 characters (typical of formats related to coff).</pre>
Create, modify, and decompress archives. Now that someone prompts me, I will try again.
>ar -v -t /usr/lib/libiconv.a
r—r—r— 2/2 116968 Nov 10 17:22 2010 shr4.o
r—r—r— 2/2 117218 Nov 10 17:22 2010 shr.o
After the test, I suddenly thought of something wrong. The software I installed with RPM is under/opt/freeware, and then soft links are made to the actual directory, however, this file does not seem to be a link, and you can view the two files separately.
ls -l /usr/lib/libiconv.a
ls -l /opt/freeware/lib/libiconv.a
Sorry, it is still the reason above. I cannot post the result. The difference is that the two are different. I used the AR command to view the libiconv. A under/OPT and found the libiconv. so.2 file.
The final solution is to delete/usr/lib/libiconv. a, and then create the link file pointing to/opt/freeware/lib/libiconv. a. Run the rsync command again.
Updated 2013.10.17
Later, I found that there would be no such problem when using the packages on the IBM official website, so I will try my best to use the RPM packages on the official website on AIx in the future.