Tasksel atau Apt biasa?
Di masa lalu saya selalu terbiasa tasksel
menginstal yang disebut "tugas". Namun, tampaknya ini telah terintegrasi dalam APT:
apt-cache dumpavail | grep ^Task
[...] snip
Task: lamp-server
[...]
dan bahwa saya dapat menginstal "tugas" tersebut dengan menambahkan tanda sisipan ( ^
) untuknya, seperti ini:
sudo apt-get install lamp-server^
Apakah ini setara dengan yang berikut ini?
sudo tasksel install lamp-server
Dan mana yang lebih disukai?
Metapackages
Selain itu, bagaimana metapackage berperan di sini? Beberapa tugas tampaknya bukan metapackage sementara yang lain adalah:
apt-cache show lamp-server
N: Unable to locate package lamp-server
apt-cache show kubuntu-desktop
Package: kubuntu-desktop
[...]
Task: kubuntu-desktop
Jadi, dengan menggunakan contoh terakhir, apa perbedaan antara tiga cara berikut yang mungkin untuk menginstal?
sudo apt-get install kubuntu-desktop
sudo apt-get install kubuntu-desktop^
sudo tasksel install kubuntu-desktop
apt
package-management
tasksel
metapackages
gertvdijk
sumber
sumber
apt-get install -s lubuntu-desktop
versusapt-get install -s lubuntu-desktop^
. Dalam yang terakhir, Anda akan melihat sesuatu tambahan seperti ini: Catatan, memilih 'policykit-1-gnome' untuk tugas 'lubuntu-desktop' / Note, memilih 'gnome-keyring' untuk tugas 'lubuntu-desktop' / Note, memilih 'libplist1' untuk tugas 'lubuntu-desktop' / Note, memilih 'aspell-en' untuk tugas 'lubuntu-desktop' / Note, memilih 'libsdl1.2debian' untuk tugas 'lubuntu-desktop' / Jadi, dalam kasus khusus ini , Saya tidak yakin yang "wortel" lebih baik.Jawaban:
Singkatnya: Ada adalah perbedaan antara tasksel dan proses instalasi apt-get tugas.
Melihat contoh Anda:
Cara tepat
sudo apt-get install 'lamp-server^'
akan mengevaluasi untuk melakukan hal berikut:Instal paket-paket itu dengan cara standar:
Cara tasksel
sudo tasksel install lamp-server
akan mencari tugas yang disebut "lamp-server" di salah satu file konfigurasinya di bawah/usr/share/tasksel/**/*.desc
:/usr/lib/tasksel/info/lamp-server.preinst
. Jika ada, jalankan skrip ini.Instal paket dengan apt-get menggunakan perintah berikut:
Carilah
/usr/lib/tasksel/info/lamp-server.postinst
. Jika ada, jalankan skrip ini.Kesimpulan
tasksel lebih kuat dalam memproses dan memilih tugas. Itu dapat menjalankan skrip tambahan sebelum / setelah instalasi / penghapusan tugas. Dan manfaat terbesar: Anda dapat memodifikasi tugas dan membuat yang baru dengan sangat mudah. Tidak mungkin mengedit file daftar paket resmi tanpa kekurangan (tanda tangan yang valid).
Kembali ke pertanyaan pertama Anda:
Dalam kasus khusus Anda, kedua perintah hampir sama (seharusnya Anda telah mengaktifkan keduanya
APT::Install-Recommends
danAPT::Get::AutomaticRemove
). Satu-satunya perbedaan adalah status paket diperluasmysql-server
danapache2
dependensi (diatur ke "diinstal secara manual" dengan apt-get polos).Dan bagaimana dengan metapackages?
Jika Anda tidak menggunakan fitur tasksel seperti memilih tugas (terutama membantu saat instalasi) dan menjalankan perintah tambahan sebelum dan setelah beberapa blok tugas, maka tugas sangat mirip dengan metapackage. Perbedaannya adalah: Tugas tidak terdaftar sebagai paket dalam cache APT.
Jadi, jika Anda menghapus satu ketergantungan-tugas, deps-tugas lainnya tidak ditandai sebagai terinstal secara otomatis karena diinstal secara eksplisit. Jika Anda menghapus metapackage, dependensi akan dihapus
autoremove
karena status paket tambahannya adalah "terinstal otomatis" (jika tidak diinstal secara manual).Catatan: Semua tugas yang didistribusikan di Debian menginstal metapackage bernama
task-TASKNAME
.Memberi contoh Anda:
sudo apt-get install kubuntu-desktop
kubuntu-desktop
. Dependensi "diinstal otomatis".sudo apt-get install kubuntu-desktop^
kubuntu-desktop
. Semuanya ditandai sebagai "terpasang secara manual".sudo tasksel install kubuntu-desktop
kubuntu-desktop
. Dependensi "diinstal otomatis".sumber