tasksel、APTのタスクを使用するか、通常のメタパッケージをインストールする必要がありますか?


37

TaskselまたはプレーンApt?

過去には、私は常に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

2
apt-get install -s lubuntu-desktopvs の出力を見てくださいapt-get install -s lubuntu-desktop^。後者では、次のような追加情報が表示されます:注、タスク「lubuntu-desktop」/「Note」で「policykit-1-gnome」を選択、タスク「lubuntu-desktop」/ Noteで「gnome-keyring」を選択「その他のaspell-en」とタスクのための「lubuntu-デスクトップ」/ノートを選択する「libplist1」タスク「lubuntu-デスクトップ」の/注意、「のlibsdl1.2debian」タスクのための「lubuntu-デスクトップ」を選択/だから、この特定のケースでは、 「にんじん」の方が良いかどうかはわかりません。

詳細はこちら:askubuntu.com/a/249373/25656

1
#taskelsについての警告:タスクを削除するために使用しないでください
-guntbert

回答:


36

要するに:そこであるのにtaskselやタスクのapt-getのインストールプロセスとの違いは。

あなたの例を見てください:

apt-getの方法

sudo apt-get install 'lamp-server^' 以下を実行するために評価されます。

  1. すべての「タスク:」フィールドのキャッシュ(パッケージリストファイル)を検索し、「lamp-server」ですべてを取得します。
  2. これらのパッケージを標準的な方法でインストールします。

    sudo apt-get install package1 package2...
    

taskselの方法

sudo tasksel install lamp-server以下の設定ファイルの1つで「lamp-server」というタスクを探します/usr/share/tasksel/**/*.desc

  1. 「lamp-server」という名前の「Task:」フィールドの構成ファイルを検索します。
  2. すべての前提条件が利用可能かどうかを確認し([キー:]フィールド)、インストールされていない場合は覚えておいてください。
  3. パッケージを選択する方法を選択します([パッケージ:]フィールド)。これが「リスト」ではない場合、次のパッケージを名前でインストールするだけです。
  4. 以下のすべてのパッケージ名を読み取り、以前に選択したメソッドに渡してパッケージ名を生成します。
  5. 探してください/usr/lib/tasksel/info/lamp-server.preinst。存在する場合は、このスクリプトを実行します。
  6. 次のコマンドを使用して、apt-getでパッケージをインストールします。

    debconf-apt-progress -- apt-get -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true install package1 package2 ...
    
  7. 探してください/usr/lib/tasksel/info/lamp-server.postinst。存在する場合は、このスクリプトを実行します。

結論

taskselは、タスクの処理と選択においてより強力です。タスクのインストール/削除の前後に追加のスクリプトを実行できます。そして最大の利点は、タスクを簡単に変更して新しいタスクを作成できることです。欠点(有効な署名)なしに公式のパッケージリストファイルを編集することはできません。

最初の質問に戻ります:
特別な場合、両方のコマンドはほぼ同等です(との両方APT::Install-Recommendsを有効にした場合APT::Get::AutomaticRemove)。唯一の違いは、拡張パッケージの状態mysql-serverapache2依存関係(単純なapt-getで「手動インストール」に設定)です。

メタパッケージはどうですか?

タスクの選択(特にインストール時に役立つ)や、いくつかのタスクブロックの前後に追加のコマンドを実行するなど、taskselの機能を使用しない場合、タスクはメタパッケージに非常に似ています。違いは次のとおりです。タスクはAPTキャッシュにパッケージとして登録されていません。
したがって、1つのタスク依存関係をアンインストールした場合、他のタスクdepsは明示的にインストールされたため、自動インストールとしてマークされません。メタautoremoveパッケージをアンインストールすると、拡張パッケージの状態が「自動インストール」されるため、依存関係は削除されます(手動でインストールされない場合)。
注: Debianのすべての分散タスクは、という名前のメタパッケージをインストールしますtask-TASKNAMEます。

あなたの例を与える:

  1. sudo apt-get install kubuntu-desktop
    • メタパッケージをインストールしますkubuntu-desktop。依存関係は「自動インストール」です。
  2. sudo apt-get install kubuntu-desktop^
    • タスク「kubuntu-desktop」でタグ付けされたすべてのパッケージを選択します。それがすべてmetapackageの依存関係ですkubuntu-desktop。これらはすべて「手動でインストール」としてマークされています。
  3. sudo tasksel install kubuntu-desktop
    • タスクのパッケージをインストールする前に、Xがインストールされていることを確認してください。
    • メタパッケージをインストールしますkubuntu-desktop。依存関係は「自動インストール」です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.