安装最新版本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的更多相关文章

  1. 错误解决: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 ...

  2. 解决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 ...

  3. 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 ...

  4. 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 ...

  5. 解决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 ...

  6. error while loading shared libraries解決方法

    在linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了. error while loading ...

  7. 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 ...

  8. [持续交付实践] pipeline使用:Shared Libraries

    前言 随着pipeline交付流水线在团队中的推广,使用pipeline脚本的job也迅速增加.虽然我们已经基于公司的技术栈特点做了一个尽可能通用的pipeline脚本样例,让搭建者只需要修改几个赋值 ...

  9. 【转】linux中执行外部命令提示" error while loading shared libraries"时的解决办法

    今天在Centos下编译kapar 后执行时出错,老说: [root@dc01 ~]# kapar kapar: error while loading shared libraries: libsc ...

随机推荐

  1. CodeForces 333A

    Secrets Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  2. java cooki的使用

    session: 当新客户端发现一个HTTP请求时服务端会创建一个session.并分配一个sessionID作为服务端来客户端的识别,session对象会 保存在服务端.此时session对象处天N ...

  3. Java如何判断字符串中包含有全角,半角符号

    首先介绍下全角跟半角之间的区别: 在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为"半角",相对地把一个汉字所占的位置称为"全角" ...

  4. 【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】

      非常惭愧的说,由于之前一直使用的是windowservice,安装apache来进行服务器布置的,这种方式也是最简单最直接的方式, 但是由于php的服务大多都是linux栈的,咱们也不能落后呀,在 ...

  5. HQL连接查询

    HQL提供了连接查询机制如内连接,外连接,,还允许显示指定迫切内连接,和迫切外联结. 连接类型 内连接 inner join 或join 迫切内链接 inner join fetch 左外联结  le ...

  6. 龙珠超的新OP【限界突破×サバイバー】

    这首歌真的很燃 下载>>   限界突破×サバイバー 中文歌词 演唱:冰川清志 兴奋了!就去宇宙吧 最先端的“着迷”怎么样! 握在手中 突然想要大笑 糊里糊涂也习惯了吗! I can't g ...

  7. bootstrap 预定义样式风格

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. oracle用户创建,连接,删除

    绕过管理员身份进行登录: sqlplus /nolog conn /as sysdba 如何创建一个普通用户: 1.create user jsd1412 identified by jsd1412 ...

  9. 【Javaweb】笔面试题 ---(1)

    Javaweb 面试题:理解才是最重要的,而不是原封不动的背下来 一.请简述doget和dopost它们的区别 1) get是从服务器上获取数据,post是向服务器传送数据. 2) 在客户端,Get方 ...

  10. gitHub搭建

    1.注册一个gitHub账户 2.新建立一个远程仓库(登陆进去后-->点击图标 --> New repository ) 3.跳转后,填写相关信息(仓库名称及选项) 4.在本地的文件夹里右 ...