如何解决“无法打开共享对象文件 libudev.so.0”错误?

Chr*_*ith 83 shared-library software-installation

尝试在 Ubuntu 64 上运行Game Dev Tycoon。它要求上述对象。

我跑了sudo apt-get install libudev1:i386它回来已经安装了。

我有/lib/i386-linux-gnu/libudev.so.1但没有libudev.so.0任何地方。

Chr*_*ith 200

要修复,我链接libudev.so.1libudev.so.0

sudo ln -sf /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0
Run Code Online (Sandbox Code Playgroud)

  • 对于 64 位: sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0 (25认同)
  • 请不要这样做。它只是问问题。 (12认同)
  • 听dobey,这是一个凌乱的程序。Ryan Crichton 发布了正确的方法[这里](http://askubuntu.com/a/593420/348452)。 (6认同)
  • 在 32 位上,这是命令(以防有人到达这里):`sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0` (2认同)

小智 58

对于 ubuntu 14.04 及更高版本

我找到的最简单的方法是下载 .deb直接链接到 64 位下载32 位下载)并双击它进行安装或使用 dpkg 进行安装:

dpkg -i libudev0_175-0ubuntu9_amd64.deb
Run Code Online (Sandbox Code Playgroud)

对于以前的版本

在以前版本的 ubuntu 中,这个包在官方存储库中可用。您可以使用以下内容进行安装:

sudo apt-get install libudev0:i386
Run Code Online (Sandbox Code Playgroud)

  • **这是正确的答案**。如果缺少某个软件包,则安装该软件包……就是这么简单。创建链接、十六进制编辑名称、重新配置谷歌浏览器、敲打 CPU 和吸入辣椒粉都不是真正的解决方案。 (18认同)
  • 但它仅在该软件包可用时才有效。 (2认同)

Cli*_*iff 32

对于不同的程序,我遇到了同样的问题,但肖恩接受的答案根本没有帮助我。在我升级的 64 位 13.04 安装中,libudev0 在 64 位形式或 i386 形式中均不可用。并且 ia32-libs 已经安装。所以没有骰子。

我必须做的是稍微修改的版本 senshikaze 更具技术性的解决方案。我手动将 libudev.so.0 符号链接到 x86_64 lib 目录中的 libudev.so.1,因此:

cd /lib/x86_64-linux-gnu/
sudo ln -sf libudev.so.1 libudev.so.0
Run Code Online (Sandbox Code Playgroud)

这为我修好了。


Sea*_*ean 27

对于 64 位 Ubuntu,它位于 32 位 libudev0 包中。

您可以使用以下命令安装它:

sudo apt-get install libudev0:i386
Run Code Online (Sandbox Code Playgroud)

这个包在 14.04 中从 Ubuntu 中删除。您需要从旧版本安装它。

  • 我最终做了 sudo apt-get install libudev1:i386 然后 sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0 (26认同)
  • 尝试寻找 libudev0:i386 时没有找到包有什么想法吗? (3认同)
  • 请从这里安装旧版本:http://packages.ubuntu.com/precise/libudev0 (2认同)

Dan*_*mak 5

尝试使用来自Node Webkit 的nw可执行文件时可能会发生此错误。像这样:

./nw: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

怎么解决:

  1. 获取十六进制编辑器,允许您更改二进制的 ASCII 字符串,例如。十六进制

    • 在终端(Ctrl+ Alt+ T),运行:sudo apt-get install hexedit
    • 按照终端中显示的说明进行操作(如果需要,请输入密码,确认安装)。
  2. 使用node webkit转到目录:
    • 就我而言:cd ~/Dokumenty/node-webkit-*
  3. 使用十六进制编辑器命令打开nw二进制文件sudo
    • 运行:sudo hexedit nw
  4. 搜索为libudev.so.0ASCII 字符串:
    • 如果使用hexedit:按Tab
    • Ctrl+ S
    • 类型:libudev.so.0
  5. 变化0libudev.so.0的字符串1,因此它成为:libudev.so.1
    • 使用箭头键0libudev.so.0字符串中选择。
    • 按下1键盘。
  6. 退出并保存更改。
    • Ctrl+ X
    • Y保存更改。

你完成了。除了十六进制编辑 Atraci 文件而不是 nw 之外,这也解决了遵循相同指令时 Atraci 二进制文件的问题。

  • `猫西北| sed s/libudev.so.0/libudev.so.1/ > fixed_nw`, `chmod a+x fixed_nw` 然后就可以运行了,不需要安装任何东西 (2认同)