짧은 대답 :
APT 환경 설정 파일 / etc / apt / preferences를 사용하여 설치할 패키지 버전 을 제어 할 수 있습니다 .
다음은 단일 packge의 여러 버전이 있는지 선택해야하는 파일 을 결정 /etc/apt/preferences
하는 데 apt-get
사용 되는 파일 입니다. 이를 통해 로컬 리포지토리에서 제공되는 모든 패키지가 다른 패키지보다 우선합니다.
패키지 : *
핀 : 원점 ""
핀 우선 순위 : 1001
이것은 버전을 제어하지 않지만 두 패키지의 버전이 동일한 경우 소스 환경 설정입니다. 로컬 리포지토리에서 동일한 패키지 버전 에 가장 높은 우선 순위를 할당해야하는 경우 /etc/apt/sources.list
파일 의 맨 위에 파일 을 나열 하십시오.>
원래 질문에 대한 답변 :
sources.list 파일을 사용하지 않고 로컬 저장소에 가장 높은 우선 순위를 할당하는 방법은 무엇입니까?
sources.list
파일 을 사용하지 않고 로컬 리포지토리에 최우선 순위를 할당 할 방법이 없습니다 . 로컬 리포지토리에 가장 높은 우선 순위를 할당하려면 "sources.list"맨 위에 배치해야합니다.
이 질문에 대한 요약 답변 :
공식 저장소에서 동일한 패키지 버전을 다시 다운로드하는 대신 apt-get이 로컬 저장소 패키지를 선호하도록하려면 어떻게해야합니까? 로컬 저장소가 서명되고 신뢰됩니다. 우리는 이미 적절한 환경 설정 우선 순위를 시도했습니다.
/etc/apt/sources.list
파일을 사용하려면 로컬 저장소 행을이 파일의 맨 위에 두어야합니다. 아래 하나처럼.
deb cdrom : [쿠분투 12.04 LTS _Precise Pangolin_-Release i386 (20120424)] / 정확한 주 제한
deb 파일 : / media / Main / Precise-Debs-New /
deb 파일 : / media / Main / Linux-Software / Ubuntu / Precise /
deb http://archive.ubuntu.com/ubuntu 정확한 주요 우주 제한 다중 우주
deb-src http://archive.ubuntu.com/ubuntu 정확한 우주 주 다중 우주 제한 # 소프트웨어 속성에 의해 추가됨
# deb cdrom : [Xubuntu 12.04 LTS _Precise Pangolin_-Release i386 (20120423.1)] / 정확한 주요 다중 우주 제한 우주
# deb cdrom : [우분투 12.04 LTS _Precise Pangolin_-Release i386 (20120423)] / 정확한 주요 제한
# deb http://archive.canonical.com/ubuntu 정확한 파트너
# deb-src http://archive.canonical.com/ubuntu 정확한 파트너
# deb http://extras.ubuntu.com/ubuntu 정확한 주요
# deb-src http://extras.ubuntu.com/ubuntu 정확한 메인
그리고 "apt_preference"는 동일한 버전의 패키지 인스턴스 를 선택 하는 것과 아무 관련이 없습니다 . 여기서 요점은 /etc/apt/preference
파일을 사용 .deb
하여 로컬 저장소에 가장 높은 우선 순위를 지정하여 로컬 저장소에서 파일 을 선택 / 사용할 수 없다는 것입니다. 해당 파일 (기본 설정)은 동일한 버전의 특정 인스턴스 (.deb 파일)가 아닌 특정 버전을 선택하는 데 사용됩니다. 후자의 경우 /etc/apt/sources.list
위에서 언급 한 방법으로 파일 을 사용해야 합니다.
설명:
우리 모두가 apt_preference
목적을 잘못 이해 한 것 같습니다 . apt_preference 매뉴얼은 이것을 처음 3 단락에서 설명합니다 !!
APT 환경 설정 파일 / etc / apt / preferences를 사용하여 설치할 패키지 버전 을 제어 할 수 있습니다 .
sources.list (5) 파일에 둘 이상의 배포에 대한 참조가 포함 된 경우 여러 버전의 패키지를 설치할 수 있습니다 (예 : 안정 및 테스트). APT는 사용 가능한 각 버전에 우선 순위를 할당합니다. 종속성 제약 조건에 따라 apt-get (8)은 설치 우선 순위가 가장 높은 버전을 선택합니다. APT 환경 설정 파일은 APT가 기본적으로 패키지 버전에 지정하는 우선 순위를 대체하므로 설치를 위해 선택되는 항목을 사용자가 제어 할 수 있습니다.
가장 중요한 것은 세 번째 단락입니다
sources.list (5) 파일에 둘 이상의 소스에 대한 참조가 포함 된 경우 동일한 버전의 패키지 인스턴스가 여러 개있을 수 있습니다. 이 경우 apt-get (8)은 sources.list (5) 파일에서 가장 먼저 나열된 인스턴스를 다운로드합니다. APT 환경 설정 파일은 인스턴스 선택에 영향을 미치지 않으며 version 선택에만 영향을줍니다 .
이탤릭체는 내것에 의해 만들어졌다
예를 들어 이것을 보자.
의 정확한 버전이 compiz-fusion-plugins-extra
있지만 데모를 위해 사용 중지했습니다.
다음은 단일 packge의 여러 버전이 있는지 선택해야하는 파일 을 결정 /etc/apt/preferences
하는 데 apt-get
사용 되는 파일 입니다. (이 예에서는 compiz-fusion-plugins-extra
여러 버전이 있습니다.
패키지 : *
핀 : 원점 ""
핀 우선 순위 : 1001
이 파일은 apt-get
여러 저장소가있는 모든 패키지에 대해 로컬 저장소에서 설치하라는 메시지를 표시합니다.
내가 패키지가있는 경우 즉, xapps
버전으로 1.0
내 로컬 저장소에,이 같은 패키지가 xapps
더 높은 버전의 정확한 저장소에 존재하는, 말 2.0
, apt-get
로컬 저장소, 즉 버전의 버전을 선호합니다 1.0
.
여기 내 /etc/apt/sources.list
파일이 있습니다
deb http://archive.ubuntu.com/ubuntu 정확한 주요 우주 제한 다중 우주
deb-src http://archive.ubuntu.com/ubuntu 정확한 우주 주 다중 우주 제한 # 소프트웨어 속성에 의해 추가됨
deb http://security.ubuntu.com/ubuntu/ 정확한 보안 우주 주 다중 우주 제한
deb http://archive.ubuntu.com/ubuntu 정확한 업데이트 우주 주요 다중 우주 제한
deb http://archive.ubuntu.com/ubuntu 정확한 백 포트 우주 주 다중 우주 제한
# deb http://archive.canonical.com/ubuntu 정확한 파트너
# deb-src http://archive.canonical.com/ubuntu 정확한 파트너
# deb http://extras.ubuntu.com/ubuntu 정확한 주요
# deb-src http://extras.ubuntu.com/ubuntu 정확한 메인
deb 파일 : / media / Main / Linux-Software / Ubuntu / Oneiric / # 이것은 oneiric 저장소입니다.
deb 파일 : / media / Main / Linux-Software / Ubuntu / Natty / natty /
deb 파일 : / media / Main / Linux-Software / Ubuntu / Natty / kubuntu /
deb 파일 : / media / Main / Linux-Software / Ubuntu / Natty / natty_new /
필자는 파일의 앞부분에 정확한 저장소를 나열했지만 apt-get
해당 저장소에서 패키지를 선택 하지는 않습니다 . 매뉴얼에 설명 된대로
APT 환경 설정 파일은 인스턴스 선택에 영향을 미치지 않으며 버전 선택에만 영향을줍니다.
따라서 명령의 출력은 다음 apt-cache policy compiz-fusion-plugins-extra
과 같이 예상되었습니다.
anwar @ edubuntu-lenovo : / etc / apt $ apt-cache policy compiz-fusion-plugins-extra
compiz-fusion-plugins-extra :
설치됨 : (없음)
후보자 : 0.9.5.94-0ubuntu1 / ** 우선 순위가 낮은 버전 선택 ** /
버전 테이블 :
0.9.7.0 ~ bzr9-0 우분투 60
500 http://archive.ubuntu.com/ubuntu/ precision / universe i386 패키지
0.9.5.94-0 우분투 100
1001 파일 : / media / Main / Linux-Software / Ubuntu / Oneiric / 패키지
0.9.4-0 우분투 3 0
1001 파일 : / media / Main / Linux-Software / Ubuntu / Natty / natty / 패키지
여기서 후보 버전은 정밀 저장소에있는 (가 0.9.5.94-0ubuntu1
아닌 로컬 저장소에 있음) 0.9.7.0~bzr9-0ubuntu6 0
입니다. 정확한 것은 ' sources.list
파일 에서 첫 번째로 나열되었지만 .
로컬 리포지토리에 가장 높은 우선 순위를 설정 한 후 apt-get
설치하려고 하는 예제 실행 compiz-fusion-plugins-extra
.
anwar @ edubuntu-lenovo : ~ $ sudo apt-get 설치 compiz-fusion-plugins-extra
패키지 목록을 읽는 중 ... 완료
의존성 트리 구축
상태 정보를 읽는 중 ... 완료
다음 패키지가 자동으로 설치되었으며 더 이상 필요하지 않습니다.
x11-apps x11-xfs-utils xinit x11-session-utils libfs6
'apt-get autoremove'를 사용하여 제거하십시오.
다음과 같은 추가 패키지가 설치됩니다.
compiz-core compiz-plugins-default compiz-plugins-extra
compiz-plugins-main-default libdecoration0 xserver-xorg-core
xserver-xorg-video-intel
권장 패키지 :
compizconfig 설정 관리자 xfonts-100dpi xfonts-75dpi
다음 패키지가 제거됩니다.
compiz compiz-gnome compizconfig-backend-gconf edubuntu-desktop
libcompizconfig0 우분투-데스크탑 유니티 xorg xserver-xorg
xserver-xorg-input-all 모든 xserver-xorg-input-evdev xserver-xorg-input-mouse
xserver-xorg- 입력-시냅스 xserver-xorg-input-vmmouse
xserver-xorg-input-wacom xserver-xorg-video-all 모든 xserver-xorg-video-ati
xserver-xorg-video-cirrus x 서버 -xorg-video-fbdev xserver-xorg-video-geode
xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-neomagic
xserver-xorg-video-nouveau xserver-xorg-video-openchrome
xserver-xorg-video-qxl x 서버 -xorg-video-r128 xserver-xorg-video-radeon
xserver-xorg-video-s3 xserver-xorg-video-savage
xserver-xorg-video-siliconmotion xserver-xorg- 비디오 -sis
xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg- 비디오 트라이던트
xserver-xorg-video-vesa xserver-xorg-video-vmware
다음과 같은 새로운 패키지가 설치됩니다.
compiz-fusion-plugins-extra compiz-plugins-extra 추가
다음 패키지가 다운 그레이드됩니다.
compiz-core compiz-plugins-default compiz-plugins-main-default
libserveration0 xserver-xorg-core xserver-xorg-video- 인텔
0 업그레이드, 2 새로 설치, 6 다운 그레이드, 37을 제거하고 698을 업그레이드하지 않았습니다.
0 B / 5,772 kB의 아카이브를 가져와야합니다.
이 작업 후 8,294 kB 디스크 공간이 확보됩니다.
[Y / n]을 계속 하시겠습니까?
Strange !!!, 새로 선택된 compiz-fusion-plugins-extra
!!!으로 의존성을 해결하기 위해 이미 설치된 compiz 패키지를 다운 그레이드하려고합니다 (Oneiric의 것과 일치) .
더 위험한 것은 새로운 compize와의 충돌을 피하기 위해 그래픽 드라이버 패키지 (xserver-xorg -....)를 제거하려고합니다.
(아마도 로컬 리포지토리에 패키지가 있으면 안전하게 다운 그레이드 할 수 있습니다. 그러나 패키지가 일반적으로 설치되어 있으므로 다운로드하지 않았으므로 로컬 리포지토리에 없으므로이 결과가 아닙니다) .
결론 : 따라서 /etc/apt/preferences
로컬 시스템에 완전한 저장소가있는 경우 로컬 저장소와 함께 사용하는 것이 좋습니다.
동일한 버전의 여러 인스턴스 (.deb 파일)가 많은 리포지토리에있는 경우 어떻게해야합니까?
apt_preference
매뉴얼에 설명되어 있습니다
sources.list (5) 파일에 둘 이상의 소스에 대한 참조가 포함 된 경우 동일한 버전의 패키지 인스턴스가 여러 개있을 수 있습니다. 이 경우 apt-get (8)은 sources.list (5) 파일에서 가장 먼저 나열된 인스턴스를 다운로드합니다.
/etc/apt/preferences
파일 사용 사례의 예 :
apt-get
우분투의 표준 버전 대신 커스텀 리포지토리에서 사용 가능한 버전 을 강제 로 선택 하는 예는 "Linux Mint"배포판 일 수 있습니다. 그들은이 커스텀 preference
파일을 사용 합니다.
패키지 : *
핀 : 릴리스 o = linuxmint
핀 우선 순위 : 700
패키지 : *
핀 : origin packages.linuxmint.com
핀 우선 순위 : 700
패키지 : *
핀 : 릴리스 o = 우분투
핀 우선 순위 : 500
이로 인해 저장소에 패키지가있을 때 패키지를 제공 할 수 있습니다. 그러나 이들이 없다면 우분투의 표준 저장소를 사용합니다.
apt-get
로컬 저장소에 최우선 순위를 설정 한 후 실행되는 예제
kubuntu-desktop
KDE를 테스트하기 위해 우분투 위에 패키지 를 설치하고 싶었습니다 . (나는 /etc/apt/preference
파일을 사용하여 환경 설정을 설정했음을 잊었습니다 ) . 나는 kubuntu-12.04-alternate-installer의 ISO를 가지고 있었으므로 사용할 수 있다고 생각했습니다.
(Iso를 저장소 소스로 올바르게 설정 한 후)을 실행
sudo apt-get install kubuntu-desktop
한 다음 아래 출력을보고 놀랐습니다.
anwar @ edubuntu-lenovo : ~ $ sudo apt-get 설치 kubuntu-desktop
패키지 목록을 읽는 중 ... 완료
의존성 트리 구축
상태 정보를 읽는 중 ... 완료
일부 패키지를 설치할 수 없습니다. 이것은 당신이 가지고 있음을 의미 할 수 있습니다
불가능한 상황을 요청했거나 불안정한 경우
일부 필수 패키지가 아직 작성되지 않은 분배
또는 수신에서 제외되었습니다.
다음 정보는 상황을 해결하는 데 도움이 될 수 있습니다.
다음 패키지는 충족되지 않은 종속성이 있습니다.
kubuntu-desktop : 의존 : language-selector-kde 그러나 설치되지는 않습니다
권장 사항 : amarok이지만 설치되지는 않습니다.
권장 사항 : apturl-kde이지만 설치되지는 않습니다.
권장 사항 : gdebi-kde이지만 설치되지는 않습니다.
권장 사항 : gpgsm이지만 설치되지는 않습니다.
권장 사항 : ibus-qt4이지만 설치되지는 않습니다.
권장 사항 : jockey-kde이지만 설치되지는 않습니다.
권장 사항 : kdegraphics-strigi-plugins이지만 설치되지는 않습니다.
권장 사항 : kdepim-wizards이지만 설치되지는 않습니다.
권장 사항 : kpackagekit이지만 설치되지 않음
권장 사항 : libreoffice-kde이지만 설치되지는 않습니다.
권장 사항 : libreoffice-style-oxygen이지만 설치되지는 않습니다.
권장 사항 : network-manager-pptp-kde이지만 설치되지는 않습니다.
권장 사항 : plasma-widget-facebook이지만 설치되지는 않습니다.
권장 사항 : plasma-widget-kimpanel이지만 설치되지는 않습니다.
권장 사항 : usb-creator-kde이지만 설치되지는 않습니다.
E : 문제를 해결할 수 없어서 깨진 패키지가 있습니다.
결과에 놀랐습니다. 갑자기 나는 내가 (환경 설정을 한 그 기억 이 답변 쓰기위한 에서) /etc/apt/preference
내 로컬 저장소에 세트에 가장 높은 우선 순위를.
그래서 이것을 실행했습니다 : apt-cache policy kubuntu-desktop
, 출력은 다음과 같습니다.
anwar @ edubuntu-lenovo : ~ $ 아파트 캐시 정책 kubuntu-desktop
쿠분투 데스크탑 :
설치됨 : (없음)
후보자 : 1.222.1kde47 ~ ppa2
버전 테이블 :
1.254 0
500 cdrom : // Kubuntu 12.04 LTS _Precise Pangolin_-Release i386 (20120424) / 정확 / 주요 i386 패키지
500 http://archive.ubuntu.com/ubuntu/ 정확한 / main i386 패키지
1.222.1kde47 ~ ppa2 0
1001 파일 : / media / Main / Linux-Software / Ubuntu / Natty / natty / 패키지
1.222.1 0
1001 파일 : / media / Main / Linux-Software / Ubuntu / Natty / natty / 패키지
1.222 0
1001 파일 : / media / Main / Linux-Software / Ubuntu / Natty / kubuntu / 패키지
이 출력에서 "cdrom"및 "precise main repository"의 버전 번호는 1.254 이고 로컬 저장소의 버전은 1.222.1kde47 ~ ppa2 이며 낮은 버전입니다. 비록 그것들이 sources.list 파일에서 로컬 것들보다 우선하지만 로컬 패키지가 우선합니다.
그것이 apt-get
실제로 로컬에서 설치하려고 한다는 것을 분명히하기 위해 , 나는 이것을 실행 synaptic
하여 Apt 시스템이 1.222.1kde47 ~ ppa2 를 설치할 후보 버전으로 간주한다는 것을 보여줍니다 .
또한 apt-cache policy kubuntu-desktop
같은 것을 보여주는
anwar @ edubuntu-lenovo : ~ $ 아파트 캐시 정책 kubuntu-desktop
쿠분투 데스크탑 :
설치됨 : (없음)
후보자 : 1.222.1kde47 ~ ppa2
버전 테이블 :
1.254 0
500 cdrom : // Kubuntu 12.04 LTS _Precise Pangolin_-Release i386 (20120424) / 정확 / 주요 i386 패키지
500 http://archive.ubuntu.com/ubuntu/ 정확한 / main i386 패키지
1.222.1kde47 ~ ppa2 0
1001 파일 : / media / Main / Linux-Software / Ubuntu / Natty / natty / 패키지
1.222.1 0
1001 파일 : / media / Main / Linux-Software / Ubuntu / Natty / natty / 패키지
1.222 0
1001 파일 : / media / Main / Linux-Software / Ubuntu / Natty / kubuntu / 패키지
이 문제를 해결하기 위해 /etc/apt/preference
파일을로 제거 했습니다 sudo rm /etc/apt/preference
.
그런 다음 다시 이것을 다시 실행하십시오 apt-cache policy kubuntu-desktop
. 이 예상 된 출력 만 볼 수 있습니다.
anwar @ edubuntu-lenovo : ~ $ sudo rm / etc / apt / preferences
anwar @ edubuntu-lenovo : ~ $ sudo apt-cache 정책 쿠분투 데스크탑
쿠분투 데스크탑 :
설치됨 : (없음)
후보자 : 1.254
버전 테이블 :
1.254 0
500 cdrom : // Kubuntu 12.04 LTS _Precise Pangolin_-Release i386 (20120424) / 정확 / 주요 i386 패키지
500 http://archive.ubuntu.com/ubuntu/ 정확한 / main i386 패키지
1.222.1kde47 ~ ppa2 0
500 파일 : / media / Main / Linux-Software / Ubuntu / Natty / natty / 패키지
1.222.1 0
500 파일 : / media / Main / Linux-Software / Ubuntu / Natty / natty / 패키지
1.222 0
500 파일 : / media / Main / Linux-Software / Ubuntu / Natty / kubuntu / 패키지
또한 이것을 다시 실행했습니다. sudo apt-get install kubuntu-desktop
아래 출력을 보려면
......... 불필요한 세부 사항이 삭제되었습니다 .........
0 업그레이드, 213 새로 설치, 0 제거 및 150 업그레이드되지 않음.
0 B / 89.6 MB의 아카이브를 가져와야합니다.
이 작업 후에 269MB의 추가 디스크 공간이 사용됩니다.
[Y / n]을 계속 하시겠습니까?
여기 에서 전체 결과를 확인할 수 있습니다
그런 다음 설명 부분에 대해 확신합니다.
참조 1 : apt_preference 매뉴얼
참조 2 : 특정 버전의 패키지를 설치하는 방법