gdebi vs dpkg : gdebi는 어떻게 자동으로 누락 된 의존성을 얻습니까? 다른 모든 .deb 패키지 설치에 gdebi를 사용할 수 있습니까?


15

최근에 우분투를 Lubuntu 15.04에 다시 설치했습니다. 그래서 나는 Skype 설치를 찾고 있었고이 멋진 튜토리얼을 얻었습니다 .

정말 시원했습니다. 스카이프 deb의 공식 패키지를 여기 로부터 다운로드 했습니다

gdebi아직 설치 하지 않았으므로 다음을 사용하여 설치했습니다.sudo su -c apt-get install gdebi

그런 다음 skype-ubuntu-precise_4.3.0.37-1_i386.debgdebi 명령을 사용하여 설치하십시오.sudo su -c gdebi skype-ubuntu*4*.deb

와우, gdebi는 저를 위해 모든 것을 해주었습니다. 전통적인 Apt PPA 수동 링크 추가를 사용하지 않고도 번거 로움이없는 것은 시스템 업데이트 / 소프트웨어 설치를 손상시킬 것입니다 ..

그러나 내가 사용하여 설치하려고하면 dpkg -i

dpkg -i skype-ubuntu-precise_4.3.0.37-1_i386.deb
Selecting previously unselected package skype.
(Reading database ... 86449 files and directories currently installed.)
Preparing to unpack skype-ubuntu-precise_4.3.0.37-1_i386.deb ...
Unpacking skype (4.3.0.37-1) ...
dpkg: dependency problems prevent configuration of skype:
 skype depends on libc6 (>= 2.3.6-6~).
 skype depends on libc6 (>= 2.7).
 skype depends on libgcc1 (>= 1:4.1.1).
 skype depends on libqt4-dbus (>= 4:4.5.3).
 skype depends on libqt4-network (>= 4:4.8.0).
 skype depends on libqt4-xml (>= 4:4.5.3).
 skype depends on libqtcore4 (>= 4:4.7.0~beta1).
 skype depends on libqtgui4 (>= 4:4.8.0).
 skype depends on libqtwebkit4 (>= 2.2~2011week36).
 skype depends on libstdc++6 (>= 4.2.1).
 skype depends on libx11-6.
 skype depends on libxext6.
 skype depends on libxss1.
 skype depends on libxv1.
 skype depends on libssl1.0.0.
 skype depends on libpulse0.
 skype depends on libasound2-plugins.

dpkg: error processing package skype (--install):
 dependency problems - leaving unconfigured
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for mime-support (3.55ubuntu1.1) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu2) ...
Processing triggers for dbus (1.8.8-1ubuntu2.1) ...
Errors were encountered while processing:
 skype

많은 의존성 문제. 아 방금 GDebi를 봤는데 위키 백과는

GDebi는 명령 행과 GUI에서 사용할 수있는 APT 도구입니다. [44] GDebi는 dpkg 명령과 같은 명령 줄을 통해 로컬 .deb 파일을 설치할 수 있지만 저장소를 액세스하여 종속성을 해결할 수 있습니다.

내 궁금해

(1) gdebi는 구성 파일에서 수동으로 추가 된 Apt PPA 링크를 사용하지 않고 어떻게 .deb 패키지를 종속성과 함께 설치합니까?

(2) sudo su -c gdebi my.debApt PPA를 추가하지 않고 다른 모든 .deb 패키지를 설치하기 위해 동일한 gdebi 명령 ( )을 사용할 수 있습니까? 아니면 형식을 변경해야 sudo su -c my*n*.deb합니까? n은 소프트웨어 버전 등입니까?

내가 얻을 수 있도록 평신도 용어로 설명하십시오.

답변:


10

실제로 리포지토리에서 종속성 패키지를 확인하고 한 번의 작업으로 설치할 수 있지만 수동으로 두 번의 작업을 수행 할 수있는 기능이 추가 gdebi된 프런트 엔드 일뿐입니다 (나중에 ).dpkgdpkg -iapt-get -f install

질문 1:

1) gdebi는 어떻게합니까? 구성 파일에 수동으로 추가 된 Apt PPA 링크를 사용하지 않고 종속성이있는 .deb 패키지를 설치합니까?

dpkg프런트 엔드 이기 때문에의 모든 기능을 사용할 수 있습니다 dpkg. 모든 .deb패키지 파일에는 해당 deb 파일에 대한 메타 데이터 (패키지 이름, 관리자, 종속성 등)가 포함되어 있기 때문에이 파일의 종속성을 쉽게 확인할 수 있습니다.

예를 들어 다음을 사용하여 .deb 파일의 메타 데이터를 확인할 수 있습니다. dpkg --info package-name.deb

그런 다음 이러한 정보를 사용하여 종속성 맵을 구성하고 로컬에서 사용 가능한 .deb 파일을 이미 다운로드 한 것으로 표시 하고 .deb인터넷에서 다른 파일을 다운로드 합니다.

필요한 추가 패키지는 시스템에 구성된 하나 이상의 리포지토리에서 (적절한 버전으로) 사용 가능해야합니다.

그런 다음 정상적인 apt 설치처럼 진행됩니다. 차이점은 기본 .deb 파일을 다시 다운로드하지 않는다는 것입니다.

질문 2 :

(2) 동일한 gdebi 명령 ( sudo su -c gdebi my.deb)을 사용하여 PPA를 추가하지 않고 다른 모든 deb 패키지를 설치할 수 있습니까? 또는 sudo su -c myn.debn이 소프트웨어 등의 버전 인 경우 형식을 변경해야 합니까?

PPA는 이유가 있습니다. 주된 이유는 최신 버전의 패키지를 제공하기 때문입니다. 이러한 상위 버전 패키지는 일반적으로 상위 버전의 하위 패키지에도 의존하며 표준 Ubuntu 리포지토리가 아닌 PPA에서도 제공됩니다.

시나리오 예 :

패키지 이름, 가정 어머니 패키지 의 가장 높은 버전은 2.0표준 우분투 저장소에서, 그리고이 어머니 패키지는 패키지 이름에 따라 자식 패키지 2. 또한 가정 버전의 일부 PPA가 제공 어머니 패키지 버전 3.0에 필요 child-package의를 3.0둘 다 해당 PPA 리포지토리를 통해 사용할 수 있습니다.

지금 다운로드하면 문제는, 어머니 패키지 3.0.deb를 저장소 페이지에서와 함께 설치하려고 gdebi, 당신이 (또는 것 gdebi) 실패합니다.

때문에, 체크 어머니 패키지 3.0.deb의 파일을, gdebi이 것을 알고 어머니 패키지가 필요 아동 패키지 버전의 3.0이상하지만, 그것은 단지 버전의 위치를 알고있다 2.0. 이 버전 가져 오기 위치를 모르는 3.0어린이 패키지 에서. 이 최신 마더 패키지를 어디에서 구했는지 시스템에 알려주지 않았기 때문 입니다. 즉, 해당 PPA를 포함 하도록 리포지토리 목록 을 구성하지 않았습니다 .

이 질문은의 그래서, 명백한 대답은 상황에 따라 다르다 . 이미 구성된 저장소에서 필요한 종속성을 찾을 수 있으면 설치가 성공한 것 입니다. 그러나 그렇지 않은 경우이 상위 버전의 패키지를 설치하지 못합니다. 그렇기 때문에 여전히 PPA가 필요한 이유는 수동으로 PPA를 수행하지 않아도 가장 쉬운 방법입니다.

두 번째 질문의 두 번째 부분은 나에게 의미가 없었습니다 .


5

skype가 하나 인 응용 프로그램이 거의없는 동일한 문제가 있었는데, 수동으로 설치해야하는 외부 패키지 나 라이브러리 파일에 따라 다릅니다.

내가 사용한 문제를 해결하려면 다음을 수행하십시오.

sudo dpkg -i skype.deb

그런 다음 출력에서와 같이 외부 라이브러리를 묻는 메시지가 표시되면 다음을 입력했습니다.

sudo apt-get install -f

필요한 패키지를 다운로드하고 자체적으로 skype를 설치했습니다.


2

모든 .deb 패키지에는 호환 가능한 버전 번호를 가진 종속성 목록이 있습니다.

나는 파이썬 독자는 아니지만 소스 코드는 apt그 목록을 얻기 위해 전화를하는 것 같습니다 . 의존성의 종속성을 찾기 위해 재귀 적으로 내려야하지만 apt분명히 그렇게 할 수 있습니다.

종속성이 모두 올바르게 처리되고 올바른 순서로 배치되면 (다른 종속성을 설치하기 전에 일부 종속성 apt을 설치해야 함) 종속성을 설치하라는 메시지가 표시됩니다. 그런 다음 Gdebi에 인수로 제공된 패키지가 설치됩니다.

종속성과 대상 패키지는 두 가지 이유로 두 가지 작업으로 설치됩니다. 먼저 로컬 .deb를 설치하기위한 적절한 호출 형식은 리포지토리에서 종속성을 설치하기위한 적절한 호출 형식과 다릅니다. 둘째, 호출을 분리하면 대상 패키지 전에 종속성이 모두 설치됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.