ウェブサイト検索

dpkg、apt、aptitude、synaptic、taskselの使い方


Debianは、ソフトウェアパッケージを管理するためのいくつかのツールを提供しており、それぞれがパッケージ管理のエコシステムで特定の目的を果たします。それぞれのツールをいつどのように使用するかを理解することは、システムを効果的に維持するのに役立ちます。

パッケージ管理階層の理解

Debianでは、パッケージ管理は階層で機能し、各ツールは異なる役割を果たします:

  • dpkg は、.deb パッケージファイルを直接インストール、削除、検査するために使用されるコアツールですが、パッケージのダウンロードや依存関係の解決は行いません。
  • apt と aptitude は dpkg 上で動作し、オンラインリポジトリからパッケージを取得し、依存関係を自動的に処理するため、インストールが非常に簡単になります。
  • Synapticは単に、コマンドラインを使わずにaptの機能を使用できるグラフィカルインターフェース(視覚的なアプリストアのようなツール)です。
  • taskselは、関連するソフトウェアのグループ(タスクと呼ばれる)、例えば「Webサーバー」や「デスクトップ環境」のようなものをインストールし、各パッケージを一つずつインストールする手間を省きます。

これらのツールは異なるレベルで機能するため、互いに置き換えるのではなく補完し合うものであり、あるツールが他のツールよりも適している状況に出くわすことがあるでしょう。

dpkg で作業する

dpkg は、システム上にすでにある .deb ファイルと直接作業する低レベルのパッケージツールです。インターネットからパッケージをダウンロードすることはなく、必要な依存関係を自動的にインストールすることもありません。

ですので、あるパッケージが動作するために他のソフトウェアを必要とする場合、それらの依存関係を自分でインストールするか、または依存関係を自動的にインストールするためにaptに切り替える必要があります。

すでにダウンロードしたパッケージファイルをインストールするには、例えば、ファイル google-chrome-stable_current_amd64.deb がある場合、次のコマンドを使用してインストールできます

dpkg -i package-name.deb

必要な依存関係がすべて既に揃っている場合、インストールは正常に完了します。しかし、いくつかのパッケージが不足している場合、次のようなエラーメッセージが表示されることがあります:

dependency problems - leaving unconfigured

この場合、次のコマンドを実行することで不足している依存関係を修正できます。このコマンドは、インストールを完了するために必要な依存関係を自動的にダウンロードしてインストールするようにaptに伝えます。

sudo apt -f install

インストールされたパッケージを削除するには:

dpkg -r package-name

システムにインストールされているすべてのパッケージを一覧表示するには:

dpkg -l

特定のパッケージがインストールされているかどうかを確認するには:

dpkg -l package-name

dpkg は依存関係を自動で処理しないため、パッケージが見つからないというエラーが発生することがあります。そのような場合には、apt のような上位レベルのツールが必要になります。

日常のパッケージ管理に apt を使用する

dpkgは.debファイルを直接操作しますが、aptは、パッケージをDebianのオンラインリポジトリから自動的にダウンロードし、それに必要な依存関係をインストールするため、ほとんどの場合に使用するツールです。そのため、日常的なソフトウェアのインストール、削除、更新にはaptが推奨されるツールとなります。

apt ツールはインストールおよび削除操作にスーパーユーザー権限を必要とするため、sudo を使用するか、これらのコマンドを root として実行する必要があります。

ソフトウェアをインストールする前に、システムが最新の利用可能なバージョンを認識できるように、パッケージリストを更新することをお勧めします。

sudo apt update

パッケージとそのすべての必要な依存関係をインストールするには、次を使用します:

sudo apt install package-name

設定ファイルを残してパッケージを削除するには:

sudo apt remove package-name

構成ファイルも削除して(よりクリーンなアンインストールにする)場合は、次を使用してください:

sudo apt purge package-name

インストールされているすべてのパッケージを最新バージョンにアップグレードするには:

sudo apt upgrade

正確なパッケージ名がわからない場合は、キーワードで検索することができ、これにより一致するパッケージのリストと簡単な説明が表示されます。

apt search keyword

apt は、パッケージファイルを再度必要とする場合に備えてシステムにダウンロード済みのファイルを保持します。時間が経つと、このキャッシュは大きくなる可能性があり、スペースを確保するために、次のコマンドを実行します:

sudo apt clean

aptitudeツールでパッケージを管理する

通常、日常的なパッケージ管理には apt で十分ですが、aptitude は追加の機能を提供し、より複雑な依存関係の状況を処理できることがよくあります。場合によっては、apt がパッケージの競合やアップグレードの解決に苦労する場合、aptitude がより良い解決策を提案することがあります。

コマンドラインから apt と同様に aptitude を使用することができます:

sudo aptitude update
sudo aptitude install package-name
sudo aptitude remove package-name
aptitude search keyword

しかし、aptitude の主な利点の一つは、次のコマンドで開くことができる対話型テキストベースのインターフェースも含まれていることです:

sudo aptitude

このインターフェースでは、パッケージを閲覧し、説明を読み、バージョンを確認し、変更を適用する前にインストールまたは削除のためにパッケージをマークすることができます。パッケージはカテゴリごとにきちんと整理されており、コマンドライン名や検索語を覚えるよりもシステムを探索しやすくなります。

もう一つの利点は、aptitudeがどのパッケージが手動でインストールされ、どのパッケージが依存関係として自動的にインストールされたかを追跡することです。このため、ソフトウェアをアンインストールする際に、どのパッケージを削除しても安全かを判断するのに優れていることが多く、重要なものを誤って削除するのを防ぐのに役立ちます。

グラフィカルパッケージ管理のためにSynapticを使用する

コマンドラインではなくグラフィカルインターフェースで作業することを好む場合、Synaptic は apt 上に構築されたフル機能のパッケージマネージャを提供します。パッケージを整理された検索可能なリストで表示し、依存関係、バージョン、インストール状況に関する詳細な説明と情報を提供します。

Synaptic をインストールするには、次を実行してください:

sudo apt install synaptic

インストールが完了したら、アプリケーションメニューから、または次のコマンドを実行して起動できます:

sudo synaptic-pkexec

Synapticを開くと、左側にパッケージのカテゴリが、右側にパッケージのリストが表示されます。パッケージを選択すると、下のパネルに詳細が表示され、そのパッケージが何をするか、どのバージョンが利用可能か、そして他にどのパッケージに依存しているかがわかります。

パッケージをインストールするには、それを右クリックして「インストールのためにマーク」を選択します。これにより必要な依存関係も自動的に選択されます。インストールしたいすべてのパッケージをマークしたら、「適用」をクリックしてインストールを開始します。

なぜなら、Synapticは何もインストールする前にパッケージの競合や依存関係の変更について視覚的なフィードバックを提供するため、ユーザーは自分の行動の影響をはっきりと確認できるからです。

taskselでパッケージグループをインストールする

個別のパッケージに焦点を当てるツールとは異なり、tasksel は関連するソフトウェアのセット全体を一度にインストールします。これらはタスクと呼ばれ、各タスクにはウェブサーバー、デスクトップ環境、メールサーバーなど、特定の役割をシステム上で実行するために必要なすべてのパッケージが含まれています。

インタラクティブなタスク選択メニューを起動するには、次を実行してください:

sudo tasksel

これにより、利用可能なタスクを閲覧できるメニューが開き、矢印キーで移動し、スペースバーでタスクを選択または選択解除できます。

メニューを開かずに利用可能なタスクを表示したい場合は、次を使用してください:

tasksel --list-tasks

コマンドラインから特定のタスクを直接インストールするには、次を実行してください:

sudo tasksel install task-name

通常の日常的なパッケージ管理では tasksel の使用頻度はそれほど高くありませんが、システムのセットアップ時や、ソフトウェア環境を一度にすべてインストールしたい場合には非常に便利です。

適切な道具を選ぶ

Debianの各パッケージ管理ツールは特定の目的のために設計されており、どれを選ぶかはあなたが何をしようとしているかによります。手動でダウンロードした個別の.debファイル、特に公式リポジトリ外からのファイルを扱う場合には、dpkgを使用してください。日常的な状況、例えばコマンドラインからソフトウェアをインストール、削除、更新する場合にはaptを使うと、依存関係を自動的に処理してくれます。

より複雑な依存関係の問題に対処する場合や、対話型のテキストベースのインターフェースを使用してパッケージを参照および管理したい場合は、aptitudeを検討してください。グラフィカルなインターフェースを好む場合や、インストール前に利用可能なソフトウェアを視覚的に確認したい場合は、Synapticを選んでください。

最後に、システムをウェブサーバー、デスクトップ環境、または開発ワークステーションとして構成するためなど、関連するソフトウェアパッケージのフルセットをインストールする必要がある場合は、tasksel を使用します。

これらすべてのツールは同じ基盤となるパッケージデータベースを使用しているため、互いに競合することはありません。必要に応じて、自由に切り替えて使用できます。重要なのは、すべてに一つの方法に頼るのではなく、作業に最も適したツールを選ぶことです。