Bisakah itu menyebabkan masalah untuk beralih dari apt-get ke aptitude?

8

Saya sudah berpikir untuk beralih ke aptitude, tetapi saya pernah mendengar orang mengatakan "jika Anda sudah menggunakan apt-get, Anda harus menunggu sampai instalasi berikutnya untuk beralih." Mengapa orang mengatakan ini? Jenis masalah apa (jika ada) yang dapat menyebabkan hal ini?

Matius
sumber

Jawaban:

8

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-upgradevs. 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.

Charles Stewart
sumber
2
Jawaban yang bagus dan jelas. Satu detail tambahan adalah bagaimana / kapan mereka menghapus dependensi yang diinstal secara otomatis. aptitudeakan menghapusnya segera, tetapi apt-gethanya akan meminta Anda untuk menghapusnya dengan memasukkan perintah apt-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=0
Telemachus
5

Banyak 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:

aptitude keep-all

Perintah itu mengatur ulang aptitudepengertian paket apa yang merupakan yatim piatu dan harus dihapus.

Inilah alasan mengapa kadang-kadang berguna: untuk sementara sekarang, keduanya apt-getdan aptitudeakan melacak paket yang diinstal secara otomatis sebagai ketergantungan dari sesuatu yang lain. Jadi, misalnya, jika Anda menginstal mpd, Anda mungkin mendapatkan lib-so-and-soketergantungan. Mereka melakukan ini, sehingga jika Anda kemudian menghapus mpd, lib-so-and-soakan dihapus juga. Tapi aptitudedan apt-gettangani pembersihan ini secara berbeda. aptitudesegera mencoba untuk menghapus semua dependensi yatim; tetapi apt-gethanya menunjukkan bahwa Anda berlari apt-get autoremoveuntuk membersihkan. (Logika di balik semua ini adalah bahwa Anda hanya memiliki perpustakaan sejak mpdmembutuhkannya. Jika Anda tidak menyimpannya mpd, Anda tidak perlu membutuhkan perpustakaan itu lagi. Jika paket lain masih bergantung padanya, maka keduanya aptitudedanapt-get akan mengetahui hal ini dan tidak mencoba menghapus perpustakaan.)

Apa maksud saya? Nah, jika Anda telah melihat dorongan konstan untuk dijalankan apt-get autoremovedan Anda beralih ke aptitude, maka Anda mungkin akan kaget saat pertama kali Anda mencoba menginstal sesuatu. aptitudeakan 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 menginstal gnomepaket, maka semua program desktop normal Anda diinstal sebagai dependensi. Jika Anda telah menghapus satu program ini (misalnya, Ekiga atau Gedit), maka di mataaptitudesisa desktop Anda juga harus dihapus. Catatan yang aptitude 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:

  1. Selalu baca output aptitudeatau apt-gethati - hati, sebelum mengatakan ya untuk apa pun.
  2. Ingatlah bahwa Anda selalu dapat melakukan dry-run menggunakan aptitude -s safe-upgradeatau aptitude -s install foo. The -s|--simulatebendera adalah teman Anda.
Telemakus
sumber
4

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.

CarlF
sumber
1
Apakah Anda memiliki tautan ke pos milis?
Matius
Matthew, apakah Anda membayangkan bahwa saya menyimpan arsip yang diindeks dengan sempurna dari seluruh milis pengguna debian di sini? Ketika jelas dari atas bahwa saya bahkan tidak ingat tahun?
CarlF
@ Matthew: beberapa waktu lalu (Sarge atau Etch awal), ada banyak orang khawatir beralih dari apt-getke aptitude. Saat itu, mereka menangani banyak fungsi penting dengan sangat berbeda. Seiring waktu, mereka menjadi jauh lebih mirip, dan aptitudetelah matang satu ton. Untuk 90% kasus sekarang, seharusnya tidak ada masalah jika Anda beralih. Lihat posting saya untuk kasing satu sisi.
Telemachus
2

Saya juga mengatakan maju dan gunakan aptitude.
Aptitudememiliki manajemen ketergantungan yang lebih baik daripada apt-get. Ini akan membantu menjaga jumlah paket yatim rendah.
Saya telah membaca beberapa waktu lalu yang aptitudememiliki algoritma upgrade dist yang lebih baik dibandingkan dengan apt-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-cacheatau dpkgdengan 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.

foraidt
sumber
1

Apakah mereka bukan hanya antarmuka yang berbeda dengan backend yang sama?

Svish
sumber
2
aptitudeadalah antarmuka yang lebih fitur ...
quack quixote
Itu mungkin. Tetapi antarmuka dengan lebih banyak fitur tidak selalu berarti backend yang berbeda.
Svish
2
tidak, Anda benar, keduanya ujung-ujungnya dpkg. tetapi dpkghanya menginstal paket; itu adalah ujung depan yang bertanggung jawab untuk pencarian, resolusi ketergantungan, dan pengunduhan.
quack quixote
tetapi mencari, mengunduh, dan resolusi ketergantungan tidak akan merusak apa pun. atau jika itu terjadi itu akan sangat aneh menurut saya ...
Svish
2
perhatikan komentar terakhir Anda. perlu diingat bahwa frontend-lah yang memutuskan apa yang akan dipasang; dpkg hanya melakukan instalasi. jika ada yang rusak, biasanya karena resolusi dependensi gagal, atau karena pengguna mematikan resolusi dependensi (misalnya dengan opsi --force ).
quack quixote
1

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!

Syockit
sumber
-1

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 foosama dengan aptitude install foo.

Salam

dag729
sumber
Saya tidak percaya mereka sama. Kecuali hal-hal telah berubah, aptitude akan melakukan lebih banyak pelacakan ketergantungan dan menghapus paket apa pun yang telah diinstal secara otomatis, sedangkan apt-get tidak. Artinya, jika foo bergantung pada bar dan Anda menginstal dan menghapus foo dengan apt-get, bar akan tetap berada di sistem Anda. Jika Anda melakukan hal yang sama dengan bakat, itu tidak akan terjadi.
William Pursell
Anda benar: lihat komentar ~ dukun di bawah ini.
dag729
@ William, @ dag729: Versi saat ini apt-getjuga menawarkan penghapusan otomatis paket yang diinstal hanya sebagai dependensi. Perbedaan yang tersisa dalam hal itu adalah bahwa secara aptitudeinstan menghapus dependensi (yang sesuai), tetapi apt-gethanya mendorong Anda untuk menjalankan perintah apt-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.
Telemachus