yupaがエンジニアになるまでを記録するブログ

FjordBootCamp (フィヨルドブートキャンプ ) で学んだことや、趣味のVRに関するメモを記録していきます

DebianのAPTについて

FjordBootCampプラクティスのお題記事。DebianのAPTについて簡単にまとめていく。

APTとは?

Debian用に開発されたパッケージ管理システム  
APT - Wikipedia

Advanced Package Toolの略。APTというパッケージを管理するプロジェクトが有り、そのプロジェクトが提供するコマンドラインベースフロントエンドがapt。 このaptでパッケージのインストール、削除、更新等の管理ができる。

パッケージ管理システムとは?

そもそも、Linuxではソフトウェアのことをパッケージと呼ぶ。パッケージ管理システムは、パッケージのインストール、アンインストールのほか、パッケージ同士やライブラリ間の依存関係の解決も行うシステムである。

Debian以外のパッケージ管理システムの例として、Node.jsのnpmmacOSHomebrew等がある。

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 パッケージ名 : 指定したパッケージに対し依存しているパッケージ一覧 f:id:yu8as:20180921204137p:plain

例えば、vimに対する関係として提案となっているvim-docはまだインストールされていないことがわかる。(インストール済みのパッケージリストを表示するコマンドはdpkg -lf:id:yu8as:20180921204925p:plain

実際にパッケージをインストールするまでの流れ

ファイルの検索をしてくれるlocateをインストールするまでを例としてまとめていく。

まずはapt update

apt update
aptのインストールはローカルに保存されているパッケージリストをもとに行われるため、最初にこのリストを最新のものに更新する必要がある。そのコマンドがupdate
参考 : apt-get updateは何を行っているのか調べてみた〜パッケージインデックスファイルとは何か〜 - 君は心理学者なのか?

目的のパッケージを探す

# apt list locate
listは完全一致。部分一致で検索したい場合はsearchを使う。

パッケージの詳細を確認

# apt show locate
で指定したパッケージの詳細が確認できる

f:id:yu8as:20180921192658p:plain

パッケージのインストール

# apt install locate
結果、 f:id:yu8as:20180921195525p:plain updatedbしてlocateが使えるようになった。 f:id:yu8as:20180921193927p:plain

パッケージの更新

インストールしているすべてのパッケージを更新したい場合は、以下のコマンドを実行する。 

# apt update 
# apt upgrade

apt updateにより、前述の通りローカルのパッケージリストが最新のものに更新される。
次にupgradeを実行すると、まずパッケージリストの各パッケージのバージョンと実際にインストールされているパッケージのバージョンを比較し、もしパッケージリストのバージョンに新しいものがあれば実際のパッケージをアップグレードする、という流れとなる。

full-upgradeはパッケージの削除が伴う更新を行う際に実行する。公式曰く、

apt full-upgrade は Debian 不安定版 リリースを日常的に使い、毎日開発進化を追いかけているユーザが使うコマンドです。  
6.2. aptitude、apt-get、apt コマンド

APTはすごい牛パワーを持ってるらしい

f:id:yu8as:20180921205541p:plain

試しにapt mooしたらAPTのすごい牛パワーを感じることができた(?)

参考