11.10'dan 12.04'e yükseltirken, PPA'larımı ve depolarımı yeniden etkinleştirmenin en iyi yolu nedir?
11.10'dan 12.04'e yükseltirken, PPA'larımı ve depolarımı yeniden etkinleştirmenin en iyi yolu nedir?
Yanıtlar:
/etc/apt/sources.list.d/
Dizindeki dosyalardaki satırları açarak hepsini tek tek eklemeniz / yeniden etkinleştirmeniz gerekir .
Her ne kadar yükseltme zamanı, bir paketin daha yeni bir sürümünü elde etmek için kullanıyorsanız, ilk etapta PPA'ya ihtiyacınız varsa yeniden değerlendirmek için iyi bir zamandır.
Önde gelen karma karakterini sources.list.d
, yükseltme sırasında devre dışı bırakılmış olan tüm dosyalardan kaldıran bir bash betiği yazdım .
Aşağıdaki kod raring
kaynakları yükseltmek içindir saucy
.
Soneki saklamak istiyorsanız # 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
soneki silmek istiyorsanız # 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
İşte, sürümleri geçerli sürümde ayarlarken bu kaynakları bulmak ve etkinleştirmek için Python APT API'sini kullanan bir python betiği:
#! /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()
Onsuz çalıştırırsanız sudo
, değişiklikleri kaydedemez, ancak hangi kaynakların etkinleştirileceğini gösterir. sudo
Değişiklikleri kaydetmek için ile çalıştırın .
sources.list.d
ve üç yabancı sources.list
. Bu şimdi Ubuntu'nun otomatik olarak ilgilendiği bir şey olabilir mi?
Özellikle bir yükseltme işleminden sonra PPA'ları hem etkinleştirmek (yeniden etkinleştirmek) hem de devre dışı bırakmak için birkaç komut dosyası oluşturdum. İşte buradalar:
PPA komut dosyasını yeniden etkinleştir
#! /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 komut dosyasını devre dışı bırak
#! /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
Evinizde bin dizininde bu komut dosyasını saklayabilirsiniz böylece dahildir