ติดตั้งเฉพาะการพึ่งพาของแพ็คเกจที่กำหนดใน Debian หรือ Ubuntu (ฉลาด)


18

มีวิธีที่ดีกว่าในการติดตั้งเฉพาะการพึ่งพาที่จำเป็นของแพคเกจแทนที่จะติดตั้งโดยตรงกับ apt-get (หรือส่วนหน้าของ dpkg อื่น ๆ ) จากนั้นนำออกทันทีโดยไม่ต้องพึ่งพามันหรือไม่

คำตอบ:


22

apt-cache depends pkgname จะแสดงการพึ่งพาของแพ็คเกจ

หากคุณต้องการทุกอย่างในคำสั่งเดียวคุณสามารถทำได้แย่กว่า:

apt-get install `apt-cache depends pkgname | awk '/Depends:/{print$2}'`

16

apt-get มีคำสั่งสำหรับ ...

apt-get build-dep <package name>

จากหน้าคนที่คุณได้รับ

build-dep ทำให้ apt-get เพื่อติดตั้ง / ลบแพ็กเกจในความพยายามที่จะสร้างการอ้างอิง build สำหรับแพ็กเกจซอร์ส โดยค่าเริ่มต้นการพึ่งพามีความพึงพอใจในการสร้างแพคเกจโดยกำเนิด หากต้องการสถาปัตยกรรมโฮสต์สามารถระบุได้ด้วยตัวเลือก - โฮสต์สถาปัตยกรรม


9
ไม่สามารถมีความแตกต่างระหว่างbuild dependenciesและdependencies? เช่นเดียวกับในกรณีที่คุณติดตั้งโปรแกรมตามปกติคุณจะได้รับการอ้างอิงว่ามันต้องใช้งานจริงและด้วยการพึ่งพาแบบ build-down ฉันคิดเกี่ยวกับไลบรารีคอมไพเลอร์สิ่งต่าง ๆ เช่นนั้น ดังนั้นในขณะที่ฉันไม่แน่ใจ (คำตอบนี้มี upvotes) แต่สำหรับฉันแล้วมันไม่สำคัญเลยว่าการสร้าง build-dependencies นั้นเหมือนกับการได้รับ (run) dependencies ที่แพ็คเกจมี?
Nanne

1
คุณถูก. ในการตอบคำถามนี้เมื่อนานมาแล้วฉันไม่เข้าใจความแตกต่างระหว่าง build dependencies (build time) และ dependencies (รันไทม์) ขอบคุณสำหรับการชี้แจง Nanne!
Nathan Crock

4

ความถนัดจะช่วยให้คุณระบุแบบสอบถามแทนชื่อแพ็คเกจเมื่อติดตั้ง หากคุณต้องการติดตั้งการขึ้นต่อกันของแพ็คเกจที่มีชื่อfooคุณสามารถติดตั้งแพ็กเกจที่มีการพึ่งพาย้อนกลับได้ในfoo:

aptitude install '?reverse-depends(foo)'

หรือ

aptitude install '~Rfoo'

ปัญหาเกี่ยวกับการติดตั้งแพคเกจแล้วลบมันคือทั้งหมดของแพคเกจที่ได้รับการติดตั้งเป็นอ้างอิงจะถูกระบุว่าเป็น "ติดตั้งโดยอัตโนมัติ" และจะถูกลบออกจากการกระทำใด ๆ ที่ติดตั้ง / ลบ / อัพเกรดโดยความถนัดหรือเมื่อคุณเรียกapt-get autocleanเว้นแต่คุณ ทำเครื่องหมายว่าติดตั้งด้วยตนเองโดยใช้aptitude markหรือapt-markคำสั่ง

อย่างไรก็ตามสิ่งนี้ทำให้เกิดคำถามว่าทำไมคุณถึงต้องการทำสิ่งที่ฉันคาดเดาได้ดีที่สุดคือคุณกำลังพยายามติดตั้งการพึ่งพาสำหรับซอฟต์แวร์บางตัวที่คุณจะรวบรวมด้วยมือ ในกรณีดังกล่าวคุณจะต้องติดตั้ง build dependencies ก่อนด้วยapt-get build-dep packagenameแต่คุณควรสร้างแพ็คเกจจำลองที่มีการพึ่งพารันไทม์ (ซึ่งโดยทั่วไปแตกต่างจาก build dependencies) โดยใช้equivแพ็คเกจเพื่อสร้างแพ็คเกจจำลองด้วยการอ้างอิงที่ถูกต้องสำหรับ โปรแกรมที่คอมไพล์ด้วยตนเอง ดูข้อมูลเกี่ยวกับequivsในAPT HOWTO


3

ในกรณีที่สร้าง pkgname จากแหล่งที่มา

apt-get build-dep pkgname

1
build dependencies ไม่ใช่การขึ้นต่อกันแบบรันไทม์
2559

>> ในกรณีของการสร้าง pkgname จากแหล่งที่มา
eri

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