Debianに関する世界観2(Apt)です。
aptの優れた点は、ネットワーク上のリポジトリから、好きなアプリケーションを好きなだけ、なんでも簡単に入れられるということ。
どんなパッケージでも、apt install packageとすれば、そのパッケージを手軽に導入できる。
要らないパッケージの削除も簡単だし、最新版への更新も自動的に行ってくれる。依存するパッケージがあれば、そのパッケージも同時に自動で導入してくれる。
たとえば、WebサーバーにするのであればApacheをaptで入れるだけ。テキストエディタならemacsでも同じ。
しかしながら、この「なんでも簡単に入れられる」という特徴は注意が必要。動いているシステムを簡単に壊れたシステムにしてしまうことがある。たとえばKDEなどを入れた日には、大量のパッケージが導入されて、消そうにも簡単に消すことができなくなる。aptは用法用量を守って正しく使いましょう。
また、セキュリティやバグ修正などでパッケージをメンテナンスしてくれているパッケージメンテナの人に対する感謝も忘れずに。
aptとDeb/Dpkgは、DebianやUbuntuなどでのパッケージ管理システム。
パッケージをインストールするには以下のようにする。
apt install [パッケージ名]
システムを破損させる可能性があるため、必ずsuコマンドあるいはsudoコマンドを使ってrootユーザー権限で行う。
パッケージリストをリポジトリの最新版に更新するには以下のようにする。
apt update
アップデート可能なパッケージを最新版に更新するには以下のようにする。
apt upgrade
showコマンドを実行すると、パッケージの詳細情報を表示できる。
apt show [パッケージ名]
また、apt listでパッケージの検索(完全一致)、apt searchでパッケージの検索(部分一致)ができる。
apt list [クエリ] apt search [クエリ]
apt removeでパッケージを削除できる。
apt remove [パッケージ名]
また、システムにインストールされているパッケージの一覧はdpkg -lコマンドで表示できる。
dpkg -l
パッケージ管理システムで、アプリケーションを簡単にインストールする仕組み。
AptはDebianのパッケージ管理ツール。依存関係を自動で解決したり、パッケージの自動更新などをやってくれる。
以下を参照のこと。
最近のDebianでは、パッケージをインストールする際のコマンドはapt-getではなく、aptだけ(たとえばapt install [package]のようになる)になった。
apt-getに存在した設計上の問題点を解決したのがaptコマンド。外部プロジェクトとして、synaptic、aptitudeのようなフロントエンドもある。今のDebianでは基本的にaptを使う。詳しくは以下を参照のこと。
Aptのパッケージリポジトリ設定ファイル。/etc/apt/sources.listに存在する。
「deb」はバイナリパッケージ用で、「deb-src」はソースパッケージ用。
「stable」は安定板、「testing」はテスト版、「unstable」は不安定版を表す。他に、リリース版の自動更新を避けるため、リリースバージョン別のコードネームを使うことが出来る。
「main」は完全なフリーソフトウェア、「contrib」はフリーではないソフトウェアに依存するフリーソフトウェア、「non-free」はフリーではないソフトウェアを使用することを宣言する。
基本は以下を参照のこと。
apt.confはAptの設定ファイル。/etc/apt/apt.confに存在する。
後日注記:ネット上では、プロキシ環境に対応するための設定例がよく見られる。以下が参考になる。
2024.06.13編集
aptでは、-yオプションを使うことで、対話的なプロンプトに自動で答えてくれる。時間のかかる処理を行いたい際に、四六時中モニターに張り付いていなくても、自動でyesと答えてくれるため便利である。
2023.09.10
AptのGUIフロントエンド。
AptのCUIフロントエンド。
aptをRPMで使うAPT-RPMというものも存在する。Red Hat(RPM)も参照のこと。
最近のDebianのaptでは、不要になった依存パッケージの自動削除(追跡)をしてくれるようになった。
昔のDebianのapt-getでは、依存関係でインストールされたパッケージがあったとして、その依存関係の元になった「導入したかったパッケージ」をアンインストールしても、そのパッケージと一緒に入った依存パッケージはアンインストールしてくれなかった。
これは、たとえばアプリケーションが依存するライブラリを依存関係で自動的にインストールして、あとでこのアプリケーションを使わなくなってアンインストールしても、ライブラリは残ってしまう、ということを意味する。
Debianだけでなく、FedoraのyumやGentooのPortageでも、依存パッケージを自動で削除することはしなかった。決してできなかったわけではない(たとえばPortageでは自動削除用の専用のコマンドがある)。だが、こうした不要パッケージの追跡をしなければ、システムに必要のないパッケージがどんどん残ってしまい、結果「パッケージ管理システムの意味がない」ということになってしまう。
最近のパッケージ管理システムでは、こうしたことを背景に、不要になったパッケージはアンインストール時に追跡して自動で削除したり、明示的にそのお知らせを表示するようになっている。Debianのaptやapt-getでも、最近は要らないパッケージを「自分で明示的にインストールした場合でなければ」自動削除してくれる。
ちなみに、apt-get autoremoveを使えば、不要になったパッケージを削除をその都度自動で削除してくれる。詳しくは以下を参照のこと。
Debianのパッケージ管理ツール。