以前から何の気なしに使っていた apt コマンド。
その外観を大まかに知ろうと調べた内容をまとめます。
1. APT とは
本記事のタイトルになっている APT ( Advanced Package Tool ) とは、 Debian 用に開発されたパッケージ管理システムです。APT によってバイナリパッケージの依存関係の解消やアプリケーションのアップデート等が容易に行なえます。
APT はパッケージのダウンロードやインストールを行う際にリポジトリを参照しますが、公式なリポジトリはファイル/etc/apt/sources.listに、非公式なリポジトリはディレクトリ/etc/apt/sources.list.d直下に格納されます。リポジトリについて、詳しくは 3. apt-line についてで触れます。
APT を利用するためのツールとして、apt や apt-get 、aptitude 等が用意されていますが、以下でその違いについて触れます。
2. apt コマンド
Ubuntu でパッケージのインストールについて調べていると apt 以外にも apt-get や aptitudeといったコマンドに出会った経験があるかと思います。
apt コマンドが登場したのは2014年4月1日にリリースされた apt 1.0 からであり、それ以前のバージョンでは、パッケージインストール等には apt-get 、パッケージ検索等には apt-cache が使われていました。apt 1.0 から登場した apt コマンドは、大まかには apt-get と apt-cache の機能を併せ持ったコマンドです。Debian 管理者ハンドブックを見てみると apt は apt-get が持っていた設計上のミスを克服しているそうで、Ubuntu 14.04 からは apt コマンドが推奨されているようです。
上述の apt 及び apt-get/cache は CUI で APT を使用するツールですが、aptitude は CUI だけでなく TUI でも APT を使用できます。CUI が苦手な人でも使えるよう開発されたのでしょうが、Ubuntu 16.04 からデフォルトでインストールされなくなったようです。
apt コマンドの用法に関しては以下の記事に詳しく載っています。
因みに、apt 、apt-get 、aptitude にはジョークコマンドが用意されているようですね。
試しに、次のコマンドを実行してみてください。気晴らしになるでしょうか。
$ apt moo; apt moo moo; apt moo moo moo
3. apt-line について
apt-line とはファイル /etc/apt/sources.list やディレクトリ /etc/apt/sources.list.d 直下のファイルに記されている次のような風体の行のことです。
deb http://us.archive.ubuntu.com/ubuntu xenial main restricted
1. APT とはで触れたように、APT はパッケージのインストールや更新時にリポジトリを参照しますが、そのリポジトリの設定文 ( 1行スタイル ) が apt-line ( 俗称? ) です。
前述の設定文を deb822 スタイルで表記すると次のようになります。
Types: deb
URIs: http://us.archive.ubuntu.com/ubuntu
Suites: xenial
Components: main restricted
Types はパッケージの形式、URIs はリポジトリの場所を表します。通常、Suits には codename やバージョン名を、Components には main 、contrib 、non-free のどれかを記述します。因みに、1行スタイルの設定文は拡張子が.listのファイルに書き込みますが、deb822スタイルの設定文は拡張子が.sourcesのファイルに書き込む必要があります。
リポジトリの設定について、詳しくは次のコマンドで確認することが出来ます。
$ man sources.list