AIX中使用RPM安装RSync遇到的问题及解决办法

最近在折腾AIX的系统,它里面本来有一个包管理工具叫installp,但是俺不会用,也不知道从那里找包。

幸亏AIX提供了RPM的支持,所以安装软件还是用了最熟悉的RPM包。装了Puppet和MCollective。然后我就开始做管理了,但是在后面装rsync的时候出现了一个问题。

AIX中的软件包基本上有3个来源,分别是

接下来继续说rsync,我下载的地址是http://www.bullfreeware.com/affichage.php?id=1653。

依赖分别有gettext, popt, libiconv,我也装上了。但是在执行rsync的命令的时候出错,错误大概是下面这个样子,因为我们的生产环境限制太严格,这是我记忆下来的大概的错误的样子。

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 .


是说不能加载libiconv.so.2,我去找了下,确实没有这个文件,libiconv.a到是有的。然后用rpm -ql
libiconv这个包查看,列表里面也有没有libconv.so.2呀,奇怪了。然后使用ldd
/usr/bin/rsync命令查看它需要的共享库的时候也是报找不到libiconv.so.2这个文件。

按理来说,libiconv.so.2这个名字的文件,肯定是属于libiconv这个包的,但是为什么它包里面就没有呢?我就开始在Google上找了,找啊找,翻了半天,看到了这个讨论。http://bbs.chinaunix.net/thread-1692140-1-1.html,这里最后[yddll](http://bbs.chinaunix.net/space-uid-46610.html)给了个提示,说是man ar。

于是我就来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. An
archive is a single file holding a collection of other files in a
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>

创建,修改,解压archives,既然人家提示了,那我就试试呗

>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
就在试完之后,我忽然想到一点,不对呀,我使用rpm安装的软件都是放在了/opt/freeware下面,然后做的软链接到实际的目录,但是这个文件好像不是link,然后分别查看了下这两个文件
ls -l /usr/lib/libiconv.a
ls -l /opt/freeware/lib/libiconv.a
抱歉,还是上面的原因,查看的结果我没办法贴出来。反正区别是这两个不一样大,我又使用ar命令查看了下/opt下的那个libiconv.a,结果就发现了libiconv.so.2文件。

所以最终的解决办法是,删掉/usr/lib/libiconv.a,然后创建link文件指向/opt/freeware/lib/libiconv.a,再次执行rsync命令,成功,搞定。

updated 2013.10.17

后来发现,使用IBM官网的包就不会有这样的问题,所以以后我都会尽量在AIX上用官网的RPM包。

puppet aix package 之rsync安装的更多相关文章

  1. Sublime text 3 中Package Control 的安装与使用方法和解决Sublime Text 3不能正确显示中文的问题

    Sublime text 3 中Package Control 的安装与使用方法,英文好可以在这个网址看看, 下面简单的说明一下 : https://packagecontrol.io/install ...

  2. 解决 mac 10.14.4 无法 sublime text 3207 安装 Package Control,以及安装第三方包报错 `Package Control There are no packages available for installation`

    下载最新的 sublime text 3207,无法安装 Package Control. 根据官方提示,手动安装 Package Control. 手动安装 Package Control 后,无法 ...

  3. 使用介质设备安装 AIX 以通过 HMC 安装分区

    使用介质设备安装 AIX 以通过 HMC 安装分区 原文:https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72/com.ibm.aix.h ...

  4. Sublime text 3 中Package Control 的安装与使用方法

    Package Control插件本身是一个为了方便管理插件的插件,在Sublime text 3中,Package Control 的安装方法一开始出来的方法是要先安装Git, 再输入代码来安装,原 ...

  5. (转)使用介质设备安装 AIX 以通过 HMC 安装分区

    使用介质设备安装 AIX 以通过 HMC 安装分区 原文:https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72/com.ibm.aix.h ...

  6. Rsync安装部署

    Rsync安装部署 1.Rsync  简介 Rsync  是一款开源的.快速的 多功能的 可以实现全量以及增量的本地或者是远程的数据同步备份的优秀工具,并且可以不进行改变原有的数据属性信息,实现数据的 ...

  7. sublime text3 Package Control 插件安装及推荐(MAC)

    参考: https://www.zhihu.com/question/36233553 https://www.cnblogs.com/zuoan-oopp/p/6692797.html 插件推荐 因 ...

  8. sublime text3 控制台 Package Control 的安装与使用方法

    下载安装 sublime text3 直接网上搜sublime text3 下载即可,安装很简单 下一步就行,这里主要说明sublime text3 控制台 Package Control 的安装与使 ...

  9. puppet aix之自动化用户管理

    一.    用户组的管理 (一)   Puppet组管理特性 1.   manages_aix_lam 用来管理AIX的LAM(Loadable Authentication Module)系统. 2 ...

随机推荐

  1. 【转】大素数判断和素因子分解【miller-rabin和Pollard_rho算法】

    集训队有人提到这个算法,就学习一下,如果用到可以直接贴模板,例题:POJ 1811 转自:http://www.cnblogs.com/kuangbin/archive/2012/08/19/2646 ...

  2. cogs 1008 贪婪大陆

    /* 不要思维定视 盯着线段树维护l r 的ans不放 显然没法区间合并 换一种思路 如果打暴力的话 O(nm) 每次询问 扫一遍之前所有的修改 有交点则说明种数++ 接下来考虑如何优化 我们把每个区 ...

  3. json数据获取

    今天Pei讲了一个android获取json数据的方式吧 代码什么的没看懂,反正知道就是那么一回事,用AsyncTask线程来获取json数据,我也不知道这样说对不对 估计以后回过来看的时候会发现一大 ...

  4. mongodb的副本集总结

    主节点A.备份节点B.仲裁者C.是否真的需求仲裁者? 需要. 怎样才算大多数表格如下: 怎样才算大多数表格 副本集中的成员总数 副本集中的大多数 1 1 2 2 3 2 4 3 5 3 6 4 7 4 ...

  5. 在vim中设置 '打印时间'的快捷键.

    在 ~/.vimrc (没有该文件可以手动创建)中输入 map <F4> <Esc>:r !date<CR> 实现在 '一般模式'状态点击 F4时,自动在vim中打 ...

  6. vs2013+sql server2012

    学习 vs2013 sql server2012使用 : linp lambda entity framework wcf tfs;

  7. Class类相关

    Class类是java.lang包中的类,该类的实例可以帮助程序创建其他类的实例或者取得其他类的对象的内部信息 使用class类获得一个类相关的class类(注意得到的是class类,不是相关的类) ...

  8. AIDL Service

    开发AIDL服务的步骤 AIDL(Android Interface Definition Language)是Service的一种重要应用,允许一个应用程序访问另一个应用程序中的对象. 建立AIDL ...

  9. Secure CRT 如何连接虚拟机里面的CentOS系统 当主机使用有线网的时候 作者原创 欢迎转载

    1.虚拟机的网卡配置如下图所示: 2.在CentOS 5.8的命令行界面:输入如下指令 然后准备修改里面的网关地址和自己的IP地址 3.同时查看自己的IP地址和网关 4.在第二步里面修改,网关地址应该 ...

  10. deb文件安装命令

    一般在此类发行版中可以直接双击安装 手动安装.如果您喜欢使用终端,您需要管理员权限来安装一个 .deb 文件. 打开终端后,输入: sudo dpkg -i package_file.deb 要卸载一 ...