it-gundan.com

dpkg -i 또는 apt로 deb 파일을 설치하는 방법은 무엇입니까?

설치할 deb 패키지가 있습니다.

dpkg -i my.deb 또는 apt로 설치해야합니까?

소프트웨어 종속성 문제를 모두 잘 처리 할 수 ​​있습니까?

Apt가 있다면 apt로 deb에서 어떻게 설치할 수 있습니까?

728
Tim

apt를 사용하여 패키지를 설치하면 아래에서dpkg를 사용합니다. apt를 사용하여 패키지를 설치하면 먼저 모든 종속성 목록을 작성하고 저장소에서 패키지를 다운로드합니다.

다운로드가 완료되면 dpkg를 호출하여 모든 파일을 설치하고 모든 종속성을 만족시킵니다.

.deb 파일이 있으면 다음 방법으로 설치할 수 있습니다.

  1. 사용 :

    Sudo dpkg -i /path/to/deb/file
    Sudo apt-get install -f
    
  2. 사용 :

    Sudo apt install ./name.deb
    

    또는

    Sudo apt install /path/to/package/name.deb
    

    이전 apt-get 버전에서는 먼저 deb 파일을 /var/cache/apt/archives/ 디렉토리로 이동해야합니다. 두 가지 경우 모두이 명령을 실행 한 후 자동으로 해당 종속성을 다운로드합니다.

  3. 먼저 gdebi를 설치 한 다음 .deb 파일을 사용하여여십시오 (오른쪽 클릭-> Open with). 모든 의존성으로 .deb 패키지를 설치합니다.

    참고 : APT /etc/apt/sources.list 파일과 /etc/apt/sources.list.d 디렉토리에있는 경우 deb에 필요한 종속성이 패키지 색인에 없으면 이러한 모든 방법이 소프트웨어 종속성을 충족시키지 못합니다.


방법 1에서 언급 한 것처럼 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 명령은 누락 된 종속성을 설치하여이 손상된 패키지를 수정하려고합니다.

939
g_p

foo.deb 파일과 dpkg -i foo.deb. 해결되지 않은 종속성에 오류가 있으면 apt-get install -f 나중에.

95
ihor_dvoretskyi

커맨드 라인에서 우분투에 .deb 파일을 설치하는 가장 좋은 방법은 다음과 같습니다.

Sudo gdebi skype.deb

gdebi이 (가) 아직 설치되어 있지 않으면 Sudo apt install gdebi-core를 사용하여 설치하십시오.

왜 그 데비?

gdebi.deb 파일의 모든 종속성을 찾고 .deb 파일을 설치하기 전에이를 설치합니다. Sudo dpkg -i skype.deb && Sudo apt install -f보다이 방법이 훨씬 좋습니다. 후자는 특정 상황에서 종속성을 제거하기를 너무 열망합니다. 예를 들어, Skype를 설치하려고 할 때 compizunity! gdebi가 훨씬 더 명확한 오류 메시지를 표시했습니다.

 $ Sudo gdebi skype.deb
 Cannot install 'libqtgui:i386'

(여기서는 해당 특정 문제에 대한 해결책 입니다)

66
Flimm

다음과 같은 방법으로 로컬 .deb 패키지를 설치할 수 있습니다.

Sudo apt install ./foo.deb

로컬 상대 또는 절대 경로 (./ 현재 디렉토리에있는 경우), 그렇지 않으면 foo.deb가 원격 저장소에서 실패했습니다.

60
wisbucky

dpkg -I my.deb 이전의 apt-get installdpkg -i my.deb로 종속성을 확인하십시오.

my.deb에서 /var/cache/apt/archives를 복사하여 apt-get로 직접 설치할 수는 있지만 시도한 적이 없습니다. 작동하지 않습니다. apt-getdpkg에서 아카이브에 나열된 패키지를 찾고 있습니다.

15
Alex

가장 간단한 대답은 dpkg -i packagename.deb. 그런 다음 dpkg -r packagename.deb.
apt-get는 dpkg 기반의 상위 레벨 설치 프로그램이므로 apt-get install packagename.deb.
apt-get 아카이브 디렉토리 (/var/cache/apt/archives) 따라서 독립형 .deb 아카이브가 아닌 종속성이있는 패키지로 참조 할 수 있습니다.
또한 apt-get archives 디렉토리에 디렉토리를 추가하면 apt-get install packagename. 이를 통해 dpkg의 독립형 아카이브 기반 시스템 대신 수동으로 추가 된 종속성으로 설치할 수 있습니다.

6
Interesting...

최신 apt-get을 사용하여 apt-get install /path/to/package/name.deb.

(최고의 답변으로 편집해야하지만 거부되었습니다- https://unix.stackexchange.com/posts/159114/edit 참조)

5
reducing activity