Apa itu APT dan Aptitude? dan Apa Perbedaan Sebenarnya di Antara Mereka?


Aptitude dan apt-get adalah dua alat populer yang menangani manajemen paket. Keduanya mampu menangani semua jenis aktivitas pada paket termasuk instalasi, penghapusan, pencarian, dll. Namun masih ada perbedaan antara kedua alat tersebut yang membuat pengguna lebih memilih salah satu dari yang lain. Perbedaan apa yang membuat kedua alat ini dipertimbangkan secara terpisah adalah cakupan artikel ini.

Apa itu Apt

Apt atau Alat Pengemasan Tingkat Lanjut adalah perangkat lunak sumber terbuka dan gratis yang dengan baik menangani instalasi dan penghapusan perangkat lunak. Awalnya dirancang untuk paket .deb Debian tetapi telah dibuat kompatibel dengan RPM Package Manager.

Apt adalah seluruh baris perintah tanpa GUI. Setiap kali dipanggil dari baris perintah bersama dengan menentukan nama paket yang akan diinstal, ia menemukan paket tersebut dalam daftar sumber terkonfigurasi yang ditentukan dalam '/etc/apt/sources.list' bersama dengan daftar dependensi untuk paket itu dan mengurutkannya dan secara otomatis menginstalnya bersama dengan paket saat ini sehingga pengguna tidak perlu khawatir menginstal dependensi.

Ini sangat fleksibel sehingga memungkinkan Pengguna untuk mengontrol berbagai konfigurasi dengan mudah, seperti: menambahkan sumber baru untuk mencari paket, apt-pinning yaitu menandai paket apa pun yang tidak tersedia selama peningkatan sistem sehingga menjadikan versi saat ini menjadi versi final yang diinstal, Peningkatan “pintar” yaitu meningkatkan paket yang paling penting dan meninggalkan paket yang paling tidak penting.

Apa itu Bakat?

Aptitude adalah alat pengemasan terdepan dan canggih yang menambahkan antarmuka pengguna ke fungsinya, sehingga memungkinkan pengguna mencari paket secara interaktif dan menginstal atau menghapusnya. Awalnya dibuat untuk Debain, Aptitude juga memperluas fungsinya ke distribusi berbasis RPM.

Antarmuka penggunanya didasarkan pada pustaka ncurses yang menambahkan berbagai elemen ke dalamnya yang biasa terlihat di GUI. Salah satu keunggulannya adalah ia dapat meniru sebagian besar argumen baris perintah apt-get.

Secara keseluruhan, Aptitude adalah pengelola paket tingkat tinggi yang mengabstraksi detail tingkat rendah, dan dapat beroperasi dalam mode UI interaktif berbasis teks dan bahkan dalam mode non-interaktif baris perintah.

Jika Anda ingin mengetahui penggunaan APT dan Aptitude dengan contoh dunia nyata, Anda harus membaca artikel berikut.

  1. Pelajari 25 Contoh Berguna tentang APT-GET dan APT-CACHE
  2. Pelajari Manajemen Paket Linux dengan Aptitude dan Dpkg

Apa Perbedaan Antara APT dan Aptitude?

Terlepas dari perbedaan utamanya adalah Aptitude adalah pengelola paket tingkat tinggi sedangkan APT adalah pengelola paket tingkat rendah yang dapat digunakan oleh pengelola paket tingkat tinggi lainnya, utama lainnya sorotan yang memisahkan kedua pengelola paket ini adalah:

  1. Aptitude memiliki fungsionalitas yang lebih luas dibandingkan apt-get dan mengintegrasikan fungsi apt-get dan varian lainnya termasuk apt-mark dan apt -cache.

Meskipun apt-get menangani semua instalasi paket, peningkatan, peningkatan sistem, pembersihan paket, penyelesaian dependensi, dll., Aptitude menangani lebih banyak hal daripada apt, termasuk fungsionalitas apt-mark dan apt-cache yaitu mencari paket dalam daftar paket yang terinstal, menandai paket untuk diinstal secara otomatis atau manual, menahan paket sehingga tidak tersedia untuk up-gradasi dan sebagainya.

  1. Meskipun apt-get tidak memiliki UI, Aptitude memiliki UI yang hanya berupa teks dan interaktif

Apt-get sebagai manajer paket tingkat rendah dibatasi hanya pada baris perintah, sedangkan Aptitude sebagai alat tingkat tinggi memiliki antarmuka interaktif default hanya teks beserta opsi operasi baris perintah dengan memasukkan yang diperlukan perintah.

  1. Aptitude memiliki manajemen paket yang lebih baik daripada apt-get

Dalam banyak situasi yang melibatkan instalasi, penghapusan dan resolusi konflik untuk paket, Aptitude membuktikan nilainya dibandingkan apt-get. Beberapa situasi tersebut antara lain:

1. Saat menghapus paket apa pun yang diinstal, Aptitude akan secara otomatis menghapus paket yang tidak digunakan, sedangkan apt-get mengharuskan pengguna untuk menentukannya secara eksplisit dengan menambahkan opsi tambahan '—auto-remove' atau menentukan 'apt-get autoremove'.4

2. Untuk menyelidiki lebih lanjut mengapa tindakan tertentu diblokir atau mengapa atau mengapa tindakan tertentu tidak harus diambil, Aptitude menawarkan 'mengapa' dan ' perintah kenapa-tidak'.

Suka: Aptitude dapat menemukan alasan Anda menginstal paket tertentu dengan melihat daftar paket yang diinstal dan memeriksa apakah ada paket yang disarankan yang memiliki dependensi atau dependensinya menyarankan paket itu atau sebagainya .

$ aptitude why yaws-wiki
i   doc-base  Suggests   dhelp | dwww | doc-central | yelp | khelpcenter4
p   dwww      Depends    apache2 | httpd-cgi
p   yaws      Provides   httpd-cgi
p   yaws      Suggests   yaws-wiki

Seperti di sini ia mencari alasan untuk menginstal paket bernama 'yaws-wiki' karena disarankan oleh ketergantungan (yaws) yang menyediakan paket virtual (httpd-cgi) di mana paket (dwww) memiliki ketergantungan dan paket (dwww) disarankan oleh salah satu paket terinstal bernama ' basis dokumen'.

Fitur ini tidak ada di apt-get.

3. Meskipun apt-get mungkin akan mati jika terjadi konflik tindakan terkait pemasangan atau penghapusan paket dengan pesan, Aptitude dapat menyarankan tindakan yang mungkin dilakukan untuk menghilangkan konflik tersebut.

Aptitude menyediakan pencarian canggih yang dapat digunakan untuk mencari hampir semua paket tidak hanya di sistem tetapi juga di seluruh repositori.

Sedangkan apt-get memerlukan varian apt lain yaitu apt-cache untuk mencari sebuah paket, Aptitude menyediakan cara yang jauh lebih mudah dan efisien untuk mencari paket yang terinstal atau ada dalam repositori tetapi belum diinstal.

Mencari paket menggunakan apt-cache vs Aptitude

$ apt-cache search 'python' | head -n4
kate - powerful text editor
kcachegrind-converters - format converters for KCachegrind profiler visualisation tool
kig - interactive geometry tool for KDE
python-kde4 - Python bindings for the KDE Development Platform

$ aptitude search 'python' | head -n4
i   bpython                         - fancy interface to the Python interpreter 
p   bpython-gtk                     - fancy interface to the Python interpreter 
p   bpython-urwid                   - fancy interface to the Python interpreter 
p   bpython3                        - fancy interface to the Python3 interpreter

Di sini, secara default, apt-cache dan aptitude mencari paket di seluruh daftar paket di repositori, namun output dari aptitude menunjukkan apakah paket tersebut terinstal di sistem atau bukan dengan memberikan flag per paket yaitu 'p' yang menunjukkan bahwa paket ada tetapi belum diinstal dan 'i' yang menunjukkan bahwa paket telah diinstal, sedangkan apt -cache hanya mencantumkan paket dan detail satu barisnya tanpa memberi tahu apakah paket sudah diinstal atau tidak.

Beberapa contoh lain pencarian paket lanjutan dengan Aptitude

1. Mencari paket di repositori dengan 'python2.7' di nama paket dan '2.7' di deskripsinya.

$ aptitude search '~npython2.7 ~d2.7'
p   idle-python2.7                   - IDE for Python (v2.7) using Tkinter       
i   libpython2.7                     - Shared Python runtime library (version 2.7
p   libpython2.7:i386                - Shared Python runtime library (version 2.7
p   libpython2.7-dbg                 - Debug Build of the Python Interpreter (ver
p   libpython2.7-dbg:i386            - Debug Build of the Python Interpreter (ver
i A libpython2.7-dev                 - Header files and a static library for Pyth
p   libpython2.7-dev:i386            - Header files and a static library for Pyth
i   libpython2.7-minimal             - Minimal subset of the Python language (ver
p   libpython2.7-minimal:i386        - Minimal subset of the Python language (ver
i   libpython2.7-stdlib              - Interactive high-level object-oriented lan
p   libpython2.7-stdlib:i386         - Interactive high-level object-oriented lan
p   libpython2.7-testsuite           - Testsuite for the Python standard library 
i   python2.7                        - Interactive high-level object-oriented lan
p   python2.7:i386                   - Interactive high-level object-oriented lan
p   python2.7-dbg                    - Debug Build of the Python Interpreter (ver
p   python2.7-dbg:i386               - Debug Build of the Python Interpreter (ver
i A python2.7-dev                    - Header files and a static library for Pyth
p   python2.7-dev:i386               - Header files and a static library for Pyth
p   python2.7-doc                    - Documentation for the high-level object-or
p   python2.7-examples               - Examples for the Python language (v2.7)   
i   python2.7-minimal                - Minimal subset of the Python language (ver
p   python2.7-minimal:i386           - Minimal subset of the Python language (ver

Di sini '~n' menunjukkan nama dan '~d' menunjukkan deskripsi. Bentuk lain dari perintah yang sama adalah:

aptitude search '?name(python2.7) ?description(2.7)'
Beberapa bendera lainnya meliputi:
  1. ~i atau ?installed(): Mencari paket hanya dalam daftar paket yang diinstal.
  2. ~U atau ~Upgradable: Mencantumkan semua paket yang dapat diupgrade dengan versi terbaru yang tersedia.
  3. ~E atau ?Essential(): Paket-paket tersebut terinstal atau tersedia, yang penting.
$ aptitude versions '?Upgradable' | head -n 12
Package apache2:
ph  2.4.7-1ubuntu4                                trusty                    500 
ph  2.4.7-1ubuntu4.5                              trusty-security           500 
ih  2.4.7-1ubuntu4.8                                                        100 
ph  2.4.7-1ubuntu4.9                              trusty-updates            500 

Package apache2-bin:
p A 2.4.7-1ubuntu4                                trusty                    500 
p A 2.4.7-1ubuntu4.5                              trusty-security           500 
i A 2.4.7-1ubuntu4.8                                                        100 
p A 2.4.7-1ubuntu4.9                              trusty-updates            500 

Seperti daftar pendek yang ditampilkan di sini dari 3 paket dengan versi terinstal (ditunjukkan dengan 'i') dan ada versi yang dapat diupgrade (ditunjukkan dengan 'p').

2. Menemukan semua paket yang menyediakan layanan tertentu

Untuk menemukan semua paket yang menyediakan layanan smtp:

$ aptitude search '?provides(smtp)'
p   libghc-smtpclient-dev            - Simple Haskell SMTP client library        
p   libghc-smtpclient-dev:i386       - Simple Haskell SMTP client library        
p   libghc-smtpclient-prof           - Simple Haskell SMTP client library; profil
p   libghc-smtpclient-prof:i386      - Simple Haskell SMTP client library; profil
p   syslog-ng-mod-smtp               - Enhanced system logging daemon (SMTP plugi
p   syslog-ng-mod-smtp:i386          - Enhanced system logging daemon (SMTP plugi

3. Menemukan semua paket yang menyarankan paket tertentu

Seperti di sini, kami mencantumkan semua paket yang menyarankan paket 'gcc'.

$ aptitude search '~DSuggests:gcc' | head -n10
p   bochs                           - IA-32 PC emulator                         
p   bochs:i386                      - IA-32 PC emulator                         
p   cpp-4.4                         - GNU C preprocessor                        
p   cpp-4.4:i386                    - GNU C preprocessor                        
p   cpp-4.6                         - GNU C preprocessor                        
p   cpp-4.6:i386                    - GNU C preprocessor                        
p   cpp-4.7                         - GNU C preprocessor                        
p   cpp-4.7:i386                    - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi       - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi:i386  - GNU C preprocessor 

Kesimpulan

Jadi, pada sebagian besar kasus, sintaksis Aptitude dibuat hampir sama dengan apt-get, untuk membuat pengguna apt-get tidak terlalu kesulitan dalam bermigrasi ke Aptitude , namun selain itu, banyak fitur canggih yang terintegrasi dalam Aptitude sehingga menjadikannya pilihan yang tepat. Terlepas dari perbedaan yang kami soroti, jika Anda menemukan perbedaan menarik lainnya antara kedua pengelola paket ini, sebutkan di komentar Anda.