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

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



답변

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

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


답변

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


답변

다음은 릴리스를 현재 릴리스로 설정하면서 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변경 사항을 저장하려면 다음을 실행하십시오 .


답변

특히 업그레이드 후 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 디렉토리에이 스크립트를 저장할 수 있도록 포함되어 있습니다


답변