解决 Linux error while loading shared libraries: cannot open shared object file: No such file or directory
安装最新版本Emqtt,参照官方文档安装后,执行报错:
Linux error while loading shared libraries libsctp.so.1: cannot open shared object file: No such file or directory
从互联网上找到了一些文章, 解决了我的问题,这里整理贴一下,类似的问题应该都可以参照解决。
1.先在本地查找一下文件
命令:wheris libsctp.so.1
先查找一下本地是否存在文件,如果存在的话,直接跳到第三步,我这里的结果是找不到。
2.然后google 一下 下载libsctp
这个网站上有很多so文件下载: https://www.rpmfind.net/
https://www.rpmfind.net/linux/RPM/centos/6.8/x86_64/Packages/lksctp-tools-1.0.10-7.el6.i686.html
RPM安装,参照
http://www.centoscn.com/CentOS/help/2013/1019/1906.html
安装后wheris libsctp.so.1
发现安装在usr/lib下面了。
再次运行 ./bin/emqttd consle,还是报错。
3.怀疑是环境变量 LD_LIBRARY_PATH的问题。
系统不知道xxx.so放在哪个目录下,这时候就要在/etc/ld.so.conf中加入xxx.so所在的目录。
一般而言,有很多的so会存放在/usr/local/lib这个目录底下,去这个目录底下找,果然发现自己所需要的.so文件。
所以,在/etc/ld.so.conf中加入/usr/local/lib这一行,保存之后,再运行:/sbin/ldconfig –v更新一下配置即可。
在我这里,rpm后,so文件安装在了/usr/lib下,这个目录下应该是不需要配置的。
需要配置的同学可以参见:
http://blog.csdn.net/sahusoft/article/details/7388617
在我这里,/sbin/ldconfig 更新后还是报错。不过错误信息变了:
wrong ELF class: ELFCLASS32
4.查询后,发现应该是 32位,64位问题。我安装的Emqttd是64位版本。
使用命令
file /usr/lib64/libsctp.so.1 发现是个链接到 `libsctp.so.1.0.17'
file /usr/lib64/libsctp.so.1.0.17,发现是个32位的文件。
看起来是64位的Emqtt用不了32位的so文件。
5. 重新google libsctp的64位版本,rpm安装。安装之前先rpm -e 卸载原来的32位版本。
安装64位后,ldconfig 。再次运行,成功打开emqtt服务,问题解决。
解决 Linux error while loading shared libraries: cannot open shared object file: No such file or directory的更多相关文章
- 错误解决:error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
执行以下代码,生成唯一的UID $fp = popen("/xxx/bin/tools/uuidgen system", "r");// $uid = frea ...
- 解决openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory错误
问题 在Centos7上编译安装openssl后,运行openssl version出现如下错误: openssl: error while loading shared libraries: lib ...
- Atlas系列一:【已解决】error while loading shared libraries: libcrypto.so.6: cannot open shared object file: No such file or directory
1:Atlas的安装 https://github.com/Qihoo360/Atlas/wiki/Atlas的安装 2: [root@localhost bin]# ./mysql-proxyd t ...
- Error While Loading Shared Libraries, Cannot Open Shared Object File
In the "I wish the Internet had an actual correct answer" category comes a question from a ...
- 解决linux下sudo更改文件权限报错xxxis not in the sudoers file. This incident will be reported.
本文转自Linux社区作者为z-sm的文章 原文链接http://www.linuxidc.com/Linux/2016-07/133066.htm 之前一直使用的是ubuntu,后来安装了Cento ...
- error while loading shared libraries解決方法
在linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了. error while loading ...
- cannot open shared object file: No such file or directory解决
cannot open shared object file: No such file or directory解决 ./move_db: error while loading shared ...
- [持续交付实践] pipeline使用:Shared Libraries
前言 随着pipeline交付流水线在团队中的推广,使用pipeline脚本的job也迅速增加.虽然我们已经基于公司的技术栈特点做了一个尽可能通用的pipeline脚本样例,让搭建者只需要修改几个赋值 ...
- 【转】linux中执行外部命令提示" error while loading shared libraries"时的解决办法
今天在Centos下编译kapar 后执行时出错,老说: [root@dc01 ~]# kapar kapar: error while loading shared libraries: libsc ...
随机推荐
- CodeForces 725A
A. Jumping Ball time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- 抽象类 abstract 和 接口 interface 类的区别
在看一些框架的优秀改良时,都会设计一层base层,并且 base里面一般都是 abstract 类,然后 就找了为什么做的原因.发现: PHP5支持抽象类和抽象方法.抽象类不能直接被实例化,你必须先继 ...
- 离职了,在家温故而知新----1 设计模式 & 开头
工作四年有余,编写的代码都是业务代码.不涉及低层. 目前离职在家,过年完了,准备找工作了. 决定温故而知新,复习也是学习. 本着随遇而安的原则,随便从之前设计的众多条目中选择了一条开始复习. 设计模式 ...
- vue1.0学习总结
前言 使用vue已经有三.四个月了,但是只是学着使用了一些基本方法.因为现在的前端框架越来越多(Angular,React...),但是我相信万变不离其宗,很多用法框架之间还是想通的,所以借总结的vu ...
- windows下搭建GO开发环境
1. Go下载 由于某些原因golang.org不能访问,可以使用下面的镜像地址进行下 http://fossies.org/windows/misc/ 我的环境是win8 64位,所以选择go1.7 ...
- ArcGIS制图表达Representation-符号制作
ArcGIS制图表达Representation-符号制作 by 李远祥 在ArcGIS的符号里面,存在着两种符号体系,一种是传统的标准符号体系,一种是制图表达符号体系.标准符号几乎被绝大部分ArcG ...
- [css 揭秘]:CSS揭秘 技巧(三):背景定位
我的github地址:https://github.com/FannieGirl/ifannie 源码都在这上面哦! 喜欢的给我一个星吧 背景定位 问题:很多时候,我们想针对容器某个角对背景图片做便宜 ...
- NodeJs之crypto
NodeJs版本:4.4.4 crypto nodejs提供了内置加密模块crypto. 加密模块提供了 HTTP 或 HTTPS 连接过程中封装安全凭证的方法. 它也提供了 OpenSSL 的哈希, ...
- 走进javascript——解开switch之谜
很早以前就觉得switch很怪异,或者说一直没太理解它,它怪异就怪异在非要给每个语句加上break;不然后面的语句就算不符合条件还是会执行,比如以下这段代码 var num = 2; switch(n ...
- github fork, star and watch
1 git fork git clone原版本的话,只有读权限,是不能直接把修改提交到服务器的. git fork会创建一个副本,然后就可以在这个上面进行开发了,开发了之后可以通过pull reque ...