试图在Ubuntu 64上运行Game Dev Tycoon。它要求上述对象。
我跑sudo apt-get install libudev1:i386
了回来,它已经安装好了。
我/lib/i386-linux-gnu/libudev.so.1
什么libudev.so.0
地方都没有。
试图在Ubuntu 64上运行Game Dev Tycoon。它要求上述对象。
我跑sudo apt-get install libudev1:i386
了回来,它已经安装好了。
我/lib/i386-linux-gnu/libudev.so.1
什么libudev.so.0
地方都没有。
Answers:
对于64位Ubuntu,它在32位libudev0软件包中。
您可以使用以下命令进行安装:
sudo apt-get install libudev0:i386
该软件包已在14.04中从Ubuntu中删除。您将需要从旧版本安装它。
要修复,我链接libudev.so.1
到libudev.so.0
:
sudo ln -sf /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0
sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
我发现最简单的方法是直接下载.deb(直接链接到64位下载和32位下载),然后双击安装它或使用dpkg进行安装:
dpkg -i libudev0_175-0ubuntu9_amd64.deb
在ubuntu的早期版本中,此软件包在官方存储库中可用。您可以使用以下安装:
sudo apt-get install libudev0:i386
对于不同的程序,我遇到了同样的问题,但是肖恩接受的答案完全没有帮助。在我升级的64位13.04安装中,libudev0不能以64位形式或i386形式使用。并且已经安装了ia32-libs。所以没有骰子。
我要做的是对senshikaze的技术稍作修改的版本。我在x86_64 lib目录中手动将libudev.so.0链接到libudev.so.1,因此:
cd /lib/x86_64-linux-gnu/
sudo ln -sf libudev.so.1 libudev.so.0
这为我解决了。
尝试使用Node Webkit中的nw可执行文件时,可能会发生此错误。像这样:
./nw: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory
获取十六进制编辑器,使您可以更改二进制的ASCII字符串,例如。hexedit:
sudo apt-get install hexedit
。cd ~/Dokumenty/node-webkit-*
。sudo
:
sudo hexedit nw
。libudev.so.0
ASCII字符串:
libudev.so.0
。0
中libudev.so.0
的字符串1
,因此它成为:libudev.so.1
:
0
的libudev.so.0
字符串。你完成了。当遵循相同的指令(十六进制编辑Atraci文件而不是nw)时,这也解决了Atraci二进制文件的问题。
cat nw | sed s/libudev.so.0/libudev.so.1/ > fixed_nw
,chmod a+x fixed_nw
然后就可以运行它,而无需安装任何软件
在Ubuntu 14.04上唯一适用的答案是已接受的答案,并且由于许多评论指出这可能会导致系统将来出现问题(尽管我自己对此并不了解),所以我想出了一个折衷方案。该脚本将提示(在终端中)您的root密码。它将创建符号链接并启动应用程序(在我的情况下为爆米花时间)。退出应用程序时,它将使用现有的sudo会话来删除符号链接:
#!/bin/sh
sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
./Popcorn-Time #replace this line with the path to the executable you want to launch
sudo rm /lib/i386-linux-gnu/libudev.so.0
我只是找到了一种使这项工作有效的方法,但是这很愚蠢。
我的系统上安装了Google Chrome,并且Chrome嵌入了此共享库。因此,我只需要链接到Chrome安装目录上的库即可。
ln -sf /opt/google/chrome/libudev.so.0 /lib/x86_64-linux-gnu/libudev.so.0
它对我来说很好。
正如Phil Strong指出的
安装 libudev.so.1
sudo apt-get install libudev1:i386
然后将其链接为 libudev.so.0
sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
更新 我制作了一个bash脚本来包装要执行的程序。您可以将其添加到本地bin文件夹中,而无需复制和粘贴或运行Shell脚本即可启动该程序。
#!/bin/bash
ProgramToExecute="/PATH/TO/PROGRAM" #Example: $HOME/dart/./DartEditor
system=$(uname -m) #Returns x86_64 on 64 bit systems
libdir="/lib/$system-linux-gnu"
libudev1="$libdir/libudev.so.1"
if [ ! -f $libudev1 ]
then
#check if an i386 folder exist because ' uname -m' returns i686 instead of i386.
libdir="/lib/i386-linux-gnu"
libudev1="$libdir/libudev.so.1"
#if none of the lookups return a file, this script exits,
BreakUpNotice="This $libudev1 isn't working out. It's not you
it's me. Or maybe you forgot to install libudev1 library.
sudo apt-get install libudev1 "
[ ! -f $libudev1 ] && echo $BreakUpNotice && exit 0
fi
libudev0="$libdir/libudev.so.0"
echo "$libudev1 found."
sudo ln -sf $libudev1 $libudev0
sudo -k #revoke sudo
$($ProgramToExecute)
NoticeAfterExec="Enter sudo to del libudev link (recommended) or press CTRL+C to cancel."
RmSuccess="And $libudev0 link is gone."
RmFailed="Whaat? $libudev0 still exists."
echo $NoticeAfterExec
sudo rm $libudev0
sudo -k
[ ! -f "$libudev0" ] && echo $RmSuccess || echo $RmFailed
exit
老答案 在Ubuntu 14.04中,当尝试使用Live Preview(Chromium)时,我从Dart编辑器中收到错误消息。通过安装libudev1并创建符号链接解决了该错误。
sudo apt-get install libudev1
我还使用了TenLeftFingers上面提到的脚本来执行DartEditor。
#!/bin/sh
sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
./DartEditor
sudo rm /lib/i386-linux-gnu/libudev.so.0
如果Dart编辑器未执行,请确保已安装JAVA,这不是权限问题。
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
并使IDE可执行:
sudo chmod a+x ./DartEditor
这对我有用。
如果有人在浏览网络以获取关于Ubuntu上的libudev.so.0和Emotiv Epoc SDK Dev Edition的修复程序时偶然发现此页面,希望以下内容对您有所帮助:
//我的配置是64位Ubuntu 13.04
须藤ln -sf /lib/x86_64-linux-gnu/libudev.so.1。/lib/x86_64-linux-gnu/libudev.so.1
须藤ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
须藤ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /usr/lib/libudev.so.0
须藤ln -sf /lib/i386-linux-gnu/libudev.so.1。/lib/i386-linux-gnu/libudev.so.1
须藤ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
须藤ln -sf /lib/i386-linux-gnu/libudev.so.1 /usr/lib/libudev.so.0
完成上述操作后,应该可以运行EmotivControlPanel,EmoKey,EmoComposer,Java示例和少量自定义的Qt示例(我已经尝试了以上所有步骤,以及在网络上找到的其他步骤(堆栈溢出,..),但没有任何工作对我来说,这就是我经过一些“尝试和错误”后最终要做的事情
最后但并非最不重要的一点,如果这里有人知道如何在64位系统上运行针对32位库编译的程序,同时指定使用提供的3RD第三方32位库?
更确切地说,对于那些知道我在说什么的人,我应该如何在我的64位系统上运行“ EmoCube”和“ BlueAvatar” Qt示例?
->到目前为止,我所能尝试的最多是:“加载共享库时出错:libedk.so.1:错误的ELF类:ELFCLASS64”
我想到i386目录中该lib的符号链接不会成功(尽管我还没有尝试过),所以如果有人有答案的话……我很期待阅读它。
欢呼全部+
在终端中运行以下命令:
cd /lib/x86_64-linux-gnu/
sudo cp libudev.so.0.13.0 libudev.so.1
这对我有帮助