วิธีเพิ่มที่เก็บจากเชลล์ใน Debian?


141

ใน Ubuntu หนึ่งสามารถเพิ่มพื้นที่เก็บข้อมูลผ่านคำสั่งดังต่อไปนี้ -

sudo add-apt-repository ppa:yannubuntu/boot-repair

เนื่องจาก Ubuntu นั้นใช้รหัสเดเบียนฉันจึงคาดหวังว่าเดเบียนจะทำงานเช่นเดียวกัน แต่ก็ไม่เป็นเช่นนั้น

  • อะไรคือสาเหตุของสิ่งนี้?
  • มีคำสั่งเชลล์อื่น ๆ ที่ฉันสามารถใช้เพื่อให้บรรลุเหมือนกันหรือไม่

หมายเหตุ: ฉันรู้ว่าฉันสามารถแก้ไข/etc/apt/sources.listได้ แต่ฉันต้องการได้รับจากเชลล์ ฉันต้องการทราบว่าทำไมคำสั่งเดียวกันไม่ทำงานเมื่อรหัสฐานเหมือนกัน

คำตอบ:


182

Debian Jessie และใหม่กว่า (2014-)

ตามที่ระบุไว้โดย @voltagex ในความคิดเห็นสามารถพบได้ในsoftware-properties-commonแพ็คเกจ:

sudo apt-get install software-properties-common

Debian Wheezy และรุ่นก่อนหน้า:

โปรแกรมadd-apt-repository มีให้บริการใน Debian มันอยู่ในpython-software-propertiesแพ็คเกจ:

sudo apt-get install python-software-properties

มันถูกเพิ่มเข้าไปในแพ็คเกจนั้นในเวอร์ชั่น 0.75 เวอร์ชันปัจจุบันใน Debian Stable ('squeeze ") คือ 0.60 ดังนั้นจึงไม่มีเวอร์ชั่นปัจจุบันใน Debian Testing (" wheezy ") คือ 0.82.7.1debian1 ดังนั้นจึงมีอยู่ที่นั่น


9
อย่างน้อยใน sid สคริปต์ add-apt-repository ดูเหมือนจะถูกย้ายไปที่คุณสมบัติของซอฟต์แวร์ทั่วไป
Adam Baxter

python-software-properties รุ่น 0.92 ที่นี่และ (อีกครั้ง) ขาดหายไป :-(
gatopeich

3
ดูความคิดเห็นข้างต้นของคุณ - ได้แล้วในsoftware-properties-common
Jim Paris

มีความยุ่งยากในการปรับปรุงแม้ว่า
เตอร์

17

สมมติว่าคุณใช้ Debian รุ่นที่ไม่ใช่ของโบราณ (Etch หรือใหม่กว่า) คุณสามารถวางไฟล์ใน/etc/apt/sources.list.d/ชื่อไฟล์จะต้องลงท้ายด้วย.list; การยืดเดเบียน (ยังไม่ออกใช้) จะเพิ่ม.sourcesในรูปแบบอื่น

รูปแบบเหมือนกับไฟล์ source.list หลัก

ข้อดีคือโดยเฉพาะอย่างยิ่งหากเป็นซอฟต์แวร์ที่คุณเผยแพร่คุณไม่ต้องกังวลในการรวมการเปลี่ยนแปลงของคุณเข้ากับไฟล์ /etc/apt/sources.list ที่แก้ไข (โดยเฉพาะอย่างยิ่งยากที่จะจัดการหากโปรแกรมของคุณคือ ถอนการติดตั้ง) คุณสามารถใช้dpkgการสนับสนุน conffile /etc/apt/sources.list.d/ที่จะนำไฟล์ใน


sources.list.dมีอยู่ตั้งแต่จำหลักฉันคิดว่า
Gilles

1
ใช่ แต่apt-add-repositoryดูแลสิ่งต่าง ๆ เช่นแปล "ppa:" เป็นhttp://ppa.launchpad...ประเภทและเพื่อดาวน์โหลดและติดตั้งที่เก็บคีย์เพื่อไม่ให้ถือว่าแพคเกจน่าสงสัย
Ricardo Cárdenes

@Gilles ฉันคิดว่าคุณพูดถูก - มันไม่ได้อยู่ในเครื่อง Sarge ที่ฉันมีและอยู่ในเครื่อง Etch
Derobert

13

add-apt-repositoryสามารถพบได้ในsoftware-properties-commonแพ็คเกจ


@ rbaleksandar นี่ไม่ได้อยู่ใน distros ทั้งหมดเพราะมันมีสิ่งพิเศษมากมายที่คุณอาจไม่ต้องการโดยเฉพาะใน docker เนื่องจากเป้าหมายสุดท้ายของภารกิจนี้คือการเพิ่มบางสิ่งลงไป/etc/apt/sources.listคุณอาจดูคำตอบของ @Goez ในคำถามนี้
Mike D

8

อูบุนตูใช้เดเบียน แต่รวมถึงสิ่งที่เดเบียนไม่ใช้ add-apt-repositoryคำสั่งเป็นตัวอย่างที่ถูกรวมอยู่ในอูบุนตูแรก

add-apt-repositoryจริงเพียงรันคู่ของคำสั่งที่จะเพิ่มพื้นที่เก็บข้อมูล:

  • ผนวกที่เก็บไปที่ /etc/apt/sources.list
  • เพิ่มที่เก็บคีย์ลงในเครื่อง

สคริปต์ที่เรียงลำดับของทำเช่นเดียวกันที่สามารถพบได้ที่นี่จะถูกยกมาด้านล่าง

#!/bin/bash
if [ $# -eq 1 ]
NM=$(uname -a && date)
NAME=$(echo $NM | md5sum | cut -f1 -d" ")
then
    ppa_name=$(echo "$1" | cut -d":" -f2 -s)
    if [ -z "$ppa_name" ]
    then
        echo "PPA name not found"
        echo "Utility to add PPA repositories in your debian machine"
        echo "$0 ppa:user/ppa-name"
    else
        echo "$ppa_name"
        echo "deb http://ppa.launchpad.net/$ppa_name/ubuntu lucid main" >> /etc/apt/sources.list
        apt-get update >> /dev/null 2> /tmp/${NAME}_apt_add_key.txt
        key=$(cat /tmp/${NAME}_apt_add_key.txt | cut -d":" -f6 | cut -d" " -f3)
        apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        rm -rf /tmp/${NAME}_apt_add_key.txt
    fi
else
    echo "Utility to add PPA repositories in your debian machine"
    echo "$0 ppa:user/ppa-name"
fi

ไม่แนะนำให้ใช้ ppa repo ใน Debian distro ของคุณ ไม่มีการควบคุมเกี่ยวกับการติดตั้งทำให้
Francis Rodrigues
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.