특정 패키지 설치를 금지하는 방법은 무엇입니까?


27

설치 한 다른 패키지에 특정 패키지가 필요한 경우에도 특정 패키지를 설치하지 않도록 Ubuntu를 구성 할 수 있습니까?


시스템을 손상시키지 않으려면 종속성없이 패키지를 설치할 수 없습니다.
enzotib

2
@enzotib, 당신이 잘못한 것 : 패키지 종속성은 중복 될 수 있습니다. 많은 예제가 있거나 필요한 패키지를 다른 방법으로 설치할 수 있습니다 (예 : repos의 모든 Java 응용 프로그램에 필요한 openjdk-6이 설치되어 있지만 실제로는 openjdk-6을 사용하지 않습니다) 대신 openjdk-7 또는 Oracle JDK 7을 사용하도록 모든 것을 설정하십시오. 그리고 두 번째 것은 종속 패키지를 설치하고 싶지 않다는 것입니다.이 경우 오류가 발생할 수 있습니다. 어쨌든 특정 패키지가 설치되지 않도록하고 싶습니다.
Ivan

답변:


28

데비안에서와 마찬가지로 우분투 에서도 버전 및 설치 제어 위해 apt-pinning 을 사용할 수 있습니다 .

주어진 패키지의 설치를 차단하기 위해 다음 줄을 넣을 수 있습니다 /etc/apt/preferences

Package: <nameofpackage>
Pin: origin ""
Pin-Priority: -1

이 핀에 음의 우선 순위를 부여하면 <nameofpackage>더 이상 지정되지 않은 원본, 즉 로컬 리포지토리 의 설치를 차단 합니다. 물론 적절한 고정 버전을 사용하여 특정 패키지 버전 또는 특정 출처를 고정 할 수 있습니다.

계속 진행하기 전에 위의 문서와 apt_preferences 의 맨 페이지를 읽어야합니다 . 이러한 파일의 오류는 apt에서 확인하지 않으며 이러한 오류가 발생하면 패키지 관리가 중단 될 수 있습니다.

대안 및 주어진 패키지의 업데이트를 방지하려면 다음을 참조하십시오.


이것이 우분투 12.04에서 작동하는지 알고 있습니까? 또 다른 질문 은 작동하지 않을 수 있다는보고입니다.
Lucio

1
@Lucio : 물론-여전히 작동합니다. 12.10에서도 작동하도록 테스트했습니다.
Takkat

3
에서 Package:- 라인,이 같은 공백으로 구분하여 여러 패키지를 나열 할 수 있습니다 : 패키지 : metacity의 metacity-일반적인 libmetacity-private0a을. (패키지 : metacity *와 같은 패턴처럼 보입니다)
Volker Siegel

5
우분투에서 16.04 Pin: origin ""는 나를 위해 작동하지 않았지만 작동했습니다 Pin: release *.
barbaz

3

데비안에서는 패키지를 차단할 수 있으며 그 패키지는 더 이상 업그레이드되지 않습니다

# echo name_of_package hold | dpkg --set-selections

그러나 나는 당신이 금지 할 수 있는지 확실하지 않습니다


방금 Ubuntu 15.10에서 시도했지만 패키지를 차단하지 않았습니다. 방금 경고를 했어요package not in database
Brent Baccala

2

다시 몰래 들어가서 자식을 깨는 패키지가 있습니다.

sudo apt-mark hold libgnutls-deb0-28

해당 패키지가 설치되지 않도록해야합니다

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