วิธีที่ดีที่สุดในการเปิดใช้งาน PPA / repos อีกครั้งหลังจากอัปเกรดคืออะไร


40

เมื่อฉันอัพเกรดจาก 11.10 เป็น 12.04 วิธีที่ดีที่สุดในการเปิดใช้งาน PPA ของฉันและที่เก็บเพิ่มคืออะไร

คำตอบ:


28

คุณต้องเพิ่มพวกเขาทั้งหมดกลับ / เปิดใช้งานพวกเขาเป็นรายบุคคลโดย uncommenting บรรทัดในไฟล์ใน/etc/apt/sources.list.d/ไดเรกทอรี

แม้ว่าเวลาอัปเกรดเป็นเวลาที่ดีที่จะประเมินใหม่หากคุณต้องการ PPA ตั้งแต่แรกถ้าคุณเพิ่งใช้เพียงครั้งเดียวเพื่อรับแพ็คเกจรุ่นใหม่


8

ฉันเขียนสคริปต์ทุบตีที่ลบอักขระแฮชนำหน้าออกจากไฟล์ทั้งหมดsources.list.dที่ถูกปิดใช้งานระหว่างการอัพเกรด

รหัสต่อไปนี้สำหรับการอัพเกรดแหล่งraringsaucy

หากคุณต้องการเก็บคำต่อท้าย# 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 ที่ใช้ Python APT API เพื่อค้นหาและเปิดใช้งานแหล่งข้อมูลดังกล่าวในขณะที่ตั้งค่าการวางจำหน่ายเป็นรุ่นปัจจุบัน:

#! /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เก่ง /' กับ '# deb cran.rstudio.com/bin/linux/ubuntu bionic' หรือไม่ จะเกิดอะไรขึ้นถ้าคุณไม่ทำเช่นนั้น (เหมือนคำตอบก่อนที่จะทำ)
เจฟฟรีย์เบนจามินบราวน์

@JeffreyBenjaminBrown เป็นเช่นนั้นและหากคุณไม่ได้แทนที่มันอาจเกิดขึ้นได้ว่าการพึ่งพาไม่พึงพอใจ
muru

ฉันพบว่าคำว่า "เก่ง" (ชื่อรหัส 17.10) ถูกแทนที่ด้วย "ไบโอนิค" ในบางบรรทัดที่แสดงความคิดเห็น "ปิดการใช้งานเมื่ออัพเกรด ... " ในขณะที่คนอื่นไม่ได้ ฉันเพียงแค่ไม่ใส่เครื่องหมายแสดงความคิดเห็นทุกบรรทัดที่มีความคิดเห็น "ปิดการใช้งาน" และ apt ดำเนินการต่อไป (แม้ว่าฉันจะต้องติดตั้ง gcc ใหม่ด้วยเหตุผลบางอย่าง) และฉันใช้ repos ของบุคคลที่สามจำนวนมาก - 13 ไฟล์ในsources.list.dและอีกสามคนที่sources.listมา นี่อาจเป็นสิ่งที่ Ubuntu ดูแลโดยอัตโนมัติตอนนี้หรือไม่
เจฟฟรีย์เบนจามินบราวน์

@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.