วิธีการติดตั้งเวอร์ชั่นแพ็คเกจปลอม


23

การเป็นผู้เริ่มต้นและการใช้งานบิวด์ 11.04 รายวันบางครั้งฉันพบสถานการณ์เมื่อบางแพ็กเกจต้องการแพ็คเกจอื่น ๆ เวอร์ชันก่อนหน้านี้กว่าที่ฉันติดตั้งไว้ โดยทั่วไปแล้วแพคเกจที่จำเป็นรุ่นใหม่กว่า (แต่ปฏิเสธ) ให้การทำงานทั้งหมดของเวอร์ชั่นเก่า

ถ้าฉันใช้dpkg -i --force-depends-versionในการติดตั้งแพคเกจที่ขึ้นอยู่กับทุกอย่างทำงานได้ดีฉันไม่เคยเห็นปัญหา

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

คำตอบ:


16

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


ในขณะนี้ก็เพียงพอแล้ว แต่ลิงค์อาจจะเสียหายไม่ช้าก็เร็ว ดีกว่าที่จะมีการสอนต่ออย่างน้อยภายในคำตอบ คำตอบของฉันอาจจะช่วยให้ที่นี่askubuntu.com/a/1181415/26246 ดังนั้นเราสามารถอ้างอิงคำถามนี้ซึ่งมีคะแนนสูงกว่าเกี่ยวกับ equivs
user.dz

23

แม้จะมีคำตอบที่ได้รับการยอมรับแล้วก็ตาม

  1. มีแพ็คเกจเดเบียนที่เรียกequivsว่าสามารถสร้างแพ็คเกจจำลองได้ ติดตั้งโดยใช้sudo apt-get install -y equivs

  2. เมื่อติดตั้งแล้วคุณจะสร้างไฟล์ "control" เทมเพลตโดยใช้คำสั่งต่อไปนี้: equivs-control postfix(แทนที่postfixด้วยชื่อแพ็คเกจของคุณ) ในกรณีของฉันฉันอาจใช้ชื่อแพคเกจสำรองเช่นpostfix-customหรืออะไรก็ตาม แต่มีแพ็คเกจที่กำหนดเองของฉันหรือProvidesการติดตั้งพึ่งพาpostfix(แทนอีกครั้งpostfixสำหรับแพคเกจสิ่งที่คุณต้องการ

  3. เมื่อสร้างไฟล์ควบคุมเทมเพลตโดยทั่วไปแล้วฉันจะลบข้อความคอมเม้นท์ที่ออกความคิดเห็นจำนวนมาก (ข้อความที่ขึ้นต้นด้วย#) สิ่งหนึ่งที่ฉันต้องการเก็บไว้เป็นพิเศษคือProvides:ข้อความที่ฉันสามารถพูดได้ว่าแพ็คเกจของฉันให้ความสามารถที่เสนอโดยแพ็คเกจอื่นที่ฉันพยายามปลอมเช่นProvides: postfixบอกกลไกการแก้ปัญหาการพึ่งพา Debian / Ubuntu ที่แพ็คเกจของฉัน มอบความสามารถแบบเดียวกันกับแพ็คเกจเป้าหมายอีกครั้งpostfixหรืออะไรก็ตาม สิ่งนี้ช่วยให้ฉันตั้งชื่อแพ็คเกจของฉันแยกต่างหากจากแพ็คเกจเป้าหมายเพื่อหลีกเลี่ยงความสับสน Erlang โรงงานทำอย่างนี้กับสิ่งที่พวกเขาเช่นให้esl-erlangerlang

  4. สุดท้ายเมื่อควบคุมแฟ้มแม่แบบจะถูกสร้างขึ้นที่คุณใช้ในการสร้างแพคเกจปลอมเช่นequivs-buildequivs-build /path/to/generated/control/file

  5. ใช้เวลาไม่กี่วินาทีในการสร้างแพ็คเกจและจากนั้นคุณสามารถเรียกใช้ sudo dpkg -i my_package_name*.deb

สำหรับผู้ใช้ขั้นสูงหากไฟล์ควบคุมเทมเพลตของคุณมีRequires:บรรทัดการขึ้นต่อกันคุณอาจต้องการใช้เครื่องมือเช่นgdebiการติดตั้งแพคเกจของคุณรวมถึงแพ็คเกจต่างๆที่ประกาศว่าเป็นการพึ่งพา

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