จะบอกได้อย่างไรว่าการพึ่งพาได้รับการแก้ไขด้วยตนเอง


14

สมมติว่ามีซอฟต์แวร์ที่ฉันไม่ต้องการติดตั้งaptแต่ด้วยตนเอง (TeXLive เพราะฉันต้องการใช้รุ่น 2011 และaptมีรุ่น 2009 เท่านั้น)

สมมติว่ามีซอฟต์แวร์อื่นที่ฉันต้องการติดตั้งผ่านaptซึ่งขึ้นอยู่กับซอฟต์แวร์ตัวแรก (Vim LaTeXSuite เนื่องจากเป็นความเจ็บปวดในการติดตั้งด้วยตนเองสำหรับการใช้งานทั่วทั้งระบบ)

ตามค่าเริ่มต้นaptจะไม่ "เห็น" ซอฟต์แวร์แรกและดำเนินการติดตั้ง cruft ที่ไม่จำเป็นและไม่เป็นที่พอใจ (เช่น TeXLive 2009) จำนวนมากเพื่อตอบสนองเมตาดาต้าที่ต้องพึ่งพา

ฉันจะทำได้อย่างไร:

  • บอกaptว่าแพคเกจที่กำหนด (เช่นtexlive) มีการติดตั้งสำหรับวัตถุประสงค์ในทางปฏิบัติทั้งหมดและที่มันไม่ควรจะติดตั้งเป็นพึ่งพาของแพคเกจอื่น ๆ บางอย่าง?

  • บอกaptให้ติดตั้งแพคเกจที่กำหนด (เช่นvim-latexsuite) โดยไม่ต้องกังวลเกี่ยวกับการพึ่งพาหรือไม่

ผมเคยร่อนผ่านช่องทางต่างๆaptmanpages เกี่ยวข้องกับและว่างเปล่าขึ้นมาและยังพบว่าคำถามนี้บนเว็บไซต์นี้ แต่รู้สึกว่ามีมีจะเป็นวิธีที่ hackish น้อยที่จะทำเช่นนี้หรือไม่?

(จากยุคเจนทูของฉันฉันจำได้emerge --injectและ/etc/portage/package.providesโดยพื้นฐานแล้วฉันกำลังมองหาสิ่งที่aptเทียบเท่า)


TeX Live 2011 ได้รับการเพิ่มลงใน Debian Sid แล้วดังนั้นจึงควรเผยแพร่ไม่ช้าก็เร็วเพื่อ Mint เช่นกัน (แต่ Ubuntu 12.04 "พลาด" ดังนั้นจึงไม่เร็วกว่าสิ้นเดือนตุลาคมด้วย Ubuntu 12.10) หากคุณผจญภัยจริงๆคุณอาจคว้าแพ็คเกจจาก Debian Sid ได้ แต่เนื่องจากในกรณีนี้มันเกี่ยวข้องกับแพ็คเกจมากมายมันอาจไม่ใช่วิธีที่ดี มี PPA ที่launchpad.net/~texlive-backports/+archive/ppaตั้งค่า (ดูรายงานบั๊กนี้ใน Ubuntu ) ที่คุณอาจใช้ใน Mint ก็ได้เช่นกัน
Daniel Andersson


ไม่แสดงความคิดเห็น downvote สามปีต่อมา ... สนใจที่จะอธิบาย?
DevSolar

@DevSolar: ดูเหมือนว่ามีคนลงคะแนนอนุกรมคำถามและทั้งสองตอบสามปีหลังจากความจริงโดยไม่ต้องชี้แจงว่าทำไม ดีที่สุดที่จะยักและย้ายไปฉันเดา :-)
Daniel Andersson

คำตอบ:


13

คุณควรใช้equivsแพคเกจเพื่อสร้างเมตาแพ็คเกจที่ให้การอ้างอิงเหล่านี้และจากนั้นใช้dpkgเพื่อติดตั้งแพคเกจเหล่านี้

การติดตั้งequivsและอ่านเอกสารของมันควรจะเพียงพอ แต่คำแนะนำสำหรับ Ubuntuนี้ค่อนข้างกว้างขวางและควรนำไปใช้กับระบบ APT อื่นเช่นกัน


นอกจากนี้หากคุณรู้สึกว่าแพ็กเกจควรจะสามารถติดตั้งได้โดยไม่ต้องพึ่งพาที่ระบุคุณควรยื่นข้อบกพร่องกับแพคเกจอธิบายกรณีที่ไม่จำเป็นต้องพึ่งพา

ในกรณีนี้ , texlive-base-binดูเหมือนว่าจะได้รับการ "แนะนำ" และไม่ได้เป็น "พึ่งพา" ในการกระจาย Debian ฐานอย่างน้อย (อาจจะอยู่ในส่วนหนึ่งเนื่องจากtexliveเป็นเช่นแพคเกจอย่างมาก) แต่เพราะมันเป็นเรื่องธรรมดาที่จะติดตั้งต้นน้ำเท็กซ์สดใน Debian ตั้งแต่ รุ่นกระจายมักล่าช้าหลังอย่างมาก (สำหรับเหตุผลที่แพคเกจดังกล่าวเป็นสัตว์ร้ายที่มักจะไม่สามารถบรรจุโดยไม่ต้องทำงานที่สำคัญซึ่งส่วนใหญ่ทำโดยหนึ่งหรือไม่กี่คนที่อ้างว่าพวกเขามีชีวิตอยู่ข้าง Debian) equivsเคล็ดลับมักใช้กับ TeX Live (ว้าวประโยคนั้นหลุดมือไปแล้ว :-))


เพิ่มเติม : สำหรับคำแนะนำโดยละเอียดเพิ่มเติมสำหรับผู้ที่ต้องการติดตั้ง TeXLive นอกระบบแพคเกจคำแนะนำเหล่านี้ใน TeX.SXมีความครอบคลุมมากขึ้นและมีแนวโน้มที่จะได้รับการปรับปรุงอย่างต่อเนื่อง พวกเขายังมีคำแนะนำที่ชัดเจนเกี่ยวกับequivsขั้นตอน


ฉันไม่รู้ว่าสิ่งนี้เกิดขึ้นได้อย่างไร แต่ Linux Mint ทำให้การพึ่งพา "ยาก" ของ texlive ... จะลองใช้equivsแพคเกจ
DevSolar

equivsทำงานได้ดีมาก ฉันสร้างเวอร์ชัน 9999 จากtexlive-base-binโดยแทนที่แพ็คเกจ "จำลอง" ดั้งเดิมที่มีชื่อเดียวกัน (จัดทำโดยtexlive-binaries) และติดตั้งvim-latexsuiteโดยไม่มีปัญหาใด ๆ
DevSolar

1

คุณสามารถใช้การ--nodepsตั้งค่าสถานะใน dpkg ซึ่งควรติดตั้งแพคเกจที่ไม่มีการพึ่งพาเลย

   --ignore-depends=package,...
          Ignore  dependency-checking for specified packages (actu-
          ally, checking is performed, but only warnings about con-
          flicts are given, nothing else)

มีคำถามที่คล้ายกันมากใน Serverfaultซึ่งควรพิจารณาเช่นกัน


เอ่อ ... ไม่มีสิ่งนั้นเหรอ? (อย่างน้อยไม่ได้อยู่ในกล่อง Linux Mint 12 ที่ฉันมีอยู่ที่นี่)
DevSolar

1
อืมฉันดูเหมือนว่าจะทำผิดพลาด - มันสำหรับ dpkg, ไม่ฉลาด - ได้แก้ไขคำตอบของฉันเพื่อสะท้อนสิ่งนี้
Journeyman Geek

นั่นเป็นสิ่งที่ทำให้ฉันสับสนไม่สิ้นสุดกับ Debian derivates: อินเทอร์เฟซตัวจัดการแพคเกจมากมาย ฉันคิดว่าไม่มี tripfalls เกี่ยวข้องเมื่อผสมพวกเขา หรือฉันจะต้องติดกับหนึ่งในพวกเขา?
DevSolar

ทุกอย่างขึ้นอยู่กับ dpkg โดยพื้นฐานแล้ว apt และ aptitude นั้นเป็นส่วนหน้าและนั่นก็คือ front end สำหรับ apt และ aptitude โดยปกติจะใช้ dpkg เมื่อคุณต้องการติดตั้งแพ็คเกจออกจากไฟล์. deb ฉันมักจะยึดติดกับ apt-get และ dpkg เป็นส่วนใหญ่เอง การผสมตัวจัดการแพคเกจที่มีรสชาติแบบเดเบียน 'เริ่มต้น' โดยทั่วไปควรจะปลอดภัยพอสมควร
Journeyman Geek

นั่นทำให้คำตอบของคุณฉันต้องการทางออกสำหรับปัญหาจริงของฉันเนื่องจากไม่มีอะไรขึ้นอยู่กับ vim-latexsuite ในทางกลับกัน อย่างไรก็ตามการแก้ปัญหานี้ไม่ได้ทำเครื่องหมาย "texlive" ว่ามีอยู่มันเพียงช่วยให้กลุ่ม vim-latexsuite จากการขอมัน ดังนั้นคำตอบของ Daniel ก็เหมาะกับชื่อของคำถามมากกว่า เครื่องหมายถูกไปที่เขารุ่งโรจน์ไปกับคุณ ;-)
DevSolar

1

ต่อไปนี้จะลบการพึ่งพาจากไฟล์. deb ในกรณีนี้การลบการพึ่งพา libperl5.20 จาก freeradius:

dpkg-deb -x freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius
dpkg-deb -e freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius/DEBIAN
sed -i  -e 's/, libperl5.20 (>= 5.20.2)//g' freeradius/DEBIAN/control
dpkg-deb -b freeradius freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb

นี้ช่วยให้คุณติดตั้งแพคเกจโดยไม่ต้องรู้การพึ่งพาอยู่

หากคุณกำลังติดตั้งแพ็กเกจเวอร์ชันเฉพาะด้วยตนเองคุณอาจต้องการหยุดการapt-get upgradeอัพเกรดแพ็กเกจในอนาคต:

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