過去には、tasksel
を使用して、いわゆる「タスク」をインストールしてきました。ただし、これはAPTに統合されているようです。
apt-cache dumpavail | grep ^Task
[...] snip
Task: lamp-server
[...]
そして、次のようにキャレット(^
)を追加することで、そのような「タスク」をインストールできます。
Sudo apt-get install lamp-server^
これは次と同等ですか?
Sudo tasksel install lamp-server
そして、どちらが好ましいですか?
さらに、ここでメタパッケージはどのように機能しますか?一部のタスクはメタパッケージではないようですが、他のタスクは次のとおりです。
apt-cache show lamp-server
N: Unable to locate package lamp-server
apt-cache show kubuntu-desktop
Package: kubuntu-desktop
[...]
Task: kubuntu-desktop
では、最後の例を使用すると、次の3つのインストール方法の違いは何ですか?
Sudo apt-get install kubuntu-desktop
Sudo apt-get install kubuntu-desktop^
Sudo tasksel install kubuntu-desktop
要するに:is taskselとapt-getのインストールプロセスの違いです。
あなたの例を見てください:
Sudo apt-get install 'lamp-server^'
は、以下を実行するために評価します。
これらのパッケージを標準的な方法でインストールします。
Sudo apt-get install package1 package2...
Sudo tasksel install lamp-server
は、/usr/share/tasksel/**/*.desc
の下にある構成ファイルの1つで「lamp-server」というタスクを探します。
/usr/lib/tasksel/info/lamp-server.preinst
を探します。存在する場合は、このスクリプトを実行します。次のコマンドを使用して、apt-getでパッケージをインストールします。
debconf-apt-progress -- apt-get -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true install package1 package2 ...
/usr/lib/tasksel/info/lamp-server.postinst
を探します。存在する場合は、このスクリプトを実行します。
taskselは、タスクの処理と選択においてより強力です。タスクのインストール/削除の前後に追加のスクリプトを実行できます。そして最大の利点は、タスクを簡単に変更して新しいタスクを作成できることです。欠点(有効な署名)なしに公式のパッケージリストファイルを編集することはできません。
最初の質問に戻ります:
特別な場合、両方のコマンドはほぼ同等です(APT::Install-Recommends
とAPT::Get::AutomaticRemove
の両方を有効にした場合)。唯一の違いは、mysql-server
およびApache2
依存関係の拡張パッケージ状態(プレーンなapt-getで「手動インストール」に設定)です。
タスクの選択(特にインストール時に役立つ)や、タスクブロックの前後に追加のコマンドを実行するなど、taskselの機能を使用しない場合、タスクはメタパッケージに非常に似ています。違いは次のとおりです。タスクはAPTキャッシュにパッケージとして登録されていません。
したがって、1つのタスク依存関係をアンインストールした場合、他のタスクdepsは明示的にインストールされたため、自動インストールとしてマークされません。メタパッケージをアンインストールすると、拡張パッケージの状態が「自動インストール」(手動でインストールされていない場合)であるため、依存関係はautoremove
で削除されます。
注: Debianのすべての分散タスクは、task-TASKNAME
という名前のメタパッケージをインストールします。
あなたの例を与える:
Sudo apt-get install kubuntu-desktop
kubuntu-desktop
をインストールします。依存関係は「自動インストール」です。Sudo apt-get install kubuntu-desktop^
kubuntu-desktop
の依存関係です。これらはすべて「手動でインストール」としてマークされています。Sudo tasksel install kubuntu-desktop
kubuntu-desktop
をインストールします。依存関係は「自動インストール」です。