답변:
로컬에 설치된 패키지, 제안 및 백 포트 패키지에서 안정 + 업데이트 채널로 되 돌리는 일반적인 방법은 다음과 같습니다. 다른 답변은 정확하고 비슷한 방식으로 작동하지만 더 우아한 접근법이라고 생각합니다.
-proposed
또는 -backports
당신의 /etc/apt/sources.list
및 /etc/apt/sources.list.d/*
파일을.예 /etc/apt/preferences.d/99-back-to-stable-updates
를 들어 다음과 같이 apt-preferences 파일을 추가 precise
하십시오.
Package: *
Pin: release a=precise
Pin-Priority: 1001
Package: *
Pin: release a=precise-updates
Pin-Priority: 1001
Package: *
Pin: release a=precise-security
Pin-Priority: 1001
Package: *
Pin: release a=precise-proposed
Pin-Priority: -10
Package: *
Pin: release a=precise-backports
Pin-Priority: -10
1,000>의 고정이 쉬워 힘 채널의 패키지에 대한 하향 및 우선 순위에 <0 인 것 -proposed
및 -backports
도 추가적인 패키지를 제거 할 것이다 채널.
이제 실행
sudo apt-get update
sudo apt-get dist-upgrade
제안 된 솔루션 apt가 당신에게 줄 것이라고 검사하고, 괜찮다고 생각되면 수락하십시오. 다운 그레이드되는 이유와 버전을 확인해야하는 경우이 apt-cache policy packagename
버전을 확인하여 사용 가능한 버전과 설치 후보가 어떤 버전인지 결정하십시오.
/etc/apt/preferences.d/99-back-to-stable-updates
더 이상 필요하지 않으므로 파일을 다시 제거하십시오 .
mlind
우분투 포럼 에서 5 년 전부터 자신의 게시물 을 고정시키는 데 대한이 소식 에 감사를 드렸습니다. 그러나 그것은 오늘날에도 꽤 도움이되었습니다.
이 페이지 에서는 핀보다 높은 우선 순위가 1000보다 높으면 패키지 다운 그레이드가 발생할 수 있다는 사실을 활용하여 Apt 피닝을 사용하여 전체 리포지토리에서 다운 그레이드 할 수 있다고 제안합니다 .
따라서 하나의 솔루션은 natty-proposed
저장소의 파일을 제외한 모든 패키지 파일의 기본 우선 순위를 일시적으로 1000 씩 증가시키는 것 입니다.
apt-cache policy | awk '
/^ [0-9]+ / {
p = $1;
getline;
r = $0;
if (r !~ /a=natty-proposed/) p += 1000;
print "Package: *\nPin: " r "\nPin-priority: " p "\n"
}
' | sudo tee /etc/apt/preferences.d/downgrade-from-natty-proposed
(참고 :이 방법 은 릴리스 필드에 쉼표가 포함 된 패키지 파일 의 우선 순위를 높이 지 못합니다 . 이 질문을 참조하십시오 .)
이 작업을 수행 한 후 apt-get --simulate upgrade
다운 그레이드 감지 성공 여부를 테스트하는 데 사용할 수 있습니다. 올바른 다운 그레이드가 감지되었음을 확인한 후 다운 그레이드 sudo apt-get upgrade
를 수행하는 데 필요한 모든 것이어야합니다.
다운 그레이드가 완료되면 소프트웨어 소스를 사용하여 시험판 업데이트 (natty-proposed) 저장소 를 비활성화 한 다음 임시 우선 순위 증가를 제거하십시오.
sudo rm /etc/apt/preferences.d/downgrade-from-natty-proposed
마지막으로, 실행중인 모든 프로그램이 다운 그레이드 된 버전이되도록 재부팅하십시오.
다음보다 간단한 해결책을 찾을 수 없습니다. 그러나 누군가가 더 나은 답변을 얻기를 바랍니다.
다운 그레이드를 실행할 수있는 다음 스크립트
#!/bin/bash
# get a list of installed packages
dpkg --get-selections | awk '{ print $1 }' > all-packages
# run apt-cache policy on each of them, then elaborate with the awk script
apt-cache policy $(<all-packages) |
./get-prev-pkg-vers >old-versions
# install previous version of packages
sudo apt-get --simulate install $(< old-versions)
awk
라는 이름의 스크립트는 get-prev-pkg-vers
다음과 같다
#!/usr/bin/awk -f
/^[^ ]/ {
package = $1
gsub(":", "", package)
search_next = 0
}
/^ [^ ]/ {
installed = 0
version = $1
if (search_next == 1) {
print package "=" version
search_next = 0
}
}
/^ \*\*\* [^ ]/ {
installed = 1
}
/^ [^ ]/ {
branch = $3
if (installed == 1 && branch ~ /proposed/) {
search_next = 1
}
installed = 0
}
스크립트를 실행할 때 제안 된 저장소가 아직 비활성화되어 있지 않아야합니다.
두 스크립트 모두에서 실행 비트를 설정해야합니다.
이 방법의 문제점은 다운 그레이드 된 모든 패키지가 수동으로 설치되어 자동으로 설치된 패키지로 생성된다는 것입니다.
안전 을 위해 bash 스크립트 끝에 --simulate
옵션을 추가하십시오 apt-get
.
natty 제안에서 모든 패키지를 되돌릴 필요는 없습니다. 어쨌든 natty-updates를 통해 대부분의 패키지가 곧 같은 버전으로 업데이트 될 것입니다.
하나의 패키지에 문제가있는 경우 darent present (비활성화 제안 후) 방법을 사용하여 하나의 패키지를 되돌 리거나 사용할 수 있습니다 sudo aptitude install packagename/natty
. 그러나 더 중요한 것은 패키지에 대해 버그를 신고해야합니다. 실제로 natty 제안을 테스트 한 사람은 거의 없으며 회귀 (= 새로운 문제)가 발생하면 반드시보고해야합니다. 그렇지 않으면 모든 우분투 사용자의 업데이트로 끝날 수 있습니다. 문제가있는 경우보고하십시오.
시냅스에서 제안 된 저장소를 비활성화하고 소스를 업데이트 할 수 있습니다. 그러면 업데이트 된 모든 패키지가 로컬에 설치된 것으로 나타납니다 (더 이상 repos에 없기 때문에).
이제 해당 패키지를 "다운 그레이드"해야합니다. 하나씩 선택하고 상단 메뉴에서 다음을 선택하십시오.
package > force version
(또는 Control + E)
사용 가능한 옵션이있는 메뉴가 나타납니다. 각 패키지마다 더 낮은 버전 번호를 선택합니다. 실수로 일반 저장소에 최신 버전이 있으면 이후 업데이트에서 해결 될 것입니다.
빠른 해결책은 porposed-positor 명령을 사용하여 배치 된 저장소를 가리키는 것이지만, 그것들과 함께 작동하는지 알지 못합니다. 외부 ppa 및 다운 그레이드 패키지를 공식 우분투 버전으로 제거하는 데만 사용했습니다. 이 경우이 작업을 수행하지 않는 것이 좋습니다. 아마도 안전한 방법인지 알고있을 것입니다 ...
나는 모든 다운 그레이드 할 수있는 기능을 제공하기 위해 제안 proposed
에 대한 간단한 유지 명령 equiavalent와 패키지 ppa-purge
에 https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1810499을 여기 게시물은 여전히를 표현하는 것 때문에 시스템 상태.
"제안"– 알 겠어요?