ฉันจะเพิ่มที่เก็บ apt-get โดยไม่ต้องแก้ไข /etc/apt/sources.list ได้อย่างไร


19

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

ฉันรู้ว่าคุณสามารถทำสิ่งนี้เพื่อ yum แต่ฉันไม่แน่ใจว่ามันเป็นไปได้สำหรับ apt-get โปรดแจ้งให้เราทราบหากฉันต้องการเพิ่มข้อมูลเพิ่มเติม


หากคุณดับเบิลคลิกที่ /etc/apt/sources.list จะเป็นการเปิดส่วนต่อประสาน GUI ด้วยตัวช่วยสร้างเพื่อเพิ่มที่เก็บ มีช่องทำเครื่องหมายที่คุณสามารถเปิดใช้งานและปิดใช้งานรายการ (เช่นเพื่ออนุญาตให้ใช้รายการใหม่เฉพาะเมื่ออัปเดตซอฟต์แวร์ที่เก็บ "ต่างประเทศ" บางส่วน) และสามารถลบรายการได้ นอกจากนี้ยังสร้างการสำรองข้อมูลที่เรียกว่า sources.list.save ในไดเรกทอรีเดียวกัน หากคุณต้องการการป้องกันเป็นพิเศษคุณสามารถทำสำเนาของไฟล์ต้นฉบับด้วยตัวเองก่อนที่จะทำการเปลี่ยนแปลง ดังนั้นจึงไม่มีความเสี่ยงมากที่จะทำให้ไฟล์ยุ่งเหยิงหากคุณไปตามเส้นทางของสคริปต์ด้วยเหตุผลดังกล่าว
fixer1234

คำตอบ:


21

/etc/apt/sources.list.dคุณสามารถวางไฟล์ใน นี่คือคำอธิบายในหน้าคนสำหรับsources.list(ประเภทman sources.list) หน้าคนพูดว่า:

เก่ากว่า SOURCES.LIST.D

ไดเร็กทอรี /etc/apt/sources.list.d จัดเตรียมวิธีในการเพิ่มรายการ sources.list ในไฟล์แยกกัน รูปแบบเหมือนกับไฟล์ source.list ปกติ ชื่อไฟล์ต้องลงท้ายด้วย. list และต้องประกอบด้วยตัวอักษร (az และ AZ), ตัวเลข (0-9), เครื่องหมายขีดล่าง (_), ขีดกลาง (-) และอักขระจุด (.) มิฉะนั้นจะถูกเพิกเฉยอย่างเงียบ ๆ

UPDATE:

2016 SOURCES.LIST.D.

ไดเร็กทอรี /etc/apt/sources.list.d จัดเตรียมวิธีในการเพิ่มรายการ sources.list ในไฟล์แยกกัน อนุญาตให้ใช้รูปแบบไฟล์ต่างกันสองรูปแบบตามที่อธิบายไว้ในสองส่วนถัดไป ชื่อไฟล์จำเป็นต้องมีส่วนขยาย. list หรือ. source ขึ้นอยู่กับรูปแบบที่มีอยู่ ชื่อไฟล์อาจประกอบด้วยตัวอักษร (az และ AZ), ตัวเลข (0-9), เครื่องหมายขีดล่าง (_), เครื่องหมายขีดกลาง (-) และอักขระจุด (.) มิฉะนั้น APT จะพิมพ์คำเตือนว่ามีการละเว้นไฟล์ยกเว้นว่าไฟล์นั้นตรงกับรูปแบบในรายการการกำหนดค่า Dir :: Ignore-Files-Silently - ในกรณีนี้ไฟล์นั้นจะถูกละเว้นอย่างเงียบ ๆ


8

คุณสามารถลอง:

add-apt-repository <REPOSITORY LINE>

บรรทัดที่เก็บจะเป็นสิ่งที่คุณจะต่อท้ายกับ source.list หรือที่เก็บ PPA ลองดู manpage ที่นี่หรือรัน:

man add-apt-repository

1
จากการดูไฟล์ man อย่างรวดเร็วสำหรับ add-apt-repository ดูเหมือนว่ามันจะต่อท้ายบรรทัดไปยังไฟล์ source.list มันไม่ได้เอ่ยถึงว่ามันตรวจสอบหรือไม่ดังนั้นนี่จึงเหมือนกับ "echo line >> รายการแหล่งที่มา "ซึ่งฉันมีอยู่แล้ว ขอบคุณที่ตอบกลับ
Daisetsu

2
@Daisetsu ฉันรู้ว่ามันทำฉันคิดว่าคุณรู้สึกอึดอัดที่จะแก้ไขไฟล์ด้วยตนเอง! ต้องเข้าใจผิด! ยอดเยี่ยมคุณได้คำตอบที่เหมาะกับคุณ!
BloodPhilia

1

ฉัน (คิดว่าฉัน) จำเป็นต้องเพิ่ม ppa repo ไปยัง crunchbang (debian) ติดตั้ง:
( NB "raring" เป็นรุ่นของ Ubuntu ที่ตรงกับรุ่นของ debian ที่ฉันใช้) ดังนั้นฉันจึง:

sudo su -

# you can call the file anything that you want, but it has to end with .list to be a valid for apt-get
echo 'deb http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu/ raring main'>> /etc/apt/sources.list.d/boot-repair.list

# get the keys for that repo so that apt can verify the signed .deb files
wget http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu/dists/raring/Release.gpg
apt-key add Release.gpg
#gpg --search-keys 60D8DA0B

apt-get update

ส่วนใหญ่นี้จะมีการอธิบายในการบูตซ่อมแซมหน้า (แม้ว่าในท้ายที่สุดTestDiskแล้วGpartedเป็นสิ่งที่จริงฉันต้องการที่จะเรียกคืนพาร์ทิชันที่สูญหายและเสียหาย MBR.) นี่อาจจะไม่ใช่วิธี Debian (TM) แต่มัน ทำงานให้ฉัน

Repos debian บางรายการเป็น "รูปแบบเก่า" และจากนั้นคุณต้องการเพียงบรรทัดเช่น:

deb http://repo.alexx.net/apt/ /
# the trailing slash needs to be there

add-apt-repository นั้นดีถ้าคุณมี แต่มันน่าจะเป็น Ubuntu มากกว่า


0

add-apt-repository มีรูปแบบที่สาม (นอกเหนือจาก PPA URL และบรรทัด apt เต็มรูปแบบ) ซึ่งเปิดใช้งานส่วนประกอบการกระจาย:

sudo add-apt-repository universe
sudo add-apt-repository contrib

สิ่งนี้ถูกนำมาใช้ใน 12.10 (ปริมาณ)


มันแสดงให้เห็นการError: 'contrib' invalid ใช้ Ubuntu 16.04
Jaffer Wilson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.