apt-get dan aptitude adalah UI yang berbeda yang merupakan bagian dari sistem manajemen paket yang sama, APT, Alat Pengemasan Lanjutan . Misalnya, keduanya dikonfigurasikan menggunakan /etc/apt/apt.conf
, keduanya menggunakan filespace dan format yang sama untuk merepresentasikan keadaan paket, dan filespace yang sama untuk menyimpan .deb yang diunduh.
Perbedaannya adalah sistem aturan internal mereka untuk mewakili potensi konflik di antara paket, bagaimana menyelesaikannya (katakanlah selama apt-get dist-upgrade
vs. aptitude full-upgrade
), dan bagaimana mengekspresikannya ketika berinteraksi dengan pengguna. Secara umum, keduanya mungkin melakukan hal yang salah dalam situasi sulit, tetapi apt-get jauh lebih mungkin untuk mendapatkannya salah daripada bakat.
aptitude
akan menghapusnya segera, tetapiapt-get
hanya akan meminta Anda untuk menghapusnya dengan memasukkan perintahapt-get autoremove
. Secara umum, mereka ingin menghapus item yang sama. Lihat tautan ini, bagaimanapun, untuk kasus rumit di mana mereka tidak setuju tentang itu: forums.debian.net/viewtopic.php?f=10&t=49589&start=0Banyak saran bagus sudah ada di sini, tetapi izinkan saya menambahkan satu hal yang tidak disebutkan oleh siapa pun. Jika Anda memutuskan untuk beralih, Anda mungkin ingin menjalankan perintah ini, tergantung pada apa yang Anda lakukan dengan
apt-get
:Perintah itu mengatur ulang
aptitude
pengertian paket apa yang merupakan yatim piatu dan harus dihapus.Inilah alasan mengapa kadang-kadang berguna: untuk sementara sekarang, keduanya
apt-get
danaptitude
akan melacak paket yang diinstal secara otomatis sebagai ketergantungan dari sesuatu yang lain. Jadi, misalnya, jika Anda menginstalmpd
, Anda mungkin mendapatkanlib-so-and-so
ketergantungan. Mereka melakukan ini, sehingga jika Anda kemudian menghapusmpd
,lib-so-and-so
akan dihapus juga. Tapiaptitude
danapt-get
tangani pembersihan ini secara berbeda.aptitude
segera mencoba untuk menghapus semua dependensi yatim; tetapiapt-get
hanya menunjukkan bahwa Anda berlariapt-get autoremove
untuk membersihkan. (Logika di balik semua ini adalah bahwa Anda hanya memiliki perpustakaan sejakmpd
membutuhkannya. Jika Anda tidak menyimpannyampd
, Anda tidak perlu membutuhkan perpustakaan itu lagi. Jika paket lain masih bergantung padanya, maka keduanyaaptitude
danapt-get
akan mengetahui hal ini dan tidak mencoba menghapus perpustakaan.)Apa maksud saya? Nah, jika Anda telah melihat dorongan konstan untuk dijalankan
apt-get autoremove
dan Anda beralih keaptitude
, maka Anda mungkin akan kaget saat pertama kali Anda mencoba menginstal sesuatu.aptitude
akan langsung mencoba untuk menghapus semua anak yatim itu. Secara umum, ini akan baik-baik saja (mereka yatim piatu, dan tidak perlu), tetapi ada satu kasus yang rumit. Semua paket meta desktop melibatkan rantai ketergantungan kompleks di mana setiap program ditarik sebagai ketergantungan bungkus paket virtual. Misalnya, jika Anda menginstal Gnome karena Anda menginstalgnome
paket, maka semua program desktop normal Anda diinstal sebagai dependensi. Jika Anda telah menghapus satu program ini (misalnya, Ekiga atau Gedit), maka di mataaptitude
sisa desktop Anda juga harus dihapus. Catatan yangaptitude
selalu ditanyakan sebelum menghapus sesuatu, tetapi orang sering memasukkan 'Y' tanpa membaca. Dalam pengalaman saya, ini adalah satu-satunya keluhan / kebingungan paling umum bagi orang-orang yang baru mengenal Debian.Dua saran umum:
aptitude
atauapt-get
hati - hati, sebelum mengatakan ya untuk apa pun.aptitude -s safe-upgrade
atauaptitude -s install foo
. The-s|--simulate
bendera adalah teman Anda.sumber
Dikatakan di milis Debian, tahun lalu, bahwa beralih dari apt-get ke aptitude berisiko. Ini adalah dua versi Debian (katakanlah 10 tahun yang lalu). Semua masalah itu tampaknya sudah diselesaikan sekarang, dan tentu saja saya belum melihat masalah pada Debian atau Ubuntu.
sumber
apt-get
keaptitude
. Saat itu, mereka menangani banyak fungsi penting dengan sangat berbeda. Seiring waktu, mereka menjadi jauh lebih mirip, danaptitude
telah matang satu ton. Untuk 90% kasus sekarang, seharusnya tidak ada masalah jika Anda beralih. Lihat posting saya untuk kasing satu sisi.Saya juga mengatakan maju dan gunakan
aptitude
.Aptitude
memiliki manajemen ketergantungan yang lebih baik daripadaapt-get
. Ini akan membantu menjaga jumlah paket yatim rendah.Saya telah membaca beberapa waktu lalu yang
aptitude
memiliki algoritma upgrade dist yang lebih baik dibandingkan denganapt-get
. Tapi itu bukan fitur pembunuh karena tidak sering digunakan dalam masa hidup suatu sistem.Selain itu Anda akan memiliki lebih banyak barang yang disatukan dalam satu alat. Daripada mengingat kapan harus menelepon
apt-get
,apt-cache
ataudpkg
dengan sakelar yang mana saya hanya menggunakan bakat dan menyelesaikan sebagian besar hal.Adapun komplikasi ketika beralih "di tengah": Saya tidak ingat pernah mengalami ketika saya melakukannya.
sumber
Apakah mereka bukan hanya antarmuka yang berbeda dengan backend yang sama?
sumber
aptitude
adalah antarmuka yang lebih fitur ...dpkg
. tetapidpkg
hanya menginstal paket; itu adalah ujung depan yang bertanggung jawab untuk pencarian, resolusi ketergantungan, dan pengunduhan.Dari pengalaman saya, mereka memiliki cara berbeda dalam menyematkan versi paket. Dalam kasus saya, saya memberi tahu aptitude untuk mengunci paket tertentu, dengan asumsi saya akan aman dari pembaruan di masa mendatang. Saya salah; manajer pembaruan terjadwal cron, yang menggunakan apt-get, hasil untuk memutakhirkan ke saya kecewa.
Drats, ketika saya sedang menulis ini, saya mencari di Google dan menemukan bahwa bug ( # 557580 aptitude tidak mematuhi pin dalam preferensi.d / *) sudah diperbaiki!
sumber
Saya menggunakan apt-get dan aptitude tanpa masalah: Saya memiliki pertanyaan yang sama ... Mengapa orang mengatakan ini ??? : D
Teruskan, dan jangan khawatir: aptitude hanya teks-gui untuk apt-get, yang bahkan bisa Anda gunakan sebagai aplikasi baris perintah, misalnya
apt-get install foo
sama denganaptitude install foo
.Salam
sumber
apt-get
juga menawarkan penghapusan otomatis paket yang diinstal hanya sebagai dependensi. Perbedaan yang tersisa dalam hal itu adalah bahwa secaraaptitude
instan menghapus dependensi (yang sesuai), tetapiapt-get
hanya mendorong Anda untuk menjalankan perintahapt-get autoremove
. Tapi mereka berdua melacak ketergantungan dengan cara yang sama sekarang. Namun mereka masih berbeda dalam penanganan dependensi kompleks dan kasus tepi (pemasangan atau pemindahan yang sangat rumit), tetapi untuk sebagian besar orang & sebagian besar situasi, mereka bekerja sama sekarang.