LINEで現役エンジニアに直接質問してみよう!登録無料

Linuxの「apt」とは?使い方からパッケージの操作、管理まで解説

aptは、Debian系Linuxと呼ばれるOSのパッケージ(OSやアプリケーション等のソフトウェア)を管理するコマンドです。

aptは具体的に何を管理しているの?

世の中には無料有料のソフトウエアは数え切れないほど沢山あります。それらのソフトウェアを配布するにはプログラム本体に含めて、「設定ファイル」「マニュアル」「依存ライブラリ」などもインストールする必要があります。こうした複数のファイルを手動で1つ1つ配置していくのはとても大変です。

aptはこのような複数の関連ファイルを正しい位置に配置し管理します。

aptを使うメリット

パッケージ管理コマンドはそのような負担を軽減することを目的にしています。

aptを使うと、どこに何のファイルを配置したかを覚えているので、削除するときに設定ファイルなどを含めて消してくれますし、更新の時にもsudo apt upgradeと実行するだけで良くなります。

もちろん、aptを使わない管理も出来ますが、更新のたびにサイトにアクセスし、ソフトウェアをダウンロード&正しい場所に配置しなければなりません。 これは大変な手間です。

ソフトウェアの新たなバージョンが登場したときも更新しやすく、パッケージが不要になったときに削除もしやすく、更新があったことが分かりやすくなり、脆弱性あるソフトウェアも放置してしまう確率も下げることが出来ます。

aptの使い方

aptを使うには、どのようなソフトウェアやバージョンが用意されているのか「目次」のようなものをダウンロードした後に、その目次に従ってインストールや更新を行います。「目次」は「パッケージ情報」といいます。

STEP.1
パッケージ情報のダウンロード
$ sudo apt update
STEP.2
インストールやアップデート
# パッケージのインストール
$ sudo apt install {パッケージ名}

# システムのパッケージをアップデート
$ sudo apt upgrade

aptのパッケージ操作基本コマンド一覧

aptコマンドの基本的な

  • インストール
  • アップデート
  • アンインストール

について解説します。

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

aptでパッケージのインストール
$ sudo apt install {パッケージ名}

aptでパッケージのアップデート

aptでパッケージのアップデート
$ sudo apt upgrade

aptでパッケージのアンインストール

設定ファイルは削除せず、プログラムだけをアンインストールする場合は、sudo apt remove {パッケージ名}を使います。

aptでパッケージのアンインストール(設定ファイルはそのまま)
$ sudo apt remove {パッケージ名}

設定ファイルもアンインストールするには、sudo apt remove --purge {パッケージ名}を使います。

aptでパッケージのアンインストール(設定も削除)
$ sudo apt remove --purge {パッケージ名}

通常は、sudo apt remove {パッケージ名}の方を使います。

aptのパッケージ操作応用コマンド一覧

aptコマンドの応用的なコマンドや使い方を紹介します

  • パッケージ名の見つけ方
  • パッケージの詳細情報を確認

パッケージ名の見つけ方

インストールするパッケージは、ソフトウェア名がそのまま使われていることが多いです。例えば、Nginxをインストールしたければsudo apt install nginxを実行すれば大丈夫。しかし、時にはそれではパッケージが見つからないこともあります。

そのような時に使うコマンドがapt listです。これはインストール可能なパッケージ名が全部出力されます。 これでは多すぎるので、「|(パイプ)」と「grep(グレップ)」を使って絞り込み検索を行います。

aptでパッケージ検索
$ apt list | grep {パッケージ名}

パッケージの詳細情報を確認

apt listでパッケージ名をしぼりこめたら、本当にそれが目的のソフトウェアなのか確認する必要があります。 確認にはapt show {パッケージ名}を使います。

aptでパッケージの詳細情報を確認
$ apt show {パッケージ名}
この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。