DebianのAPTについて
FjordBootCampプラクティスのお題記事。DebianのAPTについて簡単にまとめていく。
APTとは?
Debian用に開発されたパッケージ管理システム
APT - Wikipedia
Advanced Package Toolの略。APTというパッケージを管理するプロジェクトが有り、そのプロジェクトが提供するコマンドラインベースフロントエンドがapt。 このaptでパッケージのインストール、削除、更新等の管理ができる。
パッケージ管理システムとは?
そもそも、Linuxではソフトウェアのことをパッケージと呼ぶ。パッケージ管理システムは、パッケージのインストール、アンインストールのほか、パッケージ同士やライブラリ間の依存関係の解決も行うシステムである。
Debian以外のパッケージ管理システムの例として、Node.jsのnpmやmacOSのHomebrew等がある。
apt/apt-get/aptitudeの違い
apt-get
APTプロジェクトで開発された最初のコマンドラインツール
apt
同じくAPTプロジェクトで開発されたもう一つのコマンドラインツール。apt-getが持つ設計上の欠陥を克服しており、aptを使用することが最も推奨されている
6.2. aptitude、apt-get、apt コマンド
aptitude
ビジュアルモードが備えられている対話型パッケージ管理プログラム。(Debian 9.1にはデフォルトでインストールされていなかった。)
パッケージ同士の関係について
APTでは、コンパイル済みパッケージの関係を4つの関係性で表す
- 依存 : パッケージを導入するのに欠かすことのできないパッケージ
- 推奨 : 無くてもよいが、プログラムの機能を利用するために通常は導入するパッケージ
- 提案 : 無くてもよいが、導入することによってプログラムの機能を向上させるパッケージ
- 衝突 : パッケージを導入することで、同一の機能を有するなどの理由で削除されるパッケージ
これら依存関係を確認するには、以下コマンドを実行。
apt-cache depends パッケージ名
: 指定したパッケージが依存してるパッケージ一覧apt-cache rdepends パッケージ名
: 指定したパッケージに対し依存しているパッケージ一覧
例えば、vimに対する関係として提案となっているvim-docはまだインストールされていないことがわかる。(インストール済みのパッケージリストを表示するコマンドはdpkg -l
)
実際にパッケージをインストールするまでの流れ
ファイルの検索をしてくれるlocateをインストールするまでを例としてまとめていく。
まずはapt update
apt update
aptのインストールはローカルに保存されているパッケージリストをもとに行われるため、最初にこのリストを最新のものに更新する必要がある。そのコマンドがupdate
。
参考 : apt-get updateは何を行っているのか調べてみた〜パッケージインデックスファイルとは何か〜 - 君は心理学者なのか?
目的のパッケージを探す
# apt list locate
list
は完全一致。部分一致で検索したい場合はsearch
を使う。
パッケージの詳細を確認
# apt show locate
で指定したパッケージの詳細が確認できる
パッケージのインストール
# apt install locate
結果、
updatedbしてlocateが使えるようになった。
パッケージの更新
インストールしているすべてのパッケージを更新したい場合は、以下のコマンドを実行する。
# apt update # apt upgrade
apt update
により、前述の通りローカルのパッケージリストが最新のものに更新される。
次にupgrade
を実行すると、まずパッケージリストの各パッケージのバージョンと実際にインストールされているパッケージのバージョンを比較し、もしパッケージリストのバージョンに新しいものがあれば実際のパッケージをアップグレードする、という流れとなる。
※full-upgrade
はパッケージの削除が伴う更新を行う際に実行する。公式曰く、
apt full-upgrade は Debian 不安定版 リリースを日常的に使い、毎日開発進化を追いかけているユーザが使うコマンドです。
6.2. aptitude、apt-get、apt コマンド
APTはすごい牛パワーを持ってるらしい
試しにapt moo
したらAPTのすごい牛パワーを感じることができた(?)