背景,我正在尝试使用 Kinect 相机和 Python。
当我尝试在 Ubuntu 12.04 上进行 freenect(手动安装)时,它抱怨未定义的 libusb_get_parent。
不过,它在 Ubuntu 14.04 上运行良好。
接下来,我转到 Raspberry PI,并尝试让手动安装在那里工作。没有骰子。同样的 libusb_get_parent 投诉。
所以我 apt-get update、upgrade、dist-upgrade,没有骰子。我尝试获取 libusb-dev 和各种东西。
我dpkg -s libusb-1.0-0-dev
在 Ubuntu 12.02 上也是这样做的。它说它使用
Source: libusb-1.0
Version: 2:1.0.9~rc3-2ubuntu1
在 Ubuntu 14.04 上它说:
Source: libusbx
Version: 2:1.0.17-1ubuntu2
最后是 Raspberry PI:
Source: libusbx
Version: 2:1.0.11-1
所以我想,如果我能在 Raspberry PI 上安装较新版本的 libusbx,我至少应该走得更远一些。
我在这里下载了最新的libusbx(http://sourceforge.net/projects/libusbx/files/releases/1.0.18/source/)
然后做了:
$ sudo su
$ ./configure && make && make install && sudo ldconfig
从我提取的目录中。 (它似乎是配置和制作的。)
我再次执行 dpkg -s libusb-1.0-0-dev 以为我现在有了新的 1.0.18 版本,但事实并非如此。现在还是 1.0.11。
我确信我错过了一些简单的事情。谢谢。
答案1
您已从源代码编译。这意味着 Ubuntu 的包管理系统不知道它。包管理器只知道使用包管理器安装的包(例如apt
和dpkg
)。此外,当包管理器安装较新版本时,它会卸载旧版本。由于包管理器没有安装这个新版本,因此它不会安装您的原始版本。因此为什么dpkg
仍然显示旧版本。
如果我处于你的位置,我会运行make uninstall
源代码来删除这些文件。然后我会下载libusbx
Ubuntu 14.04 的软件包并尝试手动安装。如果它没有抱怨缺少依赖项,那么您应该希望能够避免不编译。
版本应该向后兼容,因此希望安装更高版本不会破坏任何已经依赖于当前libusbx
.
如果上述方法不适合您,请考虑从源代码构建包。此过程deb
会为您创建一个包,然后您可以使用普通的包管理器来安装该包。这样,您的dpkg
命令将显示最新版本,而旧版本将被删除。
有一个很好的 Stack Exchange 问题涵盖了这个过程这里。