ฉันไม่เข้าใจว่าทำไมมีสองโปรแกรมที่แตกต่างกันในการติดตั้งขั้นต่ำเพื่อติดตั้งซอฟต์แวร์ พวกเขาไม่ทำสิ่งเดียวกันหรือ มีความแตกต่างใหญ่หรือไม่? ฉันได้อ่านทุกที่เพื่อใช้ความถนัดมากกว่า apt-get แต่ฉันก็ยังไม่รู้ความแตกต่าง
ฉันไม่เข้าใจว่าทำไมมีสองโปรแกรมที่แตกต่างกันในการติดตั้งขั้นต่ำเพื่อติดตั้งซอฟต์แวร์ พวกเขาไม่ทำสิ่งเดียวกันหรือ มีความแตกต่างใหญ่หรือไม่? ฉันได้อ่านทุกที่เพื่อใช้ความถนัดมากกว่า apt-get แต่ฉันก็ยังไม่รู้ความแตกต่าง
คำตอบ:
aptitude เป็น wrapper สำหรับ dpkg เช่นเดียวกับ apt-get / apt-cache แต่เป็นเครื่องมือครบวงจรสำหรับการค้นหา / ติดตั้ง / ลบ / ค้นหา ตัวอย่างเล็ก ๆ น้อย ๆ ที่ apt อาจไม่ได้ให้:
$ aptitude why libc6
i w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.
$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2),
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs
on the system. This package includes shared versions of the standard
C library and the standard math library, as well as many others.
aptitude
รู้ว่าแม้ล่าสุดapt
ไม่สามารถทำได้: aptitude search '~i linux'
ค้นหาแพ็คเกจด้วยlinux
ในชื่อหรือคำอธิบายที่ติดตั้ง aptitude search '~o'
แสดงรายการแพ็กเกจที่ล้าสมัย (แพ็กเกจที่ติดตั้งซึ่งไม่ได้ให้บริการโดยที่เก็บใด ๆ อีกต่อไป); aptitude search '!~M ~i'
แสดงแพ็คเกจที่ไม่ได้ทำเครื่องหมายว่าติดตั้งโดยอัตโนมัติ aptitude search '~i lib.*-dev'
แสดงไลบรารีการพัฒนาที่ติดตั้งและคุณสามารถแทนที่search
ด้วยmarkauto
หรือunmarkauto
เพื่อทำเครื่องหมายแพ็คเกจเหล่านี้ว่าติดตั้งโดยอัตโนมัติหรือด้วยตนเอง
mikeage@linode ~$ aptitude -h | tail -n 1
This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.
/----\
-------/ \
/ \
/ |
-----------------/ --------\
----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
เครื่องมืออย่างเป็นทางการที่ใช้ในปัจจุบันภายในติดตั้ง Debian และแนะนำในบันทึกประจำรุ่นaptitude
คือ
Aptitude นำเสนออินเตอร์เฟส curses (เมื่อรันโดยไม่มีพารามิเตอร์ใด ๆ ) และอินเตอร์เฟสบรรทัดคำสั่งที่สามารถทำเกือบทุกอย่างที่apt-cache
/ apt-get
ทำได้ นอกจากนี้ยังมีตัวแก้ไขการพึ่งพาที่ดีกว่าซึ่งช่วยให้คุณสามารถเรียกดูระหว่างโซลูชันต่างๆ แม้เมื่อใช้เวอร์ชันบรรทัดคำสั่งคุณสามารถโต้ตอบกับโซลูชันที่เสนอและให้คำสั่งซื้อเพิ่มเติมหรือคำแนะนำ (เช่นการติดตั้งหรือลบแพ็กเกจที่แนะนำโดยอีกอันหนึ่ง)
แต่ความถนัดจะขึ้นอยู่กับไลบรารี libapt (ไม่ใช่ wrapper โดยตรงของ dpkg) และขึ้นอยู่กับapt
แพ็กเกจดังนั้นคุณจะไม่สามารถติดตั้ง aptitude ได้โดยไม่ต้อง apt-get (ซึ่งอยู่ในแพ็คเกจ apt ด้วย)
$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการโต้ตอบ apt / dpkg / aptitude คุณสามารถตรวจสอบไดอะแกรมของ Daniel Burrows (ผู้เขียนหลักของ aptitude) แผนภาพอีกนำเสนอข้อมูลที่เก็บไว้โดยเครื่องมือในการจัดการแพคเกจต่างๆ: แผนที่ของไฟล์รัฐฉลาดและ dpkg
คุณยังสามารถอ่านบทความของฉันapt-get, aptitude, …เลือกผู้จัดการแพ็คเกจที่เหมาะสมสำหรับคุณ
aptitude
จำได้ว่าแพคเกจที่คุณตั้งใจติดตั้งและที่ได้รับการติดตั้งโดยอัตโนมัติเพื่อตอบสนองการอ้างอิง เมื่อทำการลบความสามารถของแพ็คเกจจะลบแพ็คเกจที่ติดตั้งโดยอัตโนมัติเพื่อให้ระบบของคุณเป็นระเบียบ apt-get
ไม่ใช่ว่าฉลาด
aptitude
จะกลายเป็นเครื่องมือที่ขาดไม่ได้อย่างรวดเร็วเมื่อคุณใช้แหล่งเก็บข้อมูลที่แตกต่างกับแพ็คเกจรุ่นต่าง ๆ ลองนึกภาพคุณกำลังทำงานกับbackports.orgหรือไม่เป็นทางการที่เก็บเช่นdebian-multimedia.org จากนั้นaptitude
จะแสดง (ที่ด้านล่างของหน้ารายละเอียดของแพคเกจที่แน่นอน) หมายเลขรุ่นที่มีอยู่และช่วยให้คุณสามารถเลือกหนึ่ง
หากคุณเข้าสู่สถานการณ์ที่โปรแกรมขัดแย้งเนื่องจากการใช้ที่เก็บอย่างไม่เป็นทางการดังกล่าวคุณจะเห็นจอแสดงผล"แตก: ... "ที่ด้านบน คุณสามารถพิมพ์l ~ b (จำกัด / ตั้งค่าสถานะ / แตก) และรับรายการแพคเกจที่ขัดแย้งกัน ทำให้ง่ายขึ้นในการแก้ไขข้อขัดแย้งด้วยตนเอง
นอกจากนี้คุณสามารถใช้ " l
" เพื่อ จำกัด รายการแพ็คเกจได้ ลองนึกภาพว่าคุณกำลังมองหาแพ็คเกจที่เริ่มต้นด้วย " openoffice " จากนั้นกด " l
" และพิมพ์ " ^openoffice
" (เป็นนิพจน์ทั่วไป) และคุณจะเห็นเฉพาะแพ็คเกจเหล่านั้น เลือก"รายการแพคเกจแบน"จากเมนูและคุณจะไปถึงเป้าหมายได้อย่างรวดเร็ว
คู่มือฉบับสมบูรณ์มีขนาดใหญ่มากมีตัวกรองและความเป็นไปได้มากมาย แม้ว่าคุณจะไม่ทราบว่ามันaptitude
เป็นอุปกรณ์ทดแทนที่มีประโยชน์apt-get
และคุณสามารถใช้กับพารามิเตอร์ทั่วไปเช่น:
aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)
apt-get autoremove
ตอนนี้ลบแพ็กเกจที่ติดตั้งเป็นการอ้างอิงของแพ็กเกจที่ถูกลบออกไป
apt
และมันสามารถทำส่วนผสมของสิ่งที่apt-get
และapt-cache
ใช้ในการทำ ตัวอย่างเช่นapt search foo
จะแสดงรายการแพคเกจที่มีfoo
ชื่อหรือคำอธิบาย apt install foo
จะติดตั้งแพคเกจที่เรียกว่าfoo
ถ้ามีและapt policy foo
จะแสดงรายการเวอร์ชันที่ติดตั้งอยู่ในปัจจุบันและแพ็คเกจที่มีfoo
อยู่ทั้งหมด
aptitude
ยังคงสามารถทำอะไรได้มากกว่าapt
แต่ธรรมดาapt
มักจะได้เร็วขึ้นมาก
นอกเหนือจากการจัดเตรียม UI คอนโซลที่สวยเมื่อคุณเรียกใช้aptitude
โดยไม่มีอาร์กิวเมนต์มันรวมapt-*
คำสั่งต่าง ๆ(และdselect
) ไว้ในยูทิลิตี้เดียว ..
วิธีค้นหาแพ็คเกจและติดตั้งโดยใช้ apt-get:
apt-cache search somepkg
apt-get install somepkg
.. แต่ด้วยความถนัดมันเป็นคำสั่งเดียวกัน:
aptitude search somepkg
aptitude install somepkg
aptitude
มีคุณสมบัติเพิ่มเติมบางอย่างเช่นaptitude changelog somepkg
และสิ่งต่าง ๆ เช่นแพคเกจการถือครอง (เพื่อหยุดการอัปเกรด) - ไม่มีสิ่งใดที่คุณไม่สามารถทำได้ด้วยคำสั่ง / วิธีการอื่น ๆ มันเป็นอันหนึ่งอันเดียวกันและดีกว่าที่จะใช้
อย่างที่คุณทราบเมื่อคุณติดตั้งแพคเกจหากต้องการแพ็คเกจอื่น ๆ (การอ้างอิง) พวกเขาจะถูกดาวน์โหลดและติดตั้งด้วย แทร็ก aptitude ในขณะที่ติดตั้งแพ็กเกจที่มาพร้อมกับแพ็กเกจที่ติดตั้งดังนั้นเมื่อคุณลบความถนัดหลังจะขอให้คุณลบการอ้างอิงอื่น (ตอนนี้ไม่ได้ใช้) "orphaned" apt-get จะเก็บมันไว้ในระบบของคุณอย่างเงียบ ๆ หากคุณลบแพ็คเกจ "main" ออก
ดูเหมือนว่า apt-get รุ่นล่าสุดมีฟังก์ชั่นที่คล้ายกัน: http://www.psychocats.net/ubuntu/aptitude
aptitude
หรือapt
ในความเป็นจริงไม่ได้เก็บรายการแพคเกจที่ติดตั้งเป็นการอ้างอิงสำหรับแพ็คเกจที่กำหนด มันจะติดตามว่ามีการติดตั้งแพคเกจด้วยตนเองหรือโดยอัตโนมัติ และถ้าแพคเกจที่ได้รับการทำเครื่องหมายว่าเป็นที่ติดตั้งโดยอัตโนมัติและไม่แพคเกจอื่น ๆ ขึ้นอยู่หรือแนะนำมันจะถูกลบออกด้วยหรือapt autoremove
aptitude dist-upgrade
ความแตกต่างที่ใหญ่ที่สุดคือความถนัดถูกออกแบบมาให้มีการโต้ตอบซึ่งเครื่องมือที่เหมาะจะเหมาะสำหรับงานเขียนสคริปต์ คุณสามารถใช้เครื่องมือหลังเช่นเครื่องมือ apt โต้ตอบได้ดีด้วยความพยายามมากขึ้นเพื่อให้ได้ผลลัพธ์เดียวกันกับที่ความถนัดให้ หากคุณต้องใช้เครื่องมือเดียวหรือเครื่องมืออื่นด้วยเหตุผลบางอย่างคุณต้องตัดสินใจว่าคุณต้องการใช้ความพยายามมากแค่ไหนในการจัดการแพ็คเกจ
ข้อดีอย่างหนึ่งของความถนัดคือความสามารถในการคำนวณการพึ่งพา ประการแรกมันสามารถจัดการการพึ่งพาระหว่างกันที่ซับซ้อนโดยไม่มีการแทรกแซงด้วยตัวเองซึ่งมักจะไม่สามารถทำได้ แต่ถ้าคุณไม่ชอบวิธีแก้ปัญหาที่นำเสนอให้คุณ (และจะให้คะแนนโซลูชันของตัวเองเพื่อแสดงให้เห็นว่ามันคิดว่าดีแค่ไหน) คุณสามารถขอให้มันหายไปและหาวิธีแก้ปัญหาความขัดแย้งอื่น ๆ
มันจะทำการจัดการแพ็คเกจที่ยอดเยี่ยมจริงๆ
ข้อแตกต่างที่ใหญ่ที่สุดคือพิมพ์ "ความถนัด" โดยไม่มีพารามิเตอร์ใด ๆ
มันช่วยให้คุณมีส่วนต่อประสานกับผู้ใช้แบบข้อความคุณสามารถใช้ keybord เพื่อค้นหา / นำทางเป็นต้นดูข้อมูลเกี่ยวกับการพึ่งพาการย้อนกลับการพึ่งพาแพคเกจเวอร์ชั่นที่มีอยู่ทั้งหมดและคุณสามารถดำเนินการจัดการแพ็คเกจบนหน้าจอนั้นได้
คุณสามารถกด "g" เพื่อตรวจทานการเปลี่ยนแปลงแก้ไขการเพิ่มเติมและการลบแพ็กเกจหากจำเป็นและใช้การดำเนินการที่ค้างอยู่ทั้งหมด
วิธีการจัดการแพ็คเกจด้วยภาพที่ยอดเยี่ยมผ่านการเชื่อมต่อ ssh หรือเทอร์มินัลเก่าธรรมดา