首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apt-get install找不到本地库。

apt-get install找不到本地库。
EN

Unix & Linux用户
提问于 2022-08-07 11:08:12
回答 2查看 496关注 0票数 2

在我尝试安装gstreamer1.0-rockchip1并获得:

代码语言:javascript
复制
The following packages have unmet dependencies:
 gstreamer1.0-rockchip1 : Depends: librockchip-mpp1 but it is not installable
E: Unable to correct problems, you have held broken packages.

我克隆、编译并安装了带有make and sudo make install的存储库D3。现在,我在/usr/local/lib中有了所需的库:

代码语言:javascript
复制
lrwxrwxrwx 1 root root       20 Aug  7 10:43 librockchip_vpu.so -> librockchip_vpu.so.1
lrwxrwxrwx 1 root root       20 Aug  7 10:43 librockchip_vpu.so.1 -> librockchip_vpu.so.0
lrwxrwxrwx 1 root root       20 Aug  7 10:43 librockchip_mpp.so -> librockchip_mpp.so.1
lrwxrwxrwx 1 root root       20 Aug  7 10:43 librockchip_mpp.so.1 -> librockchip_mpp.so.0
drwxr-xr-x 2 root root     4096 Aug  7 10:43 pkgconfig
-rw-r--r-- 1 root root    78944 Aug  7 10:20 librockchip_vpu.so.0
-rw-r--r-- 1 root root  1978352 Aug  7 10:20 librockchip_mpp.so.0
drwxrwsr-x 3 root staff    4096 Aug  7 09:01 ocaml
drwxrwsr-x 4 root staff    4096 Aug  7 08:58 python2.7
drwxrwsr-x 3 root staff    4096 Mar 11 02:17 python3.8

然而,我仍然得到相同的初始错误。有办法连接图书馆吗?

我的系统:

代码语言:javascript
复制
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:    20.04
Codename:   focal
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2022-08-07 12:25:06

gstreamer1.0-rockchip1不依赖于一个名为/usr/local/lib/librockchip_mpp.so.1的文件,它依赖于一个名为librockchip-mpp1的包,它可以提供/usr/lib/x86_64-linux-gnu/librockchip_mpp.so.1

这两个包都不能在focal存储库中使用。

通常,当辅助存储库(如PPA)提供包时,它们还应该提供任何不在官方存储库中的依赖项。看来你的回购不是这么做的。您也有可能自己从头开始构建gstreamer-rockchip-1

我倾向于避免跳入依赖地狱,所以我会使用另一种方法,但如果你想跳进兔子洞,下面是你应该做的事情:

  1. 查找提供gstreamer1.0-rockchip1及其依赖项的存储库/PPA,或者
  2. 自己打包依赖项。

一次搜索显示了我两次对github感兴趣的回复。我不知道您是从这里得到包的,还是这些包是包中最好的分叉,或者它们是否相互工作,或者它们是否包含任何恶意代码。我会让你来决定的。

第一个是提供gstreamer-rockchip-1的项目。看起来您已经从这个项目中获得了一个存储库或*.deb。我看了一下debain/copyright文件,它没有指向任何上游项目。

我从debian/control中可以看出,这个包将依赖于librockchip-mpp

代码语言:javascript
复制
Build-Depends: debhelper (>= 9), autotools-dev,
 librockchip-mpp-dev (>= 1.4.0), libx11-dev, libdrm-dev,
 libgstreamer1.0-dev, libgstreamer-plugins-base1.0-dev

这里唯一在focal中不可用的依赖项是librockchip-mpp1

另一个搜索让我找到了一个提供librockchip-mpp{1,-dev}的存储库(或者至少有一个具有这个名称的包)。这个存储库还提供了为基于debain的发行版打包这个包的规则,所以这不应该太困难。这一个也有一个指向自己的debian/copyright,所以它看起来更合法一些。

当我查看它的依赖项时,它只有debhelper, cmake作为它的构建依赖项。看来我们不需要再深入了。

要构建/安装此包,请执行以下操作:

  1. 选择一个标签,并下载其tar.gz。然后:
代码语言:javascript
复制
$ tar -xzf release_20171218.tar.gz
$ ln -s mpp-release_20171218.tar.gz mpp_1.4.0.orig.tar.gz
$ cd mpp-release_20171218
$ dpkg-buildpackage -uc -us
$ sudo dpkg -i ../librockchip-mpp1_1.4.0-1_amd64.deb

然后您可以继续安装gstreamer1.0-rockchip1

注意,当我试图编译它时,我遇到了一些CMake配置错误。具体地说:

找不到工具链文件: /etc/dpkg-cross/cmake/CMakeCross.txt

这是我所愿意追求的。

票数 4
EN

Unix & Linux用户

发布于 2022-08-07 22:06:00

您可以使用equivs (如在这个答案中)创建一个满足依赖关系的虚假包。这是对库进行实际打包的另一种选择,它本质上告诉系统:“我已经处理好了,相信我。”

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/712733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档