apt-get 설치가 로컬 라이브러리를 찾을 수 없습니다

apt-get 설치가 로컬 라이브러리를 찾을 수 없습니다

설치하고 얻으려고 시도한 후 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.

저장소를 복제하고 컴파일하고 설치했습니다.최대 전력점그리고 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

답변1

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

여기서 사용할 수 없는 유일한 종속성 focal은 입니다 librockchip-mpp1.

또 다른 검색을 통해 다음을 제공하는 저장소로 이동했습니다.librockchip-mpp{1,-dev}(또는 적어도 해당 이름을 가진 패키지). 저장소는 또한 디베인 기반 배포판을 위해 이 패키지를 패키징하기 위한 규칙을 제공하므로 이는 그리 어렵지 않습니다. 이것도 debian/copyright자신을 가리키는 a가 있어서 좀 더 합법적으로 보입니다.

종속성을 살펴보면 debhelper, cmake빌드 종속성만 있습니다. 더 이상 갈 필요는 없을 것 같습니다.

이 패키지를 빌드/설치하려면:

  1. 하나를 선택하세요상표을 다운로드하고보관소. 그 다음에:
$ 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

그것이 바로 제가 추구하고자 하는 것입니다.

답변2

당신은 등가물을 사용할 수 있습니다 (예:이 답변) 종속성을 만족하는 가짜 패키지를 생성합니다. 이것은 대안입니다실제로기본적으로 시스템에 "이 문제는 내가 처리했으니 나를 믿으세요"라고 알려주는 라이브러리를 패키징합니다.

관련 정보