설치할 deb 패키지가 있습니다.
dpkg -i my.deb
또는 apt로 설치해야 합니까?
소프트웨어 종속성 문제를 모두 잘 처리 할 수 있습니까?
apt가 있다면 apt로 deb에서 어떻게 설치할 수 있습니까?
답변
apt
패키지를 설치할 때 사용 하는 패키지 아래에서 dpkg
. apt를 사용하여 패키지를 설치하면 먼저 모든 종속성 목록을 작성하고 저장소에서 패키지를 다운로드합니다.
다운로드가 완료되면 dpkg
모든 종속성을 만족시키는 모든 파일을 설치 하도록 호출 합니다.
따라서 .deb
파일 이 있다면 :
-
다음을 사용하여 설치할 수 있습니다.
sudo dpkg -i /path/to/deb/file sudo apt-get install -f
-
sudo apt install ./name.deb
(또는sudo apt install /path/to/package/name.deb
)를 사용하여 설치할 수 있습니다 .이전
apt-get
버전에서는 먼저 deb 파일을/var/cache/apt/archives/
디렉토리 로 이동해야합니다 . 두 가지 경우 모두이 명령을 실행 한 후 자동으로 해당 종속성을 다운로드합니다. -
gdebi
.deb 파일을 사용하여 설치 하고여십시오 ( 오른쪽 클릭 -> 연결 프로그램 ). 모든 의존성으로 .deb 패키지를 설치합니다.( 참고 : APT는
/etc/apt/sources.list
파일과/etc/apt/sources.list.d
디렉토리 에 정의 된 저장소에서 사용 가능한 패키지의 데이터베이스 인 패키지 인덱스를 유지 관리합니다 . deb에 필요한 종속성이 패키지 인덱스에 없으면 이러한 모든 방법이 소프트웨어 종속성을 충족시키지 못합니다. .)
왜 sudo apt-get install -f
이후에 사용sudo dpkg -i /path/to/deb/file
합니까 (첫 번째 방법에서 언급)?
보낸 사람 man apt-get
:
-f, --fix-broken
Fix; attempt to correct a system with broken dependencies in place.
때 dpkg
패키지를 설치하고 패키지 의존성을 만족하지, 그것은 “구성되지 않은”상태에 패키지를 떠나 그 패키지가 깨진 것으로 간주됩니다.
sudo apt-get install -f
명령은 누락 된 종속성을 설치하여이 손상된 패키지를 수정하려고합니다.
답변
로 foo.deb
파일을 설치하십시오 dpkg -i foo.deb
. 해결되지 않은 종속성에 오류가 있으면 apt-get install -f
나중에 실행하십시오 .
답변
.deb
커맨드 라인에서 Ubuntu에 파일 을 설치하는 가장 좋은 방법은 다음과 같습니다 .
sudo gdebi skype.deb
gdebi
아직 설치 하지 않은 경우을 사용하여 설치하십시오 sudo apt install gdebi-core
.
왜 그 데비?
gdebi
.deb
파일 의 모든 종속성을 찾아서 파일을 설치하기 전에 설치 .deb
합니다. 나는 이것보다 훨씬 바람직하다 sudo dpkg -i skype.deb && sudo apt install -f
. 후자는 특정 상황에서 종속성을 제거하기를 너무 열망합니다. 예를 들어, Skype를 설치하려고 할 때 compiz
and unity
! gdebi
훨씬 더 명확한 오류 메시지가 나타납니다.
$ sudo gdebi skype.deb
Cannot install 'libqtgui:i386'
(그런데 특정 문제에 대한 해결책 은 다음과 같습니다 .)
답변
다음과 같은 방법으로 로컬 .deb 패키지를 설치할 수 있습니다.
sudo apt install ./foo.deb
로컬 상대 또는 절대 경로를 지정해야합니다 ( ./
현재 디렉토리에있는 경우). 그렇지 않으면 foo.deb
원격 저장소에서 찾아 실패합니다.
답변
종속성 dpkg -I my.deb
및 apt-get install
이전 종속성을 확인하십시오 dpkg -i my.deb
.
할 수 있습니다 당신은 복사 할 수 my.deb
있는을 /var/cache/apt/archives
하고 직접 설치 apt-get
하지만 시도하지 않았다.
작동하지 않습니다, apt-get
그리고 dpkg
아카이브에 나열된 패키지를 찾고 있습니다.
답변
가장 간단한 대답은을 실행하여 dpkg를 사용하는 것 dpkg -i packagename.deb
입니다. 그런 다음를 실행하여 제거 할 수 dpkg -r packagename.deb
있습니다.
apt-get
dpkg를 기반으로하는 더 높은 수준의 설치 관리자 apt-get install packagename.deb
입니다.
apt-get archives 디렉토리 ( /var/cache/apt/archives
) 에 추가하면 독립형 .deb 아카이브가 아닌 종속성이있는 패키지로 참조 할 수 있습니다.
또한 apt-get archives 디렉토리에 추가하여을 사용하여 종속성을 사용할 수 있습니다 apt-get install packagename
. 이를 통해 dpkg의 독립형 아카이브 기반 시스템 대신 수동으로 추가 된 종속성으로 설치할 수 있습니다.
답변
최신 apt-get을 사용하여 간단히 패키지를 설치할 수 있습니다 apt-get install /path/to/package/name.deb
.
(최고의 답변으로 편집해야하지만 거부되었습니다-https://unix.stackexchange.com/posts/159114/edit 참조 )