apt-get을 사용하여 설치에서 특정 패키지를 제외 시키려면 어떻게합니까? install software-properties-common # need them for

특정 패키지를 설치에서 제외하고 싶습니다 apt-get. 즉, 특정 패키지 목록없이, 바람직하게는 한 번의 호출로 메타 패키지를 설치 하고 싶습니다 apt-get.

예를 들어 Ubuntu 14.04 LTS 명령 줄에서 MATE 데스크톱 환경을 설치하고 있습니다. 14.04에서 LTS MATE는 공식적인 맛이 아니므로 PPA를 추가하고 있습니다.

sudo apt-get install software-properties-common # need them for 'apt-add-repository'
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update

다음 설치 :

sudo apt-get install xorg mate-core --no-install-recommends

권장되는 추가 기능이 없어도 mate-core3 개의 터미널 에뮬레이터를 설치합니다. xterm, uxtermmate-terminal 이 최소 구성으로 설치되는 동안 적절한 글꼴이 없습니다.

내가 3 개 터미널 프로그램이 너무 많은 것 내가 설치하고 싶은 것을 결정 가정 xorgmate-core 없이 xtermmate-terminal. 나는 할 수있을 것이다

sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal

그러나 이것을 한 번에 할 수 있습니까? 다음과 같은 구문이 있습니까?

sudo apt-get install xorg mate-core --without xterm mate-terminal


답변

그래서, 동료 코어는 의존mate-desktop-environment-core다시하는 의존mate-terminal. A는 따라 쉽게 파괴 할 수 없습니다. 도 아니다 apt-getaptitude지원하는 --without또는 --exclude옵션과 패키지는 도움이되지 않습니다 “유지”

$ echo "메이트 터미널 홀드"| sudo dpkg-세트 선택
$ sudo apt-get mate-core 설치
[...]
일부 패키지를 설치할 수 없습니다 ...
다음 패키지는 충족되지 않은 종속성이 있습니다.

물론 dpkg --force-depends패키지를 설치하는 데 사용할 수 있지만 원하는 것은 아닐 수도 있습니다.

Depends:더미 패키지로 플래그를 가득 채울 수 있습니다 .

$ sudo apt-get 설치 equivs
$ equivs- 제어 메이트 터미널
$ vi 메이트 터미널
섹션 : 기타
우선 순위 : 옵션
표준 버전 : 3.9.2
패키지 : 메이트 터미널
버전 : 1.8.0
설명 : 메이트 터미널 용 더미 패키지
:엑스

$ equivs- 빌드 메이트 터미널
$ sudo dpkg -i mate-terminal_1.8.0_all.deb

이제 mate-corew / o를 설치할 수 있어야합니다 mate-terminal. 다른 패키지를 제외하려면 동일하게 반복하십시오.

분명히 이것은 상당한 노력이며 --without옵션은 좋을 것입니다. 어쩌면 위시리스트 버그 를 열어서 앞으로 이러한 기능을 제공 할 수도 있지만, 이것이 구현 될지는 의문입니다.

그러나보다 현실적인 옵션은 PPA 소유자 에게 더 적은 Depends패키지 세트로 MATE에 다른 메타 패키지를 제공 하도록 탄원하는 것 입니다.


답변

당신이 사용하는 경우 aptitude또는 그래픽 패키지 관리자 (시냅틱 등), 당신은 패키지가 설치되어야하는 선택을 취소 할 수 있습니다 만큼 그것은 의존성 문제가 발생하지 않습니다.

의 경우 aptitude(그래픽보기에서) 패키지를 설치하기 전에 종속 패키지가 설치되는 이유가 표시됩니다. 필자의 경우 KDE를 사용하므로 MATE 패키지가 없습니다. 설치하도록 지시 mate-core하면 다음과 같은 결과가 나타납니다.

공지 mate-core로 표시되어 수동으로 설치되고, 그리고 많은 다른 패키지가 설치되고있다. 위해 mate-terminal패키지 아래에서, 이것은 “라고 mate-desktop-environment-core[우주]에 의존한다 mate-terminal(> = 1.0.0).” 에 대한 항목까지 가서 mate-desktop-environment-core,

mate-core[우주]는 mate-desktop-environment-core(> = 1.8.0 + 9) 에 따라 다릅니다 .” 이것이 mate-terminal설치되는 이유 입니다.

대신 권장 패키지가 다른 패키지에 종속 된 것이 아니라 설치되는 경우 aptitude이를 알려주므로 종속성이 손상되지 않고 해당 패키지를 설치하지 않도록 지시 할 수 있습니다. 예를 들면 다음과 같습니다.


답변

다른 방법

다른 패키지에 의존하는 기본 패키지를 다운로드하십시오. 패키지를 추출하고 원하지 않는 종속성을 제거한 후 다시 포장하십시오. 이제 gdebi 패키지 설치 프로그램으로 새 패키지를여십시오 . 새로운 의존성을 설치합니다.

  • depencies 목록에서 찾을 수 있습니다 DEBIAN / 제어 >은 – 달려
  • deb repacing에 대한 도움말 은 PPA를 만드는 방법대한 내 대답을 참조하십시오.

답변

특별한있어 apt이 같은 시나리오에 대한 구문 : 패키지에 하이픈 (빼기 기호)를 추가하면 가장 가까운 있도록, 설치 / 제거하지 않습니다 sudo apt-get install xorg mate-core --without xterm mate-terminal
IS
sudo apt-get install xorg mate-core xterm- mate-terminal-
(에 발견 /ubuntu//a/1011439/182923 )

이 경우에는 도움이되지 않습니다.

The following packages have unmet dependencies:
 mate-desktop-environment-core : Depends: mate-terminal (>= 1.20) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

그러나 그것은 당신의 특정 질문에 대한 답변 인 것 같습니다. 참고로이 크로스 포스트입니다.