以前から何の気なしに使っていた 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
#参考文献