aptとはLinuxDebian系のパッケージ管理システムだ。dpkgをより簡単に管理するイメージだと思って貰えばいいだろう。
このページではaptについてそもそも何かということや、コマンドについて解説を行っている。参考にしてほしい。
目次
aptとは
もともとLinuxは「tar.gz」という感じで圧縮されたソースコードをもってきて、コンパイルすることが当たり前だった。
しかし、ソフトウェアがアップデートするたびにコンパイルしたり、整合性を取ったりするのは非常に苦い。オープンソースはアップデートが多いし、なおさらだ。
Debianの開発者たちは迅速にソフトウェアを管理するパッケージ管理システムが必要なことに気がつき、「dpkg」をつくりあげた。
これがDebianにおけるパッケージの始まりで、そのdpkgを管理するために「apt」が開発された。aptとは「Advanced Packaging Tool」の略である。Debianのパッケージ管理システムとして開発されたものである。
当初主に「debパッケージ」を管理するために開発されたものだが、現在一部のディストリビューションではAPTでRPMを管理する「apt-rpm」というものも存在する。現に国産ディストリビューションである「VineLinux」ではapt-rpmでrpmが管理されている。
aptは立ち位置としてRedHatなどでいうyumやdnfと同じである。個別のパッケージを統合管理するパッケージマネージャである。
aptとaptitude
Debianは現在パッケージ管理に二つのフロントエンドが存在する。
「apt」と「aptitude」だ。aptとaptitudeどちらを使用してもパッケージを管理できる。aptitudeの方が後に開発されたものだ。
しかしapt-getやapt-cacheが使用できなくなるというわけではない。aptitudeはapt-getなどのコマンドより多機能である。引数を指定せずにaptitudeを起動すると、対話的なCUIインターフェイスでパッケージを管理できる。
またapt-getのようにオプションを指定してインストール、アンインストールなどの作業も可能となっている。
ここでは「安定版システムにおいて、新システムへのアップグレードにaptitude コマンドを使用することは推薦しない」といった趣旨の文章とともにaptとaptitudeの違いにも触れている。
apt-getおよび、apt-cacheは「APTを使う最も基本的なパッケージ管理ツール」であり、aptitudeは「多芸なAPTを使うパッケージ管理ツール」とされている。現在この二つのコマンドはケースバイケースで使い分けることになりそうである。
aptによるパッケージ管理
キャッシュデータベースのアップデート
# apt-get update
実際に新しいパッケージをアップデート
# apt-get upgrade
新しい環境へアップグレード、バージョンを上げる際に使用するコマンドである。
# apt-get dist-upgrade
パッケージをインストール
# apt-get install <パッケージ名>
設定ファイルをそのままにパッケージを削除
# apt-get remove <パッケージ名>
パッケージを完全に削除する
# apt-get purge <パッケージ名>
そのパッケージをビルドするために必要なパッケージをすべてインストールする
# apt-get build-dep <パッケージ名>
パッケージのソース一式、debian独自のパッチなども一緒にダウンロードする
$ apt-get source <パッケージ名>
パッケージを検索する
$ apt-cache search <パッケージ名>
パッケージの情報を表示
$ apt-cache show <パッケージ名>
aptitudeを使用してみる
CUI上で対話的インターフェイスを起動
# aptitude
最初に把握しておくべきステータスの表示について記述しておこう。パッケージの頭に表示されるのはパッケージがいまどのような状態なのかを表している。
1文字目:状態
- p インストールされてない
- i インストール済み
- c インストールされていないが設定ファイルなどが残っている。
- v 仮想パッケージ、実パッケージが存在しないパッケージ、依存関係を柔軟に設定するために用意されている。
2文字目:動作
- i インストール
- d パッケージを削除
- p パッケージおよび設定を削除
3文字目:
- A システムにより自動インストールされたもの
ザックリとした使用方法
aptitudeに何も引数を与えずに起動すると対話的なCUI画面が表示される。
キャッシュデータベースの状態を最新の状態に保つため立ち上げたら「u」を押す、するとデータベースの更新が行われる。
パッケージを探すときは「/」または「l」を押す。「/」で検索。「l」を実行した場合項目が搾れる。
試しに「unzip」を削除してみる。項目に合わせて「-」を押すと削除のマークが押される。
次に「g」を押す。削除や導入といったマークが入ったもの、すべての動作が確認のあと、確定する。
「g」を押して続行。「Return」を求められるので「Enter」で確定。
同様の手順で「unzip」を戻してみる。
リストを絞り。「unzip」を見つける。「+」を押すとインストールのマークが押される。
あとは「g」で確定していけば問題なく導入されるはずだ。
パッケージの詳細情報を表示するときは項目に合わせてEnterを押せばよい。
「unzip 情報」というタブが出来上がり情報が表示されるはずだ。タブを閉じるときは「q」を押せばよい。
すべてのタブを「q」で閉じれば終了となる。
コマンドでaptitudeを使用してみる
以下ほぼapt-get apt-cacheとほぼ同等の動きをする。
キャッシュアップデート
# aptitude update
パッケージを最新に
# aptitude safe-upgrade
パッケージインストール
# aptitude install <パッケージ名>
パッケージ削除
# aptitude remove <パッケージ名>
パッケージ完全削除
# aptitude purge <パッケージ名>
ビルド依存関係をインストール
# aptitude build-dep <パッケージ名>
パッケージをダウンロード
$ aptitude download <パッケージ名>
パッケージ検索
$ aptitude search <パッケージ名>
パッケージ情報表示
$ aptitude show <パッケージ名>
リポジトリを追加する
基本的に「sources.list」リポジトリの先が記述されている、リポジトリを追加したい場合このファイルを編集する。
# vi /etc/apt/sources.list
今回「non-free」リポジトリを追加する。「non-free」リポジトリはGPGキーリングの操作は必要ない。今回はapt-get updateしてもエラーは出ないはずだ。
もし本当に非公式なリポジトリを使用する場合、GPGキーリングの取り込みをしないとapt-getの時点でエラーや警告が表示される。その場合リポジトリのWebページなどに記載されているキーリングの取り込みを行うこと。
なお「jessie」の部分は各自Debianのバージョンに合わせて変更すること。ちなみにDebianはトイストーリーに出てくるおもちゃの名前からコードネームがつけられる。開発版は常に「sid」である。
deb http://ftp.de.debian.org/debian jessie main non-free
リポジトリを追加した後はキャッシュの更新を行う。のちにそのリポジトリの中に現状より新しいパッケージがないか確認する。
# apt-get update
# apt-get upgrade
まとめ
このページではLinuxのdebian系パッケージ管理に使われるapt系コマンドについてお伝えをしてきた。
はじめは戸惑う部分もあるかと思うが、慣れれば使い方は難しくない。ぜひマスターして、自然に使えるようにしておこう。
参考になりました。ありがとうございます。aptitude は知らなかったので使ってみようと思います。
ただ文中、そこかしこでaptitu[b]eと間違っていたのが気になりました。
ご指摘ありがとうございます。修正させていただきます。