zoukankan      html  css  js  c++  java
  • 【Linux】 ubuntu 12.04 iNode Client找不到库libjpeg和libtiff的解决方法

    转自: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>:

    1. $: ldd <inode>/iNodeClient | grep 'not found'  

    这行代码的作用有二。一是寻找运行iNodeClient时不满足的依赖关系;二是看iNodeClient依赖的库所在的位置(因为可能会在多个地方存在不同的库)。在我的机器上,发现有两个库是找不到的,一个是libjpeg.so.62,另一个是libtiff.so.3。链接是这两个库wikipedia的介绍。

    另外,发现iNodeClient库依赖都存在于/usr/lib/i386-linux-gnu/这个目录(我安装的是普通的32位版本,其他版本可能不同)。


    2. 看本地是否有这些库。因为操作系统版本的更新,附带的库也有可能更新。这会带来库版本名字的改变,而这有可能是依赖性“不满足”的一个原因。这种“不满足”是名字不同带来的,其实较新版本的库是存在的。下面的命令就是查找本机同名库的位置。

    1. $: 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获取权限的地方。

    1. $: sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so.8 /usr/lib/i386-linux-gnu/libjpeg.so.62  
    通过这三步,就可以解决第一个库的问题了。



    第二个库的解决方法也是一样的。下面是代码。

    1. $: sudo ln -s /usr/lib/i386-linux-gnu/libtiff.so.4 /usr/lib/i386-linux-gnu/libtiff.so.3  

    把依赖性问题解决完以后,iNodeClient就可以使用了。微笑

  • 相关阅读:
    剑指OFFER----面试题37. 序列化二叉树
    剑指OFFER----面试题36. 二叉搜索树与双向链表
    剑指OFFER----面试题35. 复杂链表的复制
    6.深拷贝与浅拷贝
    DevExpress ASP.NET v19.1版本亮点:发布全新的Gantt控件
    MFC界面库BCGControlBar v30.1新功能详解:Dialogs和Forms
    Kendo UI for jQuery使用教程:支持Web浏览器
    DevExpress Windows 10 v19.1新版亮点:UWP控件新功能全面解析
    Java 11必掌握的8大特性,完美代码信手拈来
    Kendo UI for jQuery使用教程:入门指南
  • 原文地址:https://www.cnblogs.com/haoaina521/p/3332154.html
Copyright © 2011-2022 走看看