Apa cara terbaik untuk mengaktifkan kembali AKP / repo setelah peningkatan?

40

Ketika saya memutakhirkan dari 11,10 menjadi 12,04, apa cara terbaik untuk mengaktifkan kembali PPA saya dan menambahkan repositori?

philipballew
sumber

Jawaban:

28

Anda perlu menambahkan semuanya kembali / diaktifkan kembali secara individual dengan menghapus komentar pada baris dalam file di /etc/apt/sources.list.d/direktori.

Meskipun waktu pemutakhiran adalah waktu yang baik untuk mengevaluasi kembali jika Anda memerlukan PPA di tempat pertama jika Anda hanya menggunakan satu untuk mendapatkan versi paket yang lebih baru.

Jorge Castro
sumber
8

Saya menulis skrip bash yang menghapus karakter hash utama dari semua file sources.list.dyang dinonaktifkan selama pemutakhiran.

Kode berikut adalah untuk memutakhirkan raringsumber ke saucy.

Jika Anda ingin mempertahankan sufiks # disabled on upgrade to ..., gunakan

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

jika Anda ingin menghapus sufiks # disabled on upgrade to ..., gunakan

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
klaus se
sumber
4

Berikut ini adalah skrip python yang menggunakan API APT Python untuk menemukan dan mengaktifkan sumber-sumber tersebut, sambil mengatur rilis ke rilis saat ini:

#! /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()

Jika Anda menjalankannya tanpa sudo, itu tidak akan dapat menyimpan perubahan, tetapi itu akan menunjukkan sumber mana yang akan diaktifkan. Jalankan dengan sudountuk menyimpan perubahan.

muru
sumber
Apakah ini menggantikan, misalnya, '# deb cran.rstudio.com/bin/linux/ubuntu artful /' dengan '# deb cran.rstudio.com/bin/linux/ubuntu bionic'? Apa yang akan terjadi jika Anda tidak melakukan itu (seperti tanggapan Anda sebelumnya)?
Jeffrey Benjamin Brown
@ JeffreyBenjaminBrown itu, dan jika Anda tidak menggantinya, itu mungkin terjadi bahwa dependensi tidak dapat dipenuhi.
muru
Saya menemukan bahwa kata "artful" (nama kode 17.10) telah diganti dengan "bionic" di beberapa baris yang dikomentari "dinonaktifkan pada peningkatan ...", sementara yang lain tidak. Saya baru saja menghapus komentar semua baris dengan komentar "dinonaktifkan" itu dan mulai bekerja (walaupun saya harus menginstal ulang gcc untuk beberapa alasan). Dan saya menggunakan banyak repo pihak ketiga - 13 file di sources.list.d, dan tiga yang asing di sources.list. Mungkinkah ini sesuatu yang Ubuntu tangani secara otomatis sekarang?
Jeffrey Benjamin Brown
@ JeffreyBenjaminBrown Mungkin, saya belum meng-upgrade dalam beberapa kali (instalasi baru, biasanya), jadi tak tahu.
muru
1
Ini sepertinya telah merusak file sumber apt saya untuk 19.10
Dreamcat4
1

Saya telah membuat beberapa skrip untuk mengaktifkan (mengaktifkan kembali) dan menonaktifkan PPA, khususnya setelah peningkatan. Di sini mereka:

PPA mengaktifkan kembali skrip

#! /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"

Skrip menonaktifkan 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"

Ini sudodisertakan sehingga Anda dapat menyimpan skrip ini di direktori home bin Anda

Severo Raz
sumber