내가 가지고있는, 말 foo-1.2.3.deb
에 의존 perl
하고 python
있지만, 명령을 실행 :
dpkg -i ./foo-1.2.3.deb
이러한 종속성을 설치하지 않습니다. 그래서 apt-get install perl python
손으로 해야합니다 .
dpkg -i
이러한 종속성을 자동으로 설치 하는 방법은 무엇입니까?
내가 가지고있는, 말 foo-1.2.3.deb
에 의존 perl
하고 python
있지만, 명령을 실행 :
dpkg -i ./foo-1.2.3.deb
이러한 종속성을 설치하지 않습니다. 그래서 apt-get install perl python
손으로 해야합니다 .
dpkg -i
이러한 종속성을 자동으로 설치 하는 방법은 무엇입니까?
답변:
를 사용한 후 dpkg
다음 명령을 실행하면 필요한 종속성을 설치하는 데 도움이되었습니다.
sudo apt-get -f install
터미널은 다음과 같아야합니다.
$ sudo dpkg -i package_with_unsatisfied_dependencies.deb
dpkg: dependency problems prevent ...
[additional messages]
$ sudo apt-get -f install
[apt messages]
Setting up [dependency]...
Setting up package_with_unsatisfied_dependencies...
에 대한 줄을 확인하십시오 Setting up package_with_unsatisfied_dependencies
. 이것은 설치를 수정 하고 완료합니다 package_with_unsatisfied_dependencies.deb
.
sudo dpkg -i mypackage.deb
다시?
sudo apt-get -f install
내 패키지를 실행 한 후 종속성이 모두 설치되었습니다. 실행 sudo dpkg -i my_package.deb
은 불필요하며 패키지를 다시 설치하면됩니다.
sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb
. 첫 번째 dpkg -i
실행은 종속성을 표시 apt-get -f install
하고 필수 종속성을 설치하며 두 번째 실행 dpkg -i
은 패키지를 성공적으로 설치합니다. 그 참고 apt-get install -f
완전히 다른 명령입니다.
dpkg -i --force
; 깨진 패키지를 강제 설치합니다! dpkg
/ without / --force
을 실행 하면 패키지 데이터베이스에 필요한 항목이 만들어 지므로 apt-get -f install
올바른 작업이 수행됩니다.
apt 1.1 (Xenial (16.04)에서 사용 가능, stretch) apt install
로 시작하면 로컬 파일도 허용됩니다.
sudo apt install ./foo-1.2.3.deb
훨씬 간단하고 깨끗합니다.
출시 발표를 참조하십시오
apt ./install foo-1.2.3.deb
효과가있었습니다.
./
또는 경로 를 놓쳤습니다
gdebi
deb 패키지 및 해당 종속성을 설치합니다. 그것을 사용하려면 다음을 실행하십시오.
sudo gdebi package.deb
최신 버전의 Ubuntu에서는 기본적으로 설치되지 않으므로 리포지토리에서 설치해야합니다.
man gdebi
전체 옵션 목록을 참조하십시오 .
gdebi
Ubuntu에 기본적으로 포함되었던 것과 같은 이름의 그래픽 도구에 해당하는 명령 줄입니다. 그래픽 도구의 명령 gdebi-gtk
은 비슷한 기능을 가지고 있습니다.
dpkg-repack
과 같은 deps 목록을 기반으로 사용할 수 있습니다 :)
달리는
sudo apt-get install -f
dpkg로 패키지를 설치 한 후 깨진 depencies를 해결할 수 있습니다 (적어도 사람은 그렇게 말하십시오 ...). 확인하면 업데이트됩니다.
sudo dpkg -i mypackage.deb
다시?
apt-get -f install
작동하지만 apt-get install -f
동일하지 않습니다.
dpkg는 종속성을 지원하지 않습니다. 그 주위에 방법이 있지만 로컬 데이터베이스를 만들어야하므로 이미 종속성을 알고 있어야하며 사용되지 않는 것으로 간주됩니다 (...).
명령 줄이어야합니까? (서버 설치?) 또한 살펴봐도 apt-get -f
주의해야합니다. 설치 후 종속성을 해결하면 시스템이 손상 될 수 있습니다.
gdebi (gui frontend)는 이것을 할 수 있었지만 USC로 대체되었습니다.
.deb를 어떻게 다운로드 했습니까? 새로운 11.04 기능 중 일부는 웹 사이트에서 다운로드 한 .deb를 처리하는 것입니다. USC에서 열리므로 설치 프로그램이 종속성을 해결합니다.
앤드류의 의견에 따라 편집 :
sudo gdebi foo-1.2.3.deb
트릭을 할 것입니다 !!
dpkg-dep-inst
다음과 같은 내용 으로 파일 을 만들 수 있습니다 .
#!/bin/bash
DEBIAN_FILE1=$1
dpkg -i $DEBIAN_FILE1 || apt-get --fix-broken install
홈 폴더에 파일을 만든 것으로 가정합니다. 와 그것을 실행 확인 chmod +x dpkg-dep-inst
과로 이동 /usr/local/bin
과 함께 sudo cp dpkg-dep-inst /usr/local/bin
.
이제 다음을 사용하여 종속성이있는 데비안 패키지를 자동으로 설치할 수 있습니다.
sudo dpkg-dep-inst foo-1.2.3.deb
apt-get --yes --fix-broken install
고정 장치를 자동으로 사용하십시오 .
실제로 대답은 dpkg
패키지 관리자가 즉시 종속성을 설치할 수 없다는 것입니다. 당신은 캠 man dpkg
과 그것을 발견했다. 그래서 당신은 같은 도구를 사용할 필요가 apt
, apt-get
, aptitude
, ...,에 기반 dpkg
.
rpm
다른 Linux 반구 의 패키지 관리자도 마찬가지 입니다. rmp
종속성 기반 설치를 수행하기위한 것이 아닙니다. 그것은 하나의 패키지를 설치할 수 있으며, 사용 종속성을 설치하기위한 yum
, urpmi
, up2date
이 모든 RPM 기반으로합니다.
언급했듯이 dpkg
나중에 의존성 해결이 @Rinzwind가 설명한 것처럼 시스템이 손상 될 수 있기 때문에 직접 패키지를 설치하면 약간의 위험이 있습니다.