Apt

apt-get install 找不到本地庫

  • August 7, 2022

在我嘗試安裝gstreamer1.0-rockchip1並獲取後:

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.

我複製、編譯並安裝了mpp儲存make and sudo make install庫。現在我有所需的庫/usr/local/lib

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

但是,我仍然收到相同的初始錯誤。有沒有辦法連結圖書館?

我的系統:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:    20.04
Codename:   focal

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

Build-Depends: debhelper (>= 9), autotools-dev,
librockchip-mpp-dev (>= 1.4.0), libx11-dev, libdrm-dev,
libgstreamer1.0-dev, libgstreamer-plugins-base1.0-dev

這裡唯一不可用的依賴項focallibrockchip-mpp1.

另一個搜尋將我帶到了一個提供librockchip-mpp{1,-dev}(或至少一個具有該名稱的包)的儲存庫。這個儲存庫還提供了為基於 debain 的發行版打包這個包的規則,所以這應該不會太難。這個也有一個debian/copyright指向自己的,所以它看起來更合法一些。

當我查看它的依賴項時,它只有debhelper, cmake作為它的建構依賴項。看來我們不需要再深入了。

要建構/安裝此軟體包:

  1. 選擇一個標籤,然後下載它的tar.gz。然後:
$ 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

就我願意追求這件事而言。

引用自:https://unix.stackexchange.com/questions/712733