it-swarm-vi.com

Sự khác biệt thực sự giữa "apt-get" và "aptitude" là gì? (Thế còn "wajig"?)

Tôi biết rằng cả hai apt-getaptitude là các giao diện quản lý gói dòng lệnh trên Linux có nguồn gốc từ Debian, với các tùy chọn khác nhau, nhưng tôi vẫn hơi bối rối. Dưới mui xe, không phải họ sử dụng cùng một hệ thống APT?

Tại sao Debian duy trì các công cụ song song này? (Câu hỏi thưởng: cái gì trên trái đất là wajig ?)

259
Kevin Cantu

Sự khác biệt rõ ràng nhất là aptitude cung cấp giao diện menu đầu cuối (giống như Synaptic trong thiết bị đầu cuối), trong khi apt-get không làm.

Chỉ xem xét các giao diện dòng lệnh của mỗi giao diện, chúng khá giống nhau và đối với hầu hết các phần, nó thực sự không quan trọng bạn sử dụng giao diện nào. Các phiên bản gần đây của cả hai sẽ theo dõi gói nào được cài đặt thủ công và gói nào được cài đặt dưới dạng phụ thuộc (và do đó đủ điều kiện để tự động xóa). Trên thực tế, tôi tin rằng thậm chí gần đây, hai công cụ đã được cập nhật để thực sự chia sẻ cùng một cơ sở dữ liệu của các gói được cài đặt thủ công, do đó, trường hợp bạn cài đặt một cái gì đó với apt-get và sau đó aptitude muốn gỡ cài đặt thì chủ yếu là quá khứ.

Có một vài khác biệt nhỏ:

  • aptitude sẽ tự động loại bỏ các gói đủ điều kiện, trong khi apt-get yêu cầu một lệnh riêng để làm như vậy
  • Các lệnh cho nâng cấp so với nâng cấp đã được đổi tên thành apt thành tên chính xác hơn nâng cấp an toànđầy đủ -cung cấp, tương ứng.
  • aptitude thực sự thực hiện các chức năng của không chỉ apt-get, mà cả một số công cụ đồng hành của nó, chẳng hạn như apt-cache và apt-mark.
  • aptitude có một cú pháp truy vấn hơi khác nhau để tìm kiếm (so với apt-cache)
  • aptitude có các lệnh whywhy-not để cho bạn biết cài đặt thủ công các gói đang ngăn hành động mà bạn có thể muốn thực hiện.
  • Nếu các hành động (cài đặt, gỡ bỏ, cập nhật các gói) mà bạn muốn gây ra xung đột, thì năng khiếu có thể đề xuất một số giải pháp tiềm năng. apt-get sẽ chỉ nói "Tôi xin lỗi Dave, tôi không thể cho phép bạn làm điều đó."

Có những khác biệt nhỏ khác, nhưng đó là những khác biệt quan trọng nhất mà tôi có thể nghĩ ra.

Nói tóm lại, năng khiếu đúng hơn thuộc về thể loại với Synaptic và các mặt trận quản lý gói cấp cao hơn khác. Nó cũng có giao diện dòng lệnh giống với apt-get.

Vòng thưởng: wajig là gì?

Hãy nhớ làm thế nào tôi đã đề cập đến các công cụ "đồng hành" như apt-cache và apt-mark? Chà, có một loạt chúng, và nếu bạn sử dụng chúng nhiều, bạn có thể không nhớ cái nào cung cấp lệnh nào. wajig là một giải pháp cho vấn đề đó. Nó thực chất là một bộ điều phối, một trình bao bọc xung quanh tất cả các công cụ đó. Nó cũng áp dụng Sudo khi cần thiết. Khi bạn nói wajig install foo, wajig nói "Ok, install được cung cấp bởi apt-get và yêu cầu đặc quyền của quản trị viên, "và nó chạy Sudo apt-get install foo. Khi bạn nói wajig search foo, wajig nói "Ok, search được cung cấp bởi apt-cache và không yêu cầu quyền quản trị viên "và nó chạy apt-cache search foo. Nếu bạn sử dụng wajig thay vì apt-get, apt-mark, apt-cache và những thứ khác, thì bạn sẽ không bao giờ gặp phải vấn đề này:

$ apt-get search foo
E: Invalid operation search

Nếu bạn muốn biết wajig đang làm gì đằng sau hậu trường, công cụ nào nó đang sử dụng để thực hiện một lệnh cụ thể, thì nó có --simulate--teaching chế độ.

Hai lệnh wajig mà tôi thường sử dụng là wajig listfiles foowajig whichpkg /usr/bin/foo.

225
Ryan C. Thompson

Tôi thường tự hỏi chính mình. Wikipedia nổi bật rằng tính năng phân biệt chính là aptitude có giao diện chế độ văn bản toàn màn hình (lời nguyền). Thực tế là bạn có thể sử dụng hầu hết các đối số lệnh apt-get Với aptitude chỉ là một quyết định thiết kế để giúp người dùng apt-get Dễ dàng di chuyển đến aptitude và ngược lại.

Tôi chưa bao giờ sử dụng wajig, nhưng tài liệu cho thấy rằng đó chỉ là một tập lệnh biết liệu bạn có truyền nó một tệp deb (khi nó chạy dpkg) hay một apt tên gói (khi nó chạy apt-get thay vào đó). Bạn có thể thử nó và xem nếu đó là những gì nó làm?

Tất nhiên, sự khác biệt thực là:

[email protected]:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
[email protected]:~$ aptitude moo
There are no Easter Eggs in this program.
71
Gaurav

aptitude là chương trình ưa thích để quản lý gói từ bảng điều khiển cả cho cài đặt gói và nâng cấp gói hoặc hệ thống trong Debian.

Dưới đây là tổng quan về công cụ và các tính năng mà nó có trên apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

Vì vậy, lời khuyên của tôi là chỉ cần apt-get install aptitude :)

26
dsp

aptitude nhớ các gói nào được yêu cầu rõ ràng và gói nào chỉ được cài đặt do phụ thuộc. Nó sẽ tự động gỡ cài đặt các gói không được yêu cầu rõ ràng khi không còn cần thiết.

apt-get xử lý các gói được yêu cầu rõ ràng và các phụ thuộc của chúng giống nhau.

Vì vậy, sử dụng tốt hơn aptitude, điều này giúp giữ cho hệ thống của bạn sạch sẽ.

20
starblue

apt-get, cũng như các công cụ đồng hành khác nhau, sử dụng bộ nhớ ít hơn đáng kể so với các yêu cầu dòng lệnh tương ứng của aptitude, và nhanh hơn một chút. Tôi đã không biết gì về điều này cho đến khi tôi thử nâng cấp cài đặt debian trên một bảng suy nghĩ pentium cũ kỹ với 32 MB ram. Sẽ mất một hoặc hai giờ trao đổi để chạy apt-get, đã hoàn thành thành công; aptitude sẽ thất bại sau khi tôi nghĩ một khoảng thời gian dài hơn.

Sự khác biệt này ít nhiều không liên quan đến bất cứ thứ gì giống với hệ thống máy tính để bàn hiện đại.

12
intuited

Dựa trên câu trả lời của @ Gaurav, những quả trứng Phục sinh trong hai người quản lý gói khá hài hước!:

[email protected]:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

[email protected]:~$ aptitude  moo
There are no Easter Eggs in this program.
[email protected]:~$ aptitude -v moo
There really are no Easter Eggs in this program.
[email protected]:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
[email protected]:~$ aptitude -vvv moo
Stop it!
[email protected]:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
[email protected]:~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
[email protected]:~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
[email protected]:~$ aptitude -vvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
[email protected]:~$ aptitude -vvvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.

và như thế.

9
Siddhartha

Chúng cung cấp cùng chức năng cơ bản: cài đặt và gỡ bỏ các gói khỏi dòng lệnh.

Đây so sánh chi tiết hơn, được đăng trên trang web Ubuntu Stack Exchange : https://askubfox.com/questions/1743/is-aptitude-really- tốt hơn so với apt-get/1749 # 1749

8
Riccardo Murri

Như đã đề cập http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude có giao diện dòng lệnh dễ sử dụng hơn nhiều.

Dưới mui xe, không phải họ sử dụng cùng một hệ thống APT? Có.

Hệ thống cơ bản không chỉ là apt, mà là dpkg. Hệ thống này chỉ câm như RPM, nó chỉ có thể xử lý việc cài đặt và quản trị các gói duy nhất. Nó theo dõi các tập tin cài đặt thuộc về gói nào.

apt xử lý việc tải xuống các kho lưu trữ, theo dõi các phụ thuộc, v.v. cho tất cả các gói riêng lẻ - sau đó nó sẽ cài đặt bằng cách sử dụng dpkg. aptitude cũng làm như vậy, với giao diện khác.

7
vdboor

Tôi không chắc liệu điều này có còn hay không nhưng nhà phát triển Edge Edge đang chảy máu Joey Hess luôn sử dụng để ủng hộ năng khiếu hơn apt-get. Tất nhiên mọi thứ phải thay đổi khi phần mềm phát triển. Apt-get bây giờ xử lý các phụ thuộc tốt hơn trước đây. Từ http://lists.debian.org/debian-user/2004/04/msg03138.html

Ngày: Thứ ba, ngày 20 tháng 4 năm 2004 22:27:12 -0400 Từ: Joey Hess

Chín lý do tại sao bạn nên sử dụng aptitude thay vì apt-get hoặc dselect.

  1. năng khiếu có thể trông giống như apt-get

    Nếu bạn chạy update cập nhật năng khiếu 'hoặc' nâng cấp năng khiếu 'hoặc' cài đặt năng khiếu ', nó sẽ hoạt động và hoạt động giống như apt-get, với một vài cải tiến. Vì vậy, không có đường cong học tập.

    (Nếu bạn là người dùng DSelect, đường cong học tập rõ ràng không phải là một trong những vấn đề của bạn.)

  2. theo dõi các gói cài đặt tự động

    Ngừng lo lắng về việc cắt tỉa các thư viện không sử dụng và các gói hỗ trợ từ hệ thống của bạn. Nếu bạn sử dụng năng khiếu để cài đặt mọi thứ, nó sẽ theo dõi những gói nào được kéo vào bởi các phụ thuộc một mình và loại bỏ các gói đó khi không còn cần thiết.

  3. aptitude sanely xử lý đề nghị

    Một thất bại lâu dài của apt-get là sự thiếu hỗ trợ cho mối quan hệ Khuyến nghị. Đó là một vấn đề vì nhiều gói trong Debian dựa vào Khuyến nghị để sử dụng phần mềm mà người dùng trung bình thường sử dụng với gói. Đây không phải là nguyên nhân hiếm gặp của sự cố, mặc dù gần đây apt-get có thể ít nhất đề cập đến các gói được đề xuất, thật dễ dàng để bỏ lỡ các cảnh báo của nó.

    Aptitude hỗ trợ Đề xuất theo mặc định và cũng có thể được xác nhận để hỗ trợ Đề xuất. Nó thậm chí còn hỗ trợ cài đặt các gói được đề xuất khi được sử dụng trong chế độ dòng lệnh.

  4. sử dụng năng khiếu như một người dùng bình thường và tránh hos hệ thống của bạn

    Có lẽ bạn không biết rằng bạn có thể chạy aptitude trong chế độ gui như một người dùng thông thường. Thực hiện bất kỳ thay đổi nào bạn muốn thử. Nếu bạn gặp rắc rối thực sự, bạn có thể nhấn 'q' và thoát, những thay đổi của bạn sẽ không được lưu. (Aptitude cũng cho phép bạn sử dụng ctrl-u để hoàn tác các thay đổi.) Vì nó đang chạy như một người dùng bình thường, bạn không thể sử dụng hệ thống của mình cho đến khi bạn nói với apt apt để làm gì đó, tại thời điểm đó, nó sẽ nhắc bạn nhập mật khẩu gốc.

  5. aptitude có giao diện người dùng và khả năng tìm kiếm mạnh mẽ

    Giữa trình duyệt phân loại của aptitude và hỗ trợ tuyệt vời của nó để lọc và tìm kiếm các gói theo tên, mô tả, bảo trì, phụ thuộc, v.v., bạn sẽ có thể tìm thấy các gói nhanh hơn bao giờ hết trước khi sử dụng aptitude.

  6. aptitude giúp dễ dàng theo dõi phần mềm lỗi thời

    Nếu Debian ngừng phân phối một gói, apt sẽ để lại nó trên hệ thống của bạn một cách dứt khoát, không có cảnh báo và không nâng cấp. Aptitude liệt kê các gói như vậy trong phần "Gói đã lỗi thời và được tạo cục bộ", do đó bạn có thể được thông báo về vấn đề và làm gì đó với nó.

  7. aptitude có giao diện với hệ thống tác vụ Debian

    Aptitude cho phép bạn sử dụng hệ thống tác vụ của Debian vì nó được thiết kế để sử dụng. Bạn có thể duyệt các tác vụ có sẵn, chọn một tác vụ để cài đặt, sau đó đào sâu vào nó và bỏ chọn các phần của tác vụ mà bạn không muốn. apt-get không hỗ trợ cho các tác vụ và apt apt thậm chí còn tốt hơn các công cụ mục đích đặc biệt như taskel.

  8. năng khiếu hỗ trợ nhiều nguồn

    Nếu nguồn.list của bạn được định cấu hình để cung cấp nhiều phiên bản của gói, aptitude cho phép bạn đi sâu vào để xem các phiên bản có sẵn và chọn phiên bản không mặc định để cài đặt. Nếu một gói bị hỏng không ổn định, chỉ cần cuộn nó trở lại phiên bản trong thử nghiệm.

  9. năng khiếu ghi lại hành động của nó

    Nhật ký Aptitude gói nó cài đặt, nâng cấp và xóa thành/varlog/aptitude, có thể hữu ích để tìm ra lý do tại sao mọi thứ bắt đầu bị hỏng sau khi nâng cấp ngày hôm qua hoặc khi bạn xóa gói partiticlar.

- thấy mắc cỡ

=================== cũng có một cuộc thảo luận mới hơn từ năm 2010 tại đây https://superuser.com/questions/93437/aptitude-vs-apt- get-which-is-the-recommend-aka-the-right-tool-to-use trên StackExchange.

6
manselton

Cả apt-get và aptitude đều dựa vào thư viện APT, vâng.

Xem câu trả lời của tôi trên serverfault.com .

Debian không phải là một thực thể nguyên khối, có những người có ý kiến ​​khác nhau và người duy trì năng khiếu đã quyết định rằng apt-get có một số thiếu sót và muốn xây dựng một cái gì đó tốt hơn bằng năng khiếu. Anh ấy đã cải thiện logic để tìm giải pháp cho các kịch bản nâng cấp phức tạp, thêm GUI cho giao diện điều khiển, v.v. Và không chỉ có apt-get và aptitude, hãy xem bài viết của tôi apt-get, aptitude, cách chọn quản lý gói bên phải cho bạn .

6
Raphaël Hertzog