กำหนดลำดับความสำคัญสูงสุดให้กับที่เก็บในเครื่องของฉัน


39

สรุป

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


คำถามเดิมคือ: "วิธีกำหนดลำดับความสำคัญสูงสุดให้กับที่เก็บในตัวเครื่องโดยไม่ต้องใช้ไฟล์ source.list"

ฉันตั้งค่าที่เก็บในเครื่องพร้อมแพ็คเกจที่ฉันดาวน์โหลด ฉันใช้เพื่อหลีกเลี่ยงการดาวน์โหลดแพ็คเกจเดียวกันทางอินเทอร์เน็ตเมื่อฉันต้องติดตั้ง Ubuntu ใหม่ apt-ftparchive packages . > Packagesมันเป็นพื้นที่เก็บข้อมูลพื้นฐานที่สร้างขึ้นด้วย ฉันทำสิ่งนี้เป็นที่เก็บที่เชื่อถือได้เพื่อหลีกเลี่ยงคำเตือน "ที่เก็บข้อมูลที่ไม่ได้ตรวจสอบความถูกต้อง" ( เมื่อคุณมีที่เก็บข้อมูลที่ไม่น่าเชื่อถือaptหรือsynapticพยายามดาวน์โหลดแพ็คเกจเดียวกันทางอินเทอร์เน็ต 'ทำให้เชื่อถือได้ )

ฉันใช้พื้นที่เก็บข้อมูลในพื้นที่นี้อย่างน้อย 1 ปี แต่ฉันต้องวางบรรทัดที่เก็บในเครื่องของฉันไว้ที่ด้านบนของsources.listไฟล์เพื่อใช้สิ่งนี้ แต่นี้เป็นที่น่ารำคาญเพราะผมต้องเปิดสถานีและทำพิมพ์บางอย่างกับมันทุกครั้งที่ผมติดตั้ง Ubuntu software-properties-gtkแม้ว่าจะมีเครื่องมือที่ดีกว่า ฉันไม่สามารถใช้เครื่องมือนี้ได้เนื่องจากวางบรรทัดซอร์สที่ส่วนท้ายของ `sources.list

และปัญหาที่แท้จริงคือการapt หรือ synapticเสมอดาวน์โหลดแพคเกจจากแหล่งที่มาซึ่งเป็นที่กล่าวถึงก่อนหน้าโดยไม่ต้องตรวจสอบไม่ว่าจะเป็นแพคเกจที่มีอยู่แล้วในพื้นที่เก็บข้อมูลท้องถิ่น ดังนั้นฉันไม่มีทางเลือกนอกจากวางแหล่งข้อมูลท้องถิ่นไว้ที่ด้านบนสุดของsources.listเทอร์มินัล (ฉันไม่ได้เกลียดเทอร์มินัล แต่ฉันต้องการโซลูชัน)

ฉันได้ลองวิธีนี้แล้ว แต่สิ่งนี้ไม่ได้ช่วยฉัน

ไฟล์การตั้งค่าของฉันคือสิ่งนี้ค่ะ /etc/apt/preferences.d/local-pin-900

    Package: *
    Pin: release o=Local,n=ubuntu-local
    Pin-Priority: 900

ไฟล์รีลีสของฉันคือสิ่งนี้

    Origin: Local
    Label: Local-Ubuntu
    Description: Local Ubuntu Repository
    Codename: ubuntu-local
    MD5Sum:
     ed43222856d18f389c637ac3d7dd6f85          1043412 Packages
     d41d8cd98f00b204e9800998ecf8427e                0 Sources

เมื่อฉันเปิดใช้งาน apt-preferences การตั้งค่าที่apt-cache policyถูกต้องจะแสดงอย่างถูกต้องเช่นมันแสดงให้เห็นว่าพื้นที่เก็บข้อมูลในท้องถิ่นมีความสำคัญสูงสุด

แต่เมื่อผมทำเช่นนี้sudo apt-get install <package-name>, aptพยายามที่จะดาวน์โหลดได้จากอินเทอร์เน็ต แต่เมื่อฉันวาง repo ท้องถิ่นของฉันที่ด้านบนมันจะติดตั้งจากพื้นที่เก็บข้อมูลท้องถิ่น

ดังนั้นคำถามของฉันคือ -> 'เป็นไปได้หรือไม่ที่จะบังคับให้ฉลาดใช้พื้นที่เก็บข้อมูลท้องถิ่นเมื่อแพ็คเกจพร้อมใช้งานในพื้นที่เก็บข้อมูลท้องถิ่นโดยไม่ต้องวาง "แหล่งภายใน" อย่างชัดเจนที่ด้านบนของรายการพื้นที่เก็บข้อมูลของฉัน (เช่นไฟล์ source.list) '

แก้ไข: ผลลัพธ์ของapt-cache policy $package_nameมีดังนี้

  
หอยโข่งเช็ด:
  ติดตั้งแล้ว: (ไม่มี)
  ผู้สมัคร: 0.1.1-2
  ตารางเวอร์ชัน:
     0.1.1-2 0
        500 http://archive.ubuntu.com/ubuntu/ แม่นยำ / จักรวาล i386 แพ็คเกจ
        ไฟล์ 900: / media / Main / Linux-Software / Ubuntu / แม่นยำ / แพ็คเกจ

มันแสดงให้เห็นว่าพื้นที่เก็บข้อมูลในเครื่องของฉันมีการตั้งค่าที่สูงขึ้นแม้ว่ามันจะไม่ได้เป็นคนแรกที่มาในsources.listไฟล์

นี่คือผลลัพธ์ของ apt-get install nautilus-wipe

กำลังอ่านรายการแพ็กเกจ ... เสร็จแล้ว
อาคารต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ ... เสร็จแล้ว
แพ็คเกจใหม่ต่อไปนี้จะได้รับการติดตั้ง:
  หอยโข่งเช็ด
0 อัพเกรดแล้ว 1 เพิ่งติดตั้งใหม่ 0 เพื่อลบและ 131 ไม่ได้อัพเกรด
ต้องได้รับ 30.7 kB ของคลังข้อมูล
หลังจากการดำเนินการนี้จะใช้พื้นที่ดิสก์เพิ่มเติม 150 kB
'http://archive.ubuntu.com/ubuntu/pool/universe/n/nautilus-wipe/nautilus-wipe_0.1.1-2_i386.deb' nautilus-เช็ด _0.1.1-2_i386.deb 30730 MD5Sum: 7d497b8dfcefe1c045646

ยังคงพยายามรับไฟล์จากอินเทอร์เน็ตแม้ว่าฉันคิดว่าควรจะมีความสุขกับไฟล์ในเครื่อง


ผลลัพธ์ของการใช้ "" หรือ localhost ตามที่แนะนำจาก mediageek

การใช้ localhost ไม่มีผลใด ๆ แต่ "" มี แต่ไม่แตกต่างจากวิธีการของฉัน

    Package: *
    Pin: origin ""
    Pin-Priority: 1001

ฉันใช้มันก่อนโพสต์คำถาม แต่ฉันลองอีกครั้ง (เพื่อความแน่ใจ) ผลลัพธ์เดียวกัน apt-cache policyแสดงให้เห็นว่าพื้นที่เก็บข้อมูลในท้องถิ่นของฉันมีความสำคัญสูงสุดแน่นอน แต่เมื่อฉันพยายามติดตั้งจะมีข้อความว่า "ต้องการรับไฟล์เก็บถาวร XXX / XXX KB"


แพ็คเกจในที่เก็บในเครื่องของคุณใหม่ / เท่ากับแพคเกจอย่างเป็นทางการ
tumbleweed

ใช่แน่นอนฉันยืนยันด้วยapt-getคำสั่ง มีข้อความแจ้งว่า "ต้องดาวน์โหลด 0 kb"
Anwar

คุณต้องการตรวจสอบด้วยapt-cache policy
tumbleweed

ความคิดเห็นก่อนหน้าเป็นข้อผิดพลาด ฉันคิดว่าฉันให้คำถามนี้กับฉัน (เกี่ยวกับการติดตั้งซอฟต์แวร์ด้วยศูนย์ซอฟต์แวร์จากที่เก็บในเครื่อง) ใช่ฉันได้ตรวจสอบแล้วapt-cache policyและเห็นว่าที่เก็บภายในเครื่องมีลำดับความสำคัญสูงกว่า แต่ยังคงapt-getพยายามติดตั้งจากอินเทอร์เน็ต ฉันคิดว่ามันเป็นไปไม่ได้เลยหากไม่มีsources.listไฟล์
Anwar

ฉันถามว่าapt-cache policyแสดงให้เห็นว่ารุ่นเหมือนกันหรือไม่
ทัมเบิลวีด

คำตอบ:


52

คำตอบสั้น ๆ :

ไฟล์การกำหนดค่าตามความชอบ APT / etc / apt / preferences สามารถใช้เพื่อควบคุมเวอร์ชันของแพ็กเกจที่จะถูกเลือกสำหรับการติดตั้ง

นี่คือไฟล์/etc/apt/preferencesที่apt-getใช้ในการตัดสินใจว่าจะต้องเลือกเวอร์ชันใดหากมีแพ็กเกจเดียวหลายเวอร์ชัน ด้วยสิ่งนี้แพ็คเกจใด ๆ ที่มาจากที่เก็บในเครื่องจะมีความสำคัญเหนือกว่าแพ็คเกจอื่น ๆ

แพ็คเกจ: *  
พิน: ต้นกำเนิด ""  
ลำดับความสำคัญพิน: 1001  

สิ่งนี้จะไม่ควบคุมเวอร์ชัน แต่การตั้งค่าแหล่งที่มาหากทั้งสองแพ็คเกจมีเวอร์ชันเดียวกัน หากคุณต้องการกำหนดลำดับความสำคัญสูงสุดสำหรับรุ่นแพคเกจเดียวกันใน repo ท้องถิ่นของคุณให้ระบุรายการเหล่านั้นที่ด้านบนของ/etc/apt/sources.listไฟล์>

ตอบคำถามเดิม:

วิธีกำหนดลำดับความสำคัญสูงสุดให้กับที่เก็บในตัวเครื่องโดยไม่ใช้ไฟล์ source.list

ไม่มีวิธีกำหนดลำดับความสำคัญสูงสุดให้กับที่เก็บโลคัลโดยไม่ใช้sources.listไฟล์ คุณต้องใส่ไว้ใน "แหล่งรายการ" หากคุณต้องการกำหนดลำดับความสำคัญสูงสุดให้กับ repo ในพื้นที่ของคุณ

สรุปคำตอบสำหรับคำถามนี้:

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

การใช้/etc/apt/sources.listไฟล์คุณจะต้องวางบรรทัดที่เก็บในเครื่องของคุณที่ด้านบนของไฟล์นี้ เหมือนด้านล่าง

deb cdrom: [Kubuntu 12.04 LTS _Precise Pangolin_ - รีลีส i386 (20120424)] / แม่นยำหลักถูก จำกัด
ไฟล์ deb: / media / Main / Precise-Debs-New /
deb ไฟล์: / media / Main / Linux-Software / Ubuntu / Precise /

deb http://archive.ubuntu.com/ubuntu เอกภพหลักที่แม่นยำถูก จำกัด ลิขสิทธิ์
deb-src http://archive.ubuntu.com/ubuntu จักรวาลที่แม่นยำหลักลิขสิทธิ์ จำกัด # เพิ่มโดยคุณสมบัติซอฟต์แวร์

# deb cdrom: [Xubuntu 12.04 LTS _Precise Pangolin_ - รีลีส i386 (20120423.1)] / เอกภพที่ถูก จำกัด หลักอย่างแม่นยำ
# deb cdrom: [Ubuntu 12.04 LTS _Precise Pangolin_ - รีลีส i386 (20120423)] / จำกัด หลักอย่างแม่นยำ

# deb http://archive.canonical.com/ubuntu พันธมิตรที่แม่นยำ
# deb-src http://archive.canonical.com/ubuntu พันธมิตรที่แม่นยำ
# deb http://extras.ubuntu.com/ubuntu หลักที่แม่นยำ
# deb-src http://extras.ubuntu.com/ubuntu หลักที่แม่นยำ

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


คำอธิบาย:

ดูเหมือนว่าเราทุกคนเข้าใจผิดapt_preferenceวัตถุประสงค์คู่มือ apt_preference อธิบายไว้ใน 3 ย่อหน้าแรก !!

ไฟล์การกำหนดค่าตามความชอบ APT / etc / apt / preferences สามารถใช้เพื่อควบคุมเวอร์ชันของแพ็กเกจที่จะถูกเลือกสำหรับการติดตั้ง

แพคเกจหลายรุ่นอาจพร้อมใช้งานสำหรับการติดตั้งเมื่อไฟล์ source.list (5) มีการอ้างอิงไปยังการแจกจ่ายมากกว่าหนึ่งรายการ (ตัวอย่างเช่นเสถียรและการทดสอบ) APT กำหนดลำดับความสำคัญให้กับแต่ละเวอร์ชันที่มีให้ ภายใต้ข้อ จำกัด ของการพึ่งพา apt-get (8) เลือกเวอร์ชันที่มีลำดับความสำคัญสูงสุดสำหรับการติดตั้ง ไฟล์การกำหนดค่าตามความชอบ APT จะแทนที่ลำดับความสำคัญที่ APT กำหนดให้กับรุ่นแพ็คเกจตามค่าเริ่มต้นดังนั้นจึงให้ผู้ใช้สามารถควบคุมว่าจะเลือกตัวเลือกใดเพื่อติดตั้ง

และสิ่งที่สำคัญมากอยู่ในวรรคที่สาม

อินสแตนซ์ต่าง ๆ ของแพ็คเกจรุ่นเดียวกันอาจพร้อมใช้งานเมื่อไฟล์ source.list (5) มีการอ้างอิงไปยังแหล่งข้อมูลมากกว่าหนึ่งแหล่ง ในกรณีนี้apt-get (8) ดาวน์โหลดอินสแตนซ์ที่อยู่ในรายการเร็วที่สุดในไฟล์ source.list (5) แฟ้มการตั้งค่า APT ไม่ได้ส่งผลกระทบต่อทางเลือกของอินสแตนซ์เพียงทางเลือกของรุ่น

ตัวเอียงเหล่านั้นทำโดยของฉัน

ลองดูตัวอย่างด้วย:

ฉันมีเวอร์ชั่นที่แม่นยำcompiz-fusion-plugins-extraแต่ฉันปิดการใช้งานเพื่อการสาธิต

นี่คือไฟล์/etc/apt/preferencesที่apt-getใช้ในการตัดสินใจว่าจะต้องเลือกเวอร์ชันใดหากมีแพ็กเกจเดียวหลายเวอร์ชัน (ในตัวอย่างนี้compiz-fusion-plugins-extraมีหลายรุ่น

แพ็คเกจ: *  
พิน: ต้นกำเนิด ""  
ลำดับความสำคัญพิน: 1001  

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

ในคำอื่น ๆ ถ้ามีแพคเกจxappsกับรุ่น1.0ในพื้นที่เก็บข้อมูลในท้องถิ่นของฉันและแพคเกจเดียวกันนี้xappsที่มีอยู่ในพื้นที่เก็บข้อมูลที่แม่นยำกับรุ่นที่สูงขึ้น, การพูด2.0, apt-getจะชอบรุ่นจากพื้นที่เก็บข้อมูลท้องถิ่น, 1.0รุ่นคือ

นี่คือ/etc/apt/sources.listไฟล์ของฉัน

deb http://archive.ubuntu.com/ubuntu เอกภพหลักที่แม่นยำถูก จำกัด ลิขสิทธิ์
deb-src http://archive.ubuntu.com/ubuntu จักรวาลที่แม่นยำหลักลิขสิทธิ์ จำกัด # เพิ่มโดยคุณสมบัติซอฟต์แวร์
deb http://security.ubuntu.com/ubuntu/ ความแม่นยำในการรักษาความปลอดภัยจักรวาลลิขสิทธิ์ลิขสิทธิ์ จำกัด
deb http://archive.ubuntu.com/ubuntu การอัพเดทที่แม่นยำเป็นเอกภพหลักที่ จำกัด ลิขสิทธิ์
deb http://archive.ubuntu.com/ubuntu แน่นอน backport จักรวาลลิขสิทธิ์หลัก จำกัด

# deb http://archive.canonical.com/ubuntu พันธมิตรที่แม่นยำ
# deb-src http://archive.canonical.com/ubuntu พันธมิตรที่แม่นยำ
# deb http://extras.ubuntu.com/ubuntu หลักที่แม่นยำ
# deb-src http://extras.ubuntu.com/ubuntu หลักที่แม่นยำ


ไฟล์ deb: / media / Main / Linux-Software / Ubuntu / Oneiric / # นี่คือที่เก็บ oneiric
ไฟล์ deb: / media / Main / Linux-Software / Ubuntu / Natty / natty /
ไฟล์ deb: / media / Main / Linux-Software / Ubuntu / Natty / kubuntu /
ไฟล์ deb: / media / Main / Linux-Software / Ubuntu / Natty / natty_new /

แม้ว่าฉันจะแสดงรายการที่เก็บข้อมูลที่แม่นยำก่อนหน้านี้ในไฟล์ แต่ก็ไม่ได้ทำให้เกิดapt-getการเลือกแพ็คเกจจากที่เก็บนั้น ตามที่อธิบายไว้ในคู่มือ

ไฟล์การกำหนดค่าตามความชอบ APT ไม่มีผลกับตัวเลือกอินสแตนซ์เฉพาะตัวเลือกของเวอร์ชัน

ดังนั้นผลลัพธ์ของคำสั่งapt-cache policy compiz-fusion-plugins-extraจึงเป็นไปตามที่คาดไว้ด้านล่าง

anwar @ edubuntu-lenovo: / etc / apt $ apt-cache นโยบาย compiz-fusion-plugins-extra 
Compiz ฟิวชั่น-ปลั๊กอินเสริม
  ติดตั้งแล้ว: (ไม่มี)
  ผู้สมัคร: 0.9.5.94-0ubuntu1 / ** เลือกรุ่นที่ต่ำกว่าสำหรับลำดับความสำคัญ ** /
  ตารางเวอร์ชัน:
     0.9.7.0 ~ bzr9-0ubuntu6 0
        500 http://archive.ubuntu.com/ubuntu/ แม่นยำ / จักรวาล i386 แพ็คเกจ
     0.9.5.94-0ubuntu1 0
       ไฟล์ 1001: / media / Main / Linux-Software / Ubuntu / Oneiric / แพ็คเกจ
     0.9.4-0ubuntu3 0
       ไฟล์ 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / แพ็คเกจ

ที่นี่เวอร์ชันของผู้สมัครคือ0.9.5.94-0ubuntu1(ซึ่งอยู่ในที่เก็บข้อมูลในเครื่อง) ไม่ใช่0.9.7.0~bzr9-0ubuntu6 0ซึ่งอยู่ในที่เก็บข้อมูลของ precises แม้ว่า precises 'คนหนึ่งถูกระบุว่าเป็นคนแรกในsources.listไฟล์

ตัวอย่างการapt-getพยายามติดตั้งcompiz-fusion-plugins-extraหลังจากตั้งค่าระดับความสำคัญสูงสุดไปยังที่เก็บในเครื่องแล้ว

anwar @ edubuntu-lenovo: ~ $ sudo apt-get ติดตั้ง compiz-fusion-plugins-extra 
กำลังอ่านรายการแพ็กเกจ ... เสร็จแล้ว
อาคารต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ ... เสร็จแล้ว
แพ็คเกจต่อไปนี้ได้รับการติดตั้งโดยอัตโนมัติและไม่จำเป็นต้องใช้อีกต่อไป:
  x11-apps x11-xfs-utils xinit x11-session-utils libfs6
ใช้ 'apt-get autoremove' เพื่อลบออก
แพ็คเกจพิเศษต่อไปนี้จะได้รับการติดตั้ง:
  compiz-core compiz-plugins- ค่าเริ่มต้น compiz-plugins พิเศษ
  compiz-plugins-main- ค่าเริ่มต้น libdecoration0 xserver-xorg-core
  xserver-xorg วิดีโอของ Intel
แพ็คเกจที่แนะนำ:
  compizconfig-settings-manager xfonts-100dpi xfonts-75dpi
แพ็คเกจต่อไปนี้จะถูกลบออก:
  compiz compiz-gnome compizconfig-backend-gconf edubuntu-desktop
  libcompizconfig0 ubuntu-desktop สามัคคี xorg xserver-xorg
  xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-mouse
  xserver-xorg-input-synaptics xserver-xorg-input-vmmouse
  xserver-xorg-input-wacom xserver-xorg-video-all xserver-xorg-video-ati
  xserver-xorg-video-cirrus xserver-xorg-video-fbdev xserver-xorg-video-geode
  xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-neomagic
  xserver-xorg-video-nouveau xserver-xorg-video-openchrome
  xserver-xorg-video-qxl xserver-xorg-video-r128 xserver-xorg-video-radeon
  xserver-xorg-video-s3 xserver-xorg-video-savage
  xserver-xorg-video-siliconmotion xserver-xorg-video-sis
  xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident
  xserver-xorg-video-vesa xserver-xorg-video-vmware
แพ็คเกจใหม่ต่อไปนี้จะได้รับการติดตั้ง:
  compiz-fusion-plugins-extra compiz-plugins-extra
แพ็คเกจต่อไปนี้จะถูกอัปเกรด:
  compiz-core compiz-plugins- ค่าเริ่มต้น compiz-plugins หลักเริ่มต้น
  libdecoration0 xserver-xorg-core xserver-xorg-video-intel
0 ได้รับการอัพเกรดติดตั้งใหม่ 2 ตัวลดลง 6, 37 เพื่อลบและไม่อัพเกรด 698
ต้องได้รับ 0 B / 5,772 kB ของคลังข้อมูล
หลังจากการดำเนินการนี้พื้นที่ดิสก์ 8,294 kB จะว่าง
คุณต้องการที่จะดำเนินการต่อไป [Y / n]? 

แปลก !!! มันกำลังพยายามปรับลดรุ่นแพคเกจ Compiz ที่ติดตั้งไว้แล้วของแม่นยำเพื่อแก้ไขการอ้างอิง (จับคู่กับ Oneiric หนึ่ง) ด้วยการเลือกใหม่compiz-fusion-plugins-extra!!!

สิ่งที่อันตรายกว่าคือพยายามลบแพ็คเกจไดรเวอร์กราฟิก (xserver-xorg -.... ) เพื่อหลีกเลี่ยงความขัดแย้งกับคอมไพล์ใหม่

(อาจถ้าฉันยังมีพวกเขาในพื้นที่เก็บข้อมูลในท้องถิ่นของพวกเขาได้อย่างปลอดภัยอาจต้องการที่จะปรับลด. แต่เป็นแพคเกจเหล่านั้นมักจะมีการติดตั้งผมไม่ได้ดาวน์โหลดพวกเขาจึงไม่ได้อยู่ใน repo ท้องถิ่นด้วยเหตุนี้ผล)

สรุป : ดังนั้นการใช้/etc/apt/preferencesจะแนะนำให้ใช้กับที่เก็บในเครื่องเท่านั้นหากคุณมีที่เก็บข้อมูลที่สมบูรณ์ในระบบท้องถิ่น

จะเกิดอะไรขึ้นถ้ามีหลายอินสแตนซ์ (ไฟล์. deb) ของเวอร์ชันเดียวกันมีอยู่ในที่เก็บหลายแห่ง

ซึ่งอธิบายโดยapt_preferenceคู่มือ

อินสแตนซ์ต่าง ๆ ของแพ็คเกจรุ่นเดียวกันอาจพร้อมใช้งานเมื่อไฟล์ source.list (5) มีการอ้างอิงไปยังแหล่งข้อมูลมากกว่าหนึ่งแหล่ง ในกรณีนี้ apt-get (8) ดาวน์โหลดอินสแตนซ์ที่อยู่ในรายการเร็วที่สุดในไฟล์ source.list (5)

ตัวอย่างของกรณีการใช้งานสำหรับ/etc/apt/preferencesไฟล์:

ตัวอย่างของการบังคับapt-getให้เลือกรุ่นที่มีจาก repo ที่กำหนดเองแทนที่จะเป็นมาตรฐานของ Ubuntu อาจเป็นการแจกจ่าย "Linux Mint" พวกเขาใช้preferenceไฟล์ที่กำหนดเองนี้

แพ็คเกจ: *
Pin: ปล่อย o = linuxmint
ลำดับความสำคัญ Pin: 700

แพ็คเกจ: *
Pin: origin packages.linuxmint.com
ลำดับความสำคัญ Pin: 700

แพ็คเกจ: *
Pin: release o = Ubuntu
ลำดับความสำคัญพิน: 500

สิ่งนี้ทำให้พวกเขาอย่างมีประสิทธิภาพเพื่อให้แพคเกจเมื่อพวกเขามีในที่เก็บของพวกเขา แต่ถ้าพวกเขาไม่มีพวกเขาก็ใช้ที่เก็บมาตรฐานของ Ubuntu


ตัวอย่างกำลังรันapt-getหลังจากตั้งค่าระดับความสำคัญสูงสุดเป็นที่เก็บโลคัล

ฉันแค่ต้องการติดตั้งkubuntu-desktop แพ็คเกจผ่าน Ubuntu เพื่อทดสอบ KDE (ฉันลืมว่าฉันมีชุดการตั้งค่าการใช้/etc/apt/preferenceไฟล์) ฉันมี iso ของ kubuntu-12.04-alternate-installer ดังนั้นฉันคิดว่าฉันสามารถใช้มันได้

(หลังจากตั้งค่า iso เป็นแหล่งเก็บข้อมูลอย่างถูกต้อง)ฉันวิ่ง
sudo apt-get install kubuntu-desktopแล้วประหลาดใจโดยเห็นผลลัพธ์ด้านล่าง

anwar @ edubuntu-lenovo: ~ $ sudo apt-get ติดตั้ง kubuntu-desktop
กำลังอ่านรายการแพ็กเกจ ... เสร็จแล้ว
อาคารต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ ... เสร็จแล้ว
ไม่สามารถติดตั้งแพคเกจบางอย่าง นี่อาจหมายความว่าคุณมี
ขอสถานการณ์ที่เป็นไปไม่ได้หรือหากคุณกำลังใช้สถานการณ์ไม่มั่นคง
การกระจายที่บางแพคเกจที่จำเป็นยังไม่ได้ถูกสร้างขึ้น
หรือถูกย้ายออกจาก Incoming
ข้อมูลต่อไปนี้อาจช่วยในการแก้ไขสถานการณ์:

แพ็คเกจต่อไปนี้มีการขึ้นต่อกันที่ไม่คาดคิด:
 kubuntu-desktop: ขึ้นอยู่กับ: language-selector-kde แต่มันจะไม่ถูกติดตั้ง
                   แนะนำ: amarok แต่มันจะไม่ถูกติดตั้ง
                   แนะนำ: apturl-kde แต่มันจะไม่ถูกติดตั้ง
                   แนะนำ: gdebi-kde แต่มันจะไม่ถูกติดตั้ง
                   แนะนำ: gpgsm แต่จะไม่ถูกติดตั้ง
                   แนะนำ: ibus-qt4 แต่จะไม่ถูกติดตั้ง
                   แนะนำ: jockey-kde แต่มันจะไม่ถูกติดตั้ง
                   แนะนำ: kdegraphics-strigi-plugins แต่จะไม่ถูกติดตั้ง
                   แนะนำ: kdepim-wizards แต่มันจะไม่ถูกติดตั้ง
                   แนะนำ: kpackagekit แต่มันจะไม่ถูกติดตั้ง
                   แนะนำ: libreoffice-kde แต่มันจะไม่ถูกติดตั้ง
                   แนะนำ: libreoffice-style-oxygen แต่จะไม่ถูกติดตั้ง
                   แนะนำ: network-manager-pptp-kde แต่จะไม่ถูกติดตั้ง
                   แนะนำ: plasma-widget-facebook แต่จะไม่ถูกติดตั้ง
                   แนะนำ: plasma-widget-kimpanel แต่จะไม่ถูกติดตั้ง
                   แนะนำ: usb-creator-kde แต่มันจะไม่ถูกติดตั้ง
E: ไม่สามารถแก้ไขปัญหาคุณมีแพคเกจที่เสียหาย

ฉันรู้สึกประหลาดใจกับผลลัพธ์ที่ได้ ทันใดนั้นฉันจำได้ว่าฉันได้ตั้งค่า ( สำหรับการเขียนคำตอบนี้ ) ใน/etc/apt/preferenceการตั้งค่าลำดับความสำคัญสูงสุดกับพื้นที่เก็บข้อมูลท้องถิ่นของฉัน

ดังนั้นฉันวิ่งสิ่งนี้: apt-cache policy kubuntu-desktopผลลัพธ์เป็นดังนี้:

anwar @ edubuntu-lenovo: ~ นโยบาย $ apt-cache kubuntu-desktop 
Kubuntu เดสก์ทอป:
  ติดตั้งแล้ว: (ไม่มี)
  ผู้สมัคร: 1.222.1kde47 ~ ppa2
  ตารางเวอร์ชัน:
     1.254 0
        500 cdrom: // Kubuntu 12.04 LTS _Precise Pangolin_ - รีลีส i386 (20120424) / แม่นยำ / main i386 แพ็คเกจ
        500 http://archive.ubuntu.com/ubuntu/ แม่นยำ / main i386 แพ็คเกจ
     1.222.1kde47 ~ ppa2 0
       ไฟล์ 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / แพ็คเกจ
     1.222.1 0
       ไฟล์ 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / แพ็คเกจ
     1.222 0
       ไฟล์ 1001: / media / Main / Linux-Software / Ubuntu / Natty / kubuntu / แพ็คเกจ

ในผลลัพธ์นี้เราจะเห็นว่าทั้ง "cdrom" และ "repository หลักที่แม่นยำ" มีหมายเลขเวอร์ชัน1.254ในขณะที่ repository ท้องถิ่นมีเวอร์ชั่น1.222.1kde47 ~ ppa2ซึ่งเป็นรุ่นต่ำกว่า แม้ว่าจะถูกวางไว้ก่อนไฟล์โลคัลในไฟล์ sources.list แต่แพ็กเกจโลคัลมีความสำคัญกว่า

หากต้องการดูอย่างชัดเจนว่าapt-getกำลังพยายามติดตั้งจากเครื่องในท้องถิ่นฉันจึงเรียกใช้synapticและรับสิ่งนี้ซึ่งแสดงให้เห็นว่าระบบ Apt พิจารณา1.222.1kde47 ~ ppa2เป็นเวอร์ชันผู้สมัครเพื่อติดตั้ง

ป้อนคำอธิบายรูปภาพที่นี่

ยังapt-cache policy kubuntu-desktopแสดงสิ่งเดียวกัน

anwar @ edubuntu-lenovo: ~ นโยบาย $ apt-cache kubuntu-desktop
Kubuntu เดสก์ทอป:
  ติดตั้งแล้ว: (ไม่มี)
  ผู้สมัคร: 1.222.1kde47 ~ ppa2
  ตารางเวอร์ชัน:
     1.254 0
        500 cdrom: // Kubuntu 12.04 LTS _Precise Pangolin_ - รีลีส i386 (20120424) / แม่นยำ / main i386 แพ็คเกจ
        500 http://archive.ubuntu.com/ubuntu/ แม่นยำ / main i386 แพ็คเกจ
     1.222.1kde47 ~ ppa2 0
       ไฟล์ 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / แพ็คเกจ
     1.222.1 0
       ไฟล์ 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / แพ็คเกจ
     1.222 0
       ไฟล์ 1001: / media / Main / Linux-Software / Ubuntu / Natty / kubuntu / แพ็คเกจ

เพื่อแก้ปัญหานี้ผมลบไฟล์โดย/etc/apt/preferencesudo rm /etc/apt/preference

apt-cache policy kubuntu-desktopแล้ววิ่งอีกครั้งนี้อีกครั้ง เห็นผลลัพธ์ที่คาดหวังนี้เท่านั้น

anwar @ edubuntu-lenovo: ~ $ sudo rm / etc / apt / preferences
anwar @ edubuntu-lenovo: ~ $ sudo apt-cache policy kubuntu-desktop
Kubuntu เดสก์ทอป:
  ติดตั้งแล้ว: (ไม่มี)
  ผู้สมัคร: 1.254
  ตารางเวอร์ชัน:
     1.254 0
        500 cdrom: // Kubuntu 12.04 LTS _Precise Pangolin_ - รีลีส i386 (20120424) / แม่นยำ / main i386 แพ็คเกจ
        500 http://archive.ubuntu.com/ubuntu/ แม่นยำ / main i386 แพ็คเกจ
     1.222.1kde47 ~ ppa2 0
        500 ไฟล์: / media / Main / Linux-Software / Ubuntu / Natty / natty / Packages
     1.222.1 0
        500 ไฟล์: / media / Main / Linux-Software / Ubuntu / Natty / natty / Packages
     1.222 0
        500 ไฟล์: / media / Main / Linux-Software / Ubuntu / Natty / kubuntu / แพ็คเกจ

วิ่งอีกครั้งเช่นนี้ sudo apt-get install kubuntu-desktopเพื่อดูผลลัพธ์ด้านล่าง:

......... ลบรายละเอียดที่ไม่จำเป็น .........

0 อัพเกรดแล้ว 213 เพิ่งติดตั้งใหม่ 0 เพื่อลบและ 150 ไม่ได้อัปเกรด
ต้องการเก็บถาวร 0 B / 89.6 MB
หลังจากการดำเนินการนี้จะใช้พื้นที่ดิสก์เพิ่มเติม 269 MB
คุณต้องการที่จะดำเนินการต่อไป [Y / n]? 

คุณสามารถตรวจสอบผลการแข่งขันได้ที่นี่

จากนั้นฉันก็ค่อนข้างแน่ใจเกี่ยวกับส่วนคำอธิบาย


การอ้างอิง 1: คู่มือ apt_preference

การอ้างอิง 2: วิธีการติดตั้งแพ็คเกจเฉพาะรุ่น


1
+1 สำหรับส่วน "จะเกิดอะไรขึ้นถ้ามีหลายอินสแตนซ์ของรุ่นเดียวกัน" อธิบายการทำงาน แต่ฉันจะรอจนถึงสิ้นสัปดาห์บางทีบางคนอาจมีคำอธิบายที่ดีกว่า :)
Savvas Radevic

ฉันควรเพิ่มตัวอย่างโดยใช้ repo ท้องถิ่นหรือไม่
Anwar

พระเยซู ... ฉันหมายถึงขอบคุณสำหรับคำตอบที่คุณอธิบาย แต่มันควรจะง่ายกว่านี้มาก ทำไมบนโลกนี้จึงไม่สามารถกำหนดลำดับความสำคัญได้เมื่อรัน apt-add-repository
Adam Plocher
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.