APL'deki görev, görevler mi kullanmalıyım yoksa düzenli meta paketler mi kurmalıyım?


37

Tasksel veya sade Apt?

Geçmişte her zaman tasksel"görevler" denilen yüklemeyi kullandım . Bununla birlikte, bunun APT'ye entegre edildiği görülüyor:

apt-cache dumpavail | grep ^Task
[...] snip
Task: lamp-server
[...]

ve böyle bir “caret” ( ^) ekleyerek şu gibi “görevleri” yükleyebilirim :

sudo apt-get install lamp-server^

Bu aşağıdakine eşdeğer mi?

sudo tasksel install lamp-server

Hangisi tercih edilir?

Metapackages

Ek olarak burada meta paketlemeler nasıl devreye giriyor? Bazı görevler başkalarına göre bir meta paket gibi görünmüyor, bazıları ise:

apt-cache show lamp-server
N: Unable to locate package lamp-server

apt-cache show kubuntu-desktop
Package: kubuntu-desktop
[...]
Task: kubuntu-desktop

Peki, son örneği kullanarak, aşağıdaki üç olası yükleme yolu arasındaki fark nedir?

  • sudo apt-get install kubuntu-desktop
  • sudo apt-get install kubuntu-desktop^
  • sudo tasksel install kubuntu-desktop

2
Çıkışında bak apt-get install -s lubuntu-desktopkarşı apt-get install -s lubuntu-desktop^. İkincisi, buna benzer bir şey göreceksiniz: Not, 'lubuntu-desktop' görevi için 'policykit-1-gnome' / Not'u seçip 'lubuntu-desktop' / notu için 'gnome-keyring'i seçerek, 'lubuntu-desktop' görevi için 'libplist1' / Not, 'lubuntu-desktop' görevi için 'aspell-en' seçimi, / not, 'lubuntu-desktop' görevi için 'libsdl1.2debian' seçimi / Bu durumda , "Havuç" un daha iyi olduğundan emin değilim.

Burada daha fazla okuma: askubuntu.com/a/249373/25656

1
tasksel hakkında #warning: görevleri kaldırmak için asla kullanmayın - launchpad'deki hata raporuna
guntbert

Yanıtlar:


36

Kısacası: Orada olan tasksel ve görevlerin apt-get yükleme işlemi arasında bir fark.

Örnekinize bakın:

Apt-get yolu

sudo apt-get install 'lamp-server^' aşağıdakileri yapmak için değerlendirecek:

  1. Tüm "Görev:" alanları için önbelleği (paket listesi dosyaları) arayın ve "lamba sunucusu" ile hepsini alın.
  2. Bu paketleri standart yoldan yükleyin:

    sudo apt-get install package1 package2...
    

Görev yolu

sudo tasksel install lamp-serveraşağıdaki yapılandırma dosyalarından birinde "lamba sunucusu" olarak adlandırılan bir görevi arayacaktır /usr/share/tasksel/**/*.desc:

  1. Yapılandırma dosyalarını "lamba sunucusu" adlı bir "Görev:" alanı için arayın.
  2. Tüm önkoşulların mevcut olup olmadığını kontrol edin ("Anahtar:" alanı) ve kurulmamışsa bunları hatırlayın.
  3. Paketleri seçme yöntemini seçin ("Paketler:" alanı). Bu ist "list" ise, sadece aşağıdaki paketleri ada göre kurun.
  4. Tüm paket isimlerini okuyun ve daha önce seçilen metoda ileterek paket isimleri oluşturun.
  5. İçin bak /usr/lib/tasksel/info/lamp-server.preinst. Varsa bu betiği yürütün.
  6. Paketleri apt-get ile aşağıdaki komutu kullanarak kurun:

    debconf-apt-progress -- apt-get -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true install package1 package2 ...
    
  7. İçin bak /usr/lib/tasksel/info/lamp-server.postinst. Varsa bu betiği yürütün.

Sonuç

taskel görevleri işleme ve seçme konusunda daha güçlü Görevlerin yüklenmesinden / kaldırılmasından önce / sonra ekstra komut dosyaları çalıştırabilir. Ve en büyük yararı: Görevleri değiştirebilir ve kolayca yenilerini oluşturabilirsiniz. Resmi bir paket listesi dosyasını dezavantaj olmadan düzenlemek mümkün değildir (geçerli imza).

Geri ilk sorunun:
özel durumda her iki komutları (sözde hem sağladı neredeyse eşdeğerdir APT::Install-Recommendsve APT::Get::AutomaticRemove). Tek fark, genişletilmiş paket durumu mysql-serverve apache2bağımlılıklarıdır (plain apt-get ile "elle kurulmuş" olarak ayarlanmıştır).

Peki ya meta paketlemeler?

Bazı görev bloklarından önce ve sonra görev seçme (özellikle kurulumda yardımcı) ve fazladan komutlar uygulamak gibi görevlerin özelliklerinden yararlanmazsanız, görev bir metapakete çok benzer. Fark şudur: Bir görev APT önbelleğinde paket olarak kaydedilmemiş.
Bu nedenle, bir görev bağımlılığını kaldırırsanız, diğer görev paketleri açıkça kurulduğundan dolayı otomatik yüklü olarak işaretlenmez. Bir meta autoremovepaketi kaldırırsanız, bağımlı paketler genişletilmiş paket durumları "otomatik olarak yüklenir" (manuel olarak kurulmazsa) olduğu için kaldırılır .
Not: Debian'daki tüm dağıtılmış görevler, adında bir meta paket yükler task-TASKNAME.

Örnek vererek:

  1. sudo apt-get install kubuntu-desktop
    • Meta paketi yükler kubuntu-desktop. Bağımlılıklar "otomatik olarak kurulur".
  2. sudo apt-get install kubuntu-desktop^
    • "Kubuntu-desktop" görevi ile etiketlenen tüm paketleri seçecektir. Hepsi metaaktif bağımlılıklar kubuntu-desktop. Hepsi "manuel olarak kurulmuş" olarak işaretlenmiştir.
  3. sudo tasksel install kubuntu-desktop
    • Görev paketlerini kurmadan önce X'in kurulu olduğundan emin olun.
    • Meta paketi yükler kubuntu-desktop. Bağımlılıklar "otomatik olarak kurulur".
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.