Apa itu Apt?
Apt digunakan dengan command line tanpa GUI. Dengan mengeksekusi command line dengan nama paket spesifik untuk diinstall, dan menemukan paket tersebut dari source list di /etc/apt/source.list serta dengan dependensi untuk paket dan menyorting lalu secara otomatis menginstall paket yang tersedia jika tidak bermasalah dengan dependensi.
Tools ini memiliki fleksibilitas yang sangat tinggi dan memungkinkan user mengontrol konfigurasi yang bervariasi dan mudah, seperti: menambah source baru untuk mencari paket, apt-pinning, contohnya menilai paket apapun yang tersedia/tidak tersedia ketika ingin melakukan upgrade dengan menjadikan versi yang ada terinstall, “smart” upgrade misal, mengupgrade paket yang paling penting dan mengabaikan salah satu paket penting lainnya. (Pusing ya? :D)
Apa itu Aptitude?
UI tersebut berbasis library ncurses yang menambahkan beberapa element dan dapat dilihat pada GUI. Salah satu kelebihannya adalah bisa mengemulasikan banyak command argument apt-get.
Aptitude adalah pakcage manager dengan level tinggi yang secara abstrack pada detail di level rendah, dan bisa mengoperasikan keduanya pada interaktif UI mode berbasis text dan juga pada command line non-interactive mode.
Baca juga: 25 Command dasar APT-GET dan APT-CACHE.
Perbedaan Antara APT dan Aptitude
Terlepas dari perbedaan bahwa Aptitude adalah high-level package manager dan APT adalah low-level package manager.
- > Aptitude dengan fungsinya yang sangat cepat dibandingkan apt-get dan fungsi yang terintegrasi dari apt-get dan varian lainnya termasuk apt-mark dan apt-cache.
Ketika apt-get menghandel installasi paket, upgrade, purge package, resolving dependensi dan lainnya., Aptitude menghandle lebih banyak dari pada apt, termasuk fungsi dari apt-mark dan apt-cache contohnya mencari paket pada list yang sudah terinstall, menilai paket secara otomatis maupun install manual, 'holding' paket dan membuat paket yang tidak tersedia untuk di upgrade.
- > Jika apt-get tidak memiliki UI, Aptitude memiliki keduanya, text dan UI yang interaktif.
Apt-get menjadi low level package manager karena hanya bisa digunakan pada command line, berbeda dengan Aptitude yang tingkatannya high level mempunyai text yang interaktif dan opsi command line dioperasikan dengan memasukan command yang diperlukan.
- > aptitude manajement paket yang lebih baik dibandingkan apt-get
Pada beberapa situasi yang berbeda saat penginstallan, remove dan resolusi untuk paket yang konflik, Aptitude sangat disarankan dibandingkan apt-get. Salah satu situasi tersebut termasuk:
- 1. Ketika menghapus/remove paket yang terinstall, Aptitude juga secara otomatis menghapus paket yang tidak digunakan, dibandingkan apt-get yang mengharuskan user untuk melakukan ini dengan menambahkan command '--auto-remove' atau yang lebih spesifikasi 'apt-get autoremove'.
- 2. Untuk mengetahui kenapa akses untuk mengeksekusi tools tersebut di block atau kenapa tidak dilakukan segera, aptitude mempunyai command 'why' dan 'why-not'.
Seperti: Aptitude dapat menemukan alasan untuk menginstall paket dengan menampilkan list paket yang terinstall dan mengecek adakah hal lain paket yang disarankan dari dependensi untuk paket tersebut.
$ 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
Contoh di atas kita telah mencari alasan untuk menginstall paket dengan nama 'yaws-wiki' untuk melakukannya disarankan oleh dependensi '(yaws)' yang melayani paket virtual (httpd-cgi) pada paket (dwww) memiliki dependensi hal itu disarankan oleh salah satu paket yang terinstall dengan nama 'doc-base'
Fitur ini tidak ada pada apt-get
- 3. Ketika apt-get tidak berfungsi dengan baik pada kasus konflik untuk melakukan installasi atau remove paket dengan memberikan pesan, Aptitude dan menyarankannya dengan baik untuk menghapus konflik tersebut.
Dengan apt-get membutuhkan beberapa varian apt, contohnya apt-cache untuk mencari paket, aptitude melayani banyak kemudahan dan efisient untuk mencari paket yang terinstall atau menampilkan dari repository tapi belum terinstall.
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
Disini tampilan default fitur search antara keduanya, baik apt-cache dan aptitude untuk menampilkan list paket pada repository, tapi output aptitude menampilkan paket yang terinstall pada system atau tidak dengan memberikan tanda pada setiap paket dengan tanda 'p' mengindikasikan bahwa paket tersebut ada tapi belum terinstall, dan untuk tanda 'i' mengindikasikan bahwa paket tersebut telah terinstall, yang mana apt-cache hanya membuat list paket dan satu baris detail tanpa menyampaikan apakah paket tersebut terinstall atau tidak.
Beberapa Contoh lebih lanjut untuk fitur search
1. Mencari paket di Repository dengan nama 'python2.7' dan '2.7' lengkap dengan 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
Ada tanda '--n' (Name) dan '--d' (Description) yang mengindikasikan pada deskripsi. Command lainnya yang sama adalah:
[$ aptitude search '?name(python2.7) ?description(2.7)']
Beberapa info untuk opsi lainnya
> --i atau ?installed(): mencari paket pada list yang terinstall saja.
> --u atau -upgradable: membuat list semua paket yang telah diupgrade pada versi yang tersedia.
> --E atau ?Essential(): memilih paket yang terinstall atau tersedia, yang masuk kategori essential.
$ 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
Seperti contoh pendek pada list di bawah ini terdapat 3 paket yang terinstall (indikasi dengan 'i') dan versi upgrade yang tersedia (indikasi dengan 'p').
2. Menemukan semua paket yang melayani service (partikular).
Untuk menemukan semua paket yang melayani service smtp sebagai contoh:
$ 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 disarankan oleh paket yang ada.
Seperti contoh di bawah ini, kita akan membuat list semua paket yang disarankan oleh 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
Untuk banyak kasus, syntax dari Aptitude adalah sama halnya dengan apa yang ada pada apt-get, untuk membuat pengguna yang sering menggunakan apt-get bisa sedikit membiasakan menggunakan Aptitude, tapi dengan tambahan disini, beberapa fitur yang powerful dan menarik yang terintegrasi pada aptitude bisa menjadi salah satu piliha. Terlepas dari perbedaan keduanya yang telah sedikit kita bahas, jika Anda menemukan hal menarik lainnya antara perbedaan kedua manajement paket ini, Komentar lah di bawah ini untuk menyebarkan pengetahuan.
Sharing ke kawan kerabat serta sahabat Anda dan jangan lupa ke publik lainnya tentang perbedaan antara APT dan APTITUDE, serta sedikit penggunaanya. Sharing is caring.
Sumber: Tecmint.
Gambar: LinuxSoid.
COMMENTS