apt-get을 통해 패키지를 다운 그레이드하는 방법은 무엇입니까?


309

를 통해 패키지를 이전 버전으로 다운 그레이드하려면 어떻게 apt-get해야합니까?

다른 도구들도 허용되지만 apt-get바람직하다.

답변:


307

버전 번호 또는 대상 릴리스가 apt-get있는 경우 특정 버전 또는 대상 릴리스 선택을 지원합니다. 자세한 내용 은 apt-get 매뉴얼 페이지에서 찾을 수 있습니다 . 다음을 입력하여 터미널에서 액세스 할 수도 있습니다man apt-get

sudo apt-get install <package-name>=<package-version-number> 또는

sudo apt-get -t=<target release> install <package-name>

실행할 명령입니다. 패키지를 특정 버전으로 다운 그레이드하는 데 사용할 수 있습니다.

그것은 의견에서 도움이되었습니다 지적

  • apt-cache showpkg <package-name>사용 가능한 모든 버전을 나열합니다. (h / t 스파 파 호크 )
  • apt-mark hold <package-name> 현재 버전에서 패키지를 "보류"하여 자동 업그레이드를 방지합니다. (h / t Luís de Sousa )

58
또한 사용 apt-cache showpkg <package-name>가능한 버전을 나열 하는 데 사용 하십시오.
Sparhawk

16
그리고 나서 apt-mark hold <package-name>자동 업그레이드를 피하기 위해 다음을 실행할 수도 있습니다 .
Luís de Sousa

4
나는 aptitude의존성을보다 다운 그레이드하는 것이 더 낫다는 것을 알았다 apt-get.
krispy

5
apt-cache policy <package-name>설치 및 사용 가능한 버전 만 표시
Michael Lawton

18
그리고 만약에 showpkg당신이 관심있는 버전을 표시하지 않는 이유는 무엇입니까?
demongolem 2016 년

104

사용하다

apt-get install «pkg»=«version»

또는

sudo aptitude install «pkg»=«version»

여기서 «pkg» 는 패키지 이름이고 «version» 은 버전 번호입니다.


3
내가 apt-get install pkg=versionapt-get을 입력 하면 설치된 모든 패키지의 거의 절반을 제거 할 수 있습니다. 물론 내가하고 싶지 않은 것
Dfr

더 많은 투표로 (그렇지 않으면 동일한) 답변에서 지적했듯이, 이것은 aptitude보다 나은 일 을하는 주요 사례 중 하나 인 것 같습니다 apt-get. 필자의 경우 apt-get다운 그레이드 요청을 단호히 거부했지만 aptitude최신 버전에 의존하는 다른 pkg이 있었으므로 동시에 다운 그레이드해야한다고 지적했습니다.
sxc731

28

ppa를 사용하여 소프트웨어를 업그레이드 한 경우을 사용하여 소프트웨어를 다운 그레이드 할 수 있습니다 ppa-purge. 먼저이 ppa-purge코드 를 사용 하여 설치해야 합니다.

sudo apt-get ppa-purge 설치

그런 다음 명령을 사용하여 ppa를 제거 할 수 있습니다

sudo ppa-purge ppa : 사용자 / ppa-name

그러면 소프트웨어가 Ubuntu와 함께 제공된 원래 버전으로 자동 다운 그레이드됩니다.


1
이 솔루션은 패키지에 다운 그레이드되어야하는 종속성이있는 경우에 필적 할 수 없습니다. 감사!
그리고

1
예, 이것은 kubuntu-ppa / backports에서 KDE / Plasma 데스크탑을 다운 그레이드하는 데 가장 적합한 솔루션입니다. 내가 주목 한 것은 PPA의 .list 파일에 deb가 주석 처리되어 있지 않아야하므로 ppa-purge가 모든 파일을 참조 할 수 있다는 것입니다 제거를 위해 제거해야합니다. 왜 처음에는 작동하지 않는지 알아 내기 위해 잠시 시간을 내주었습니다. 다른 사람들을 돕는 희망!
AveryFreeman

10

다운 그레이드하려면 다음과 같은 명령을 수행해야합니다

 sudo apt-get install pkg_name=version

터미널에서.

version다운 그레이드하려는 이전 버전을 대신 하십시오.


다운 그레이드 해야하는 패키지에 의존하는 linux-generic에서는 적어도 작동하지 않습니다. 내가 얻을 paste.ubuntu.com/p/NWSmf2ZwTy
으로 myMedia

9

내 의견으로는 먼저 다음과 같이 패키지를 제거하거나 제거해야합니다.

sudo apt-get remove <package>

또는

sudo apt-get purge <package>

그런 다음 설치하려는 버전을 다운로드하여 다운로드와 같은 폴더에 보관할 수 abc.deb있습니다. 터미널을 열고 cd명령을 사용하여 폴더로 이동 한 후 다음을 사용 하여 이전 버전을 설치하십시오 dpkg.

sudo dpkg -i abc.deb

또는 ppa-purgePPA를 통해 업데이트 된 패키지를 다운 그레이드하려는 경우 라는 작은 유틸리티 가 있습니다.

이 스레드를 참조하십시오 : http://www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html


3
패키지를 제거하면 많은 종속 패키지가 제거되어 시스템을 사용할 수 없게됩니다. ppapurge는 흥미있는 것처럼 들린다.
입력

12
이전 버전의 패키지를 설치하기 전에 먼저 별도의 단계로 패키지를 제거해야한다고 생각 하는 이유 를 설명 할 수 있습니까 ?
Eliah Kagan


1
@temoto 링크는 개별 패키지를 다운 그레이드하지 않는 릴리스 다운 그레이드 unstable-> testing-> 용 stable입니다.
Braiam

0

이 질문은 오래되었지만 Google이 여기로 이끌었고 패키지 묶음을 이전 릴리스로 다운 그레이드 할 때 수동 버전 전달이 필요없는 간단한 soulution을 찾지 못했습니다.

어쩌면 그것을 필요로하는 사람도 내 솔루션을 유용하게 사용할 수 있습니다.

apt-show-versions설치된 버전을 표시 하는 도구가 있습니다 .

정규식을 미세 조정하여 필요한 모든 패키지를 쉽게 다운 그레이드 할 수 있지만 다음과 같습니다.

$ sudo apt-get install $(apt-show-versions | grep -P 'newer than version in archive' | awk -F: '{print $1"/jessie"}')

대신 필요에 따라 / / etc를 jessie사용할 수 있습니다 .busterxenial


또는 최신 설치된 릴리스로 자동 다운 그레이드합니다 sudo apt-get install -V $(apt-show-versions | grep -F 'newer than version in archive' | awk -F: '{print $1"/'$(lsb_release -cs)'"}'). 내가 사용하는 것을 선호 -F위해 grep여기.
jarno

sudo apt-show-versions -i패키지 캐시가 오래된 경우 먼저 실행해야합니다 .
jarno
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.