【Linux】 ubuntu 12.04 iNode Client找不到库libjpeg和libtiff的解决方法
2012-08-27 19:54
330 查看
转自:http://blog.csdn.net/dduhmy/article/details/7580457
iNodeClient在ubuntu 10.04时,直接运行install.sh后便安装成功。在12.04的版本,安装后双击iNodeClient后却无法运行。重装后问题依旧。于是使用命令行来运行。提示说libjpeg.so.62 not found。
于是上网找资料,找到这篇文章,发现文中的方法有点复杂。他的方法除了常规的查找依赖性、定位库文件,还需要把库文件复制到当前目录,再建立软链接,略显繁琐。其实只要直接建立软链接即可,不需要做复制的动作。另外,作者过度使用sudo,这是不太好的习惯哦。
总结一下我的做法先。
1. 发现不满足的依赖性。假设iNode安装的目录是<inode>:
[plain]
view plaincopy
$: ldd <inode>/iNodeClient | grep 'not found'
这行代码的作用有二。一是寻找运行iNodeClient时不满足的依赖关系;二是看iNodeClient依赖的库所在的位置(因为可能会在多个地方存在不同的库)。在我的机器上,发现有两个库是找不到的,一个是libjpeg.so.62,另一个是libtiff.so.3。链接是这两个库wikipedia的介绍。
另外,发现iNodeClient库依赖都存在于/usr/lib/i386-linux-gnu/这个目录(我安装的是普通的32位版本,其他版本可能不同)。
2. 看本地是否有这些库。因为操作系统版本的更新,附带的库也有可能更新。这会带来库版本名字的改变,而这有可能是依赖性“不满足”的一个原因。这种“不满足”是名字不同带来的,其实较新版本的库是存在的。下面的命令就是查找本机同名库的位置。
[plain]
view plaincopy
$: locate libjpeg
发现本地真的有这些库。并且在/usr/lib/i386-linux-gnu/这个目录下存在。
3. 建立软链接。在/usr/lib/i386-linux-gnu/目录下有两个libjpeg文件,一个是libjpeg.so.8,另一个是libjpeg.so.8.0.2。之前玩过一下LFS,经验告诉我libjpeg.so.8是到libjpeg.so.8.0.2的软链接。建立它可能是为了版本的小更新不会影响程序对库的使用。所以我选择链接到libjpeg.so.8,获取这种小小的便利啦。而这句也是唯一需要用到sudo获取权限的地方。
[plain]
view plaincopy
$: sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so.8 /usr/lib/i386-linux-gnu/libjpeg.so.62
通过这三步,就可以解决第一个库的问题了。
第二个库的解决方法也是一样的。下面是代码。
[plain]
view plaincopy
$: sudo ln -s /usr/lib/i386-linux-gnu/libtiff.so.4 /usr/lib/i386-linux-gnu/libtiff.so.3
把依赖性问题解决完以后,iNodeClient就可以使用了。
iNodeClient在ubuntu 10.04时,直接运行install.sh后便安装成功。在12.04的版本,安装后双击iNodeClient后却无法运行。重装后问题依旧。于是使用命令行来运行。提示说libjpeg.so.62 not found。
于是上网找资料,找到这篇文章,发现文中的方法有点复杂。他的方法除了常规的查找依赖性、定位库文件,还需要把库文件复制到当前目录,再建立软链接,略显繁琐。其实只要直接建立软链接即可,不需要做复制的动作。另外,作者过度使用sudo,这是不太好的习惯哦。
总结一下我的做法先。
1. 发现不满足的依赖性。假设iNode安装的目录是<inode>:
[plain]
view plaincopy
$: ldd <inode>/iNodeClient | grep 'not found'
这行代码的作用有二。一是寻找运行iNodeClient时不满足的依赖关系;二是看iNodeClient依赖的库所在的位置(因为可能会在多个地方存在不同的库)。在我的机器上,发现有两个库是找不到的,一个是libjpeg.so.62,另一个是libtiff.so.3。链接是这两个库wikipedia的介绍。
另外,发现iNodeClient库依赖都存在于/usr/lib/i386-linux-gnu/这个目录(我安装的是普通的32位版本,其他版本可能不同)。
2. 看本地是否有这些库。因为操作系统版本的更新,附带的库也有可能更新。这会带来库版本名字的改变,而这有可能是依赖性“不满足”的一个原因。这种“不满足”是名字不同带来的,其实较新版本的库是存在的。下面的命令就是查找本机同名库的位置。
[plain]
view plaincopy
$: locate libjpeg
发现本地真的有这些库。并且在/usr/lib/i386-linux-gnu/这个目录下存在。
3. 建立软链接。在/usr/lib/i386-linux-gnu/目录下有两个libjpeg文件,一个是libjpeg.so.8,另一个是libjpeg.so.8.0.2。之前玩过一下LFS,经验告诉我libjpeg.so.8是到libjpeg.so.8.0.2的软链接。建立它可能是为了版本的小更新不会影响程序对库的使用。所以我选择链接到libjpeg.so.8,获取这种小小的便利啦。而这句也是唯一需要用到sudo获取权限的地方。
[plain]
view plaincopy
$: sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so.8 /usr/lib/i386-linux-gnu/libjpeg.so.62
通过这三步,就可以解决第一个库的问题了。
第二个库的解决方法也是一样的。下面是代码。
[plain]
view plaincopy
$: sudo ln -s /usr/lib/i386-linux-gnu/libtiff.so.4 /usr/lib/i386-linux-gnu/libtiff.so.3
把依赖性问题解决完以后,iNodeClient就可以使用了。
相关文章推荐
- 【Linux】 ubuntu 12.04 iNode Client找不到库libjpeg和libtiff的解决方法
- Ubuntu 12.04 iNode Client找不到库libjpeg和libtiff的解决方法
- ubuntu 12.04 iNode Client找不到库libjpeg和libtiff的解决方法
- Ubuntu 14.04 iNode Client找不到库libjpeg和libtiff的解决方法
- Ubuntu下H3C iNode for Linux找不到网卡的另类解决方法
- Ubuntu下H3C iNode for Linux找不到网卡的另类解决方法
- Android问题集锦之十四:Ubuntu 12.04 adb 找不到设备的解决方法
- ubuntu 12.04 Wine 找不到 gnome-keyring-pkcs11.so 的解决方法
- [Linux] ubuntu 12.04 风扇高速旋转解决方法
- [Linux] ubuntu 12.04 风扇高速旋转解决方法
- ubuntu 12.04下安装openldap,slapd.conf找不到的解决方法
- Ubuntu 12.04 adb 找不到设备的解决方法
- ASIHTTPRequest 编译提示找不到"libxml/HTMLparser.h"的解决方法
- 【Ubuntu】Windows与Linux(Ubuntu)双系统时间不一致 (相差8小时) 的解决方法
- linux(ubuntu) 系统修改/etc/fstab文件后无法进入系统的解决方法
- ubuntu 12.04系统托盘不显示ibus输入法图标的解决方法
- Ubuntu上类似:bash: /usr/lib/ant/apache-ant-1.8.2/bin/ant: Permission denied 问题的解决方法
- ubuntu 12.04 64位系统 找不到arm-linux-gcc文件
- Linux下使用gcc编译程序找不到库的分析和解决方法
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法