업그레이드 후 PPA / repos를 다시 활성화하는 가장 좋은 방법은 무엇입니까?


40

11.10에서 12.04로 업그레이드 할 때 PPA 및 추가 리포지토리를 다시 활성화하는 가장 좋은 방법은 무엇입니까?

답변:


28

/etc/apt/sources.list.d/디렉토리 의 파일에서 행을 주석 해제하여 개별적으로 다시 추가 / 재 활성화해야합니다 .

최신 버전의 패키지를 얻기 위해 PPA를 사용하는 경우 처음에는 PPA가 필요한 경우 업그레이드 시간이 재평가하기에 좋은시기입니다.


8

sources.list.d업그레이드 중에 비활성화 된 모든 파일에서 선행 해시 문자를 제거하는 bash 스크립트를 작성했습니다 .

다음 코드는 raring소스를 로 업그레이드 하기 위한 것 saucy입니다.

접미사를 유지 # disabled on upgrade to ...하려면

for f in /etc/apt/sources.list.d/*.list; do sudo sed -i 's/raring/saucy/g' $f; sudo sed -i 's/^# \(.*disabled on upgrade to.*\)/\1/g' $f;done

접미사를 삭제 # disabled on upgrade to ...하려면

for f in /etc/apt/sources.list.d/*.list; do sudo sed -i 's/raring/saucy/g' $f; sudo sed -i 's/^# \(.*\) # disabled on upgrade to.*/\1/g' $f;done

4

다음은 릴리스를 현재 릴리스로 설정하면서 Python APT API를 사용하여 이러한 소스를 찾아서 활성화하는 Python 스크립트입니다.

#! /usr/bin/python3

import aptsources.sourceslist as sl
import lsb_release

codename = lsb_release.get_distro_information()['CODENAME']
sources = sl.SourcesList()

for source in sources.list:
    if source.comment.lower().find("disabled on upgrade") >= 0:
        source.dist = codename
        source.set_enabled(True)
        print(source)
sources.save()

없이 실행 sudo하면 변경 사항을 저장할 수 없지만 사용할 수있는 소스가 표시됩니다. sudo변경 사항을 저장하려면 다음을 실행하십시오 .


예를 들어 '# deb cran.rstudio.com/bin/linux/ubuntu artful /'을 '# deb cran.rstudio.com/bin/linux/ubuntu bionic'으로 대체 합니까? 그렇게하지 않으면 어떻게됩니까 (앞서 응답으로)?
Jeffrey Benjamin Brown

@JeffreyBenjaminBrown이 그것을 대체하지 않으면 종속성을 충족시키지 못할 수 있습니다.
muru

"artful"(17.10 코드 명)이라는 단어는 "업그레이드 비활성화 ..."라는 주석이 달린 줄에서 "바이오닉"으로 바뀌 었으나 다른 것들은 그렇지 않았습니다. 방금 "disabled"주석으로 모든 라인의 주석 처리를 제거하고 apt가 작동했습니다 (어떤 이유로 gcc를 다시 설치해야 함). 그리고 13 개의 파일 sources.list.d과 3 개의 외계인 파일 을 사용 sources.list합니다. 이것이 우분투가 자동으로 처리하는 것일 수 있습니까?
Jeffrey Benjamin Brown

@JeffreyBenjaminBrown 아마도 최근에 업그레이드하지 않았기 때문에 (보통 새로 설치), 그렇습니다.
muru

1
이것은 19.10
Dreamcat4

1

특히 업그레이드 후 PPA를 활성화 (재 활성화) 및 비활성화하기위한 몇 가지 스크립트를 만들었습니다. 여기 있습니다:

PPA 재 활성화 스크립트

#! /bin/bash
# PPA re-enable script
# Use: ppa-reenable source.list
# to reenable a PPA without its source line
# Use: ppa-reenable src source.list
# to reenable a PPA with its source line

mod=1
file="$1"
if [ $1 == "src" ]; then mod=""; file="$2"; fi;
sudo sed -i "${mod}s/^# \(.*\) \(disabled on upgrade.*\)\?/\1/" "$file"

PPA 비활성화 스크립트

#! /bin/bash
# PPA disable script
# Use: ppa-disable source.list
# to disable the PPA completely
# Use: ppa-disable src source.list
# to disable the source of the PPA only

file="${1}"
mod=""
# If its only needed to disable the source
if [ $1 = "src" ]; then mod="2"; file="${2}"; fi;

# If source line is disabled, don't comment it out
second="`sed -n 2p \"$file\"`"
second="${second:0:1}"
if ( [ $second == "#" ] && [ $mod != "2" ] ); then
    mod="1"
fi

sudo sed -i "${mod}s/^/# /" "$file"

sudo당신의 가정 bin 디렉토리에이 스크립트를 저장할 수 있도록 포함되어 있습니다

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