LinuxのDebian系パッケージ管理 apt系コマンドの使い方

linux aptコマンド
  • このエントリーをはてなブックマークに追加
  • Pocket

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のようにオプションを指定してインストール、アンインストールなどの作業も可能となっている。

Debianの公式リファレンス

ここでは「安定版システムにおいて、新システムへのアップグレードに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 search

パッケージの情報を表示

$ apt-cache show <パッケージ名>

apt-cache show

aptitudeを使用してみる

CUI上で対話的インターフェイスを起動

# aptitude

最初に把握しておくべきステータスの表示について記述しておこう。パッケージの頭に表示されるのはパッケージがいまどのような状態なのかを表している。

1文字目:状態

  • p インストールされてない
  • i インストール済み
  • c インストールされていないが設定ファイルなどが残っている。
  • v 仮想パッケージ、実パッケージが存在しないパッケージ、依存関係を柔軟に設定するために用意されている。

2文字目:動作

  • i インストール
  • d パッケージを削除
  • p パッケージおよび設定を削除

3文字目:

  • A システムにより自動インストールされたもの

ザックリとした使用方法

aptitudeに何も引数を与えずに起動すると対話的なCUI画面が表示される。

aptitube1

キャッシュデータベースの状態を最新の状態に保つため立ち上げたら「u」を押す、するとデータベースの更新が行われる。

パッケージを探すときは「/」または「l」を押す。「/」で検索。「l」を実行した場合項目が搾れる。

aptitube search

aptitube3

試しに「unzip」を削除してみる。項目に合わせて「-」を押すと削除のマークが押される。

aptitube6

次に「g」を押す。削除や導入といったマークが入ったもの、すべての動作が確認のあと、確定する。

aptitube7

「g」を押して続行。「Return」を求められるので「Enter」で確定。

同様の手順で「unzip」を戻してみる。

リストを絞り。「unzip」を見つける。「+」を押すとインストールのマークが押される。

aptitube4

あとは「g」で確定していけば問題なく導入されるはずだ。

パッケージの詳細情報を表示するときは項目に合わせてEnterを押せばよい。

aptitube5

「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 <パッケージ名>

aptitube search

パッケージ情報表示

$ aptitude show <パッケージ名>

aptitube show unzip

リポジトリを追加する

基本的に「sources.list」リポジトリの先が記述されている、リポジトリを追加したい場合このファイルを編集する。

# vi /etc/apt/sources.list

source-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

source-list-nonfree

リポジトリを追加した後はキャッシュの更新を行う。のちにそのリポジトリの中に現状より新しいパッケージがないか確認する。

# apt-get update

# apt-get upgrade

まとめ

このページではLinuxのdebian系パッケージ管理に使われるapt系コマンドについてお伝えをしてきた。

はじめは戸惑う部分もあるかと思うが、慣れれば使い方は難しくない。ぜひマスターして、自然に使えるようにしておこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

  1. Torque より:

    参考になりました。ありがとうございます。aptitude は知らなかったので使ってみようと思います。
    ただ文中、そこかしこでaptitu[b]eと間違っていたのが気になりました。

    1. リカレントテクノロジー より:

      ご指摘ありがとうございます。修正させていただきます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する