Ketika saya memutakhirkan dari 11,10 menjadi 12,04, apa cara terbaik untuk mengaktifkan kembali PPA saya dan menambahkan repositori?
Ketika saya memutakhirkan dari 11,10 menjadi 12,04, apa cara terbaik untuk mengaktifkan kembali PPA saya dan menambahkan repositori?
Jawaban:
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.
Saya menulis skrip bash yang menghapus karakter hash utama dari semua file sources.list.d
yang dinonaktifkan selama pemutakhiran.
Kode berikut adalah untuk memutakhirkan raring
sumber 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
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 sudo
untuk menyimpan perubahan.
sources.list.d
, dan tiga yang asing di sources.list
. Mungkinkah ini sesuatu yang Ubuntu tangani secara otomatis sekarang?
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 sudo
disertakan sehingga Anda dapat menyimpan skrip ini di direktori home bin Anda