パッケージマネージャ(APT)
APTはAdvanced Pacage tool の略でLinux Debian系ディストリビューションで利用されるパッケージマネージャです。 OSレベルで、パッケージソフトウェアをインストール・アップデート・削除等を簡単に行い管理を行うことができます。ソフトウェアはインターネットリポジトリと呼ばれる共有サーバに保存されており、自動的にダウンロードを行うためコマンド入力だけでソフトウェアのインストールができます。
主なオペレーションは以下のものがあります。
- パッケージカタログのアップデート
- パッケージのインストール
- パッケージのバージョンアップ
- パッケージの削除
- パッケージのリスト表示と検索
- 一時ファイルのクリーンナップと不要なソフトウェアの削除
- リポジトリの追加
リポジトリの追加は信頼できる情報によりリポジトリのポリシーをよく理解した上で行ってください。 開発途中の不安定なソフトウェアや悪意を持ったソフトウェアがインストールされたりします。
基本知識
aptのCLIツールは主に1つのコマンドにまとめられたapt
コマンドと複数のコマンドを使うapt-get
,apt-cache
...などのコマンドの2種類があります。
使い分けは、オペレータが直接コマンドを入力するときは、apt
を利用します。shellスクリプトなどのプログラムに組み込む場合はapt-get
などのコマンドを利用することで最適なオペレーションができるように設計されています。
パッケージカタログのアップデート
APTツールのカタログは、インターネット上などのローカルPC/サーバ以外のリモートにある情報をローカルにコピーして利用します。リモートの最新のカタログ情報をコピーするときに利用ます。 基本的に、ソフトウェアのバージョンアップやインストールの前に実施します。
コマンドは単純で、apt upgrade
またはapt-get upgrade
コマンドを実行します。
sudo apt upgrade
パッケージのインストール
aptからパッケージをインストールするには、apt install (パッケージ名)
と入力します。スクリプト上で使う場合は、apt-get install
となります。
必要に応じて、インストールを行うかの確認プロンプトが表示されますが、-y
オプションをつけることで確認を飛ばすことが可能です。
パッケージ名は、後述のパッケージ名検索で調べるたり、ブログ等の記事に記載されています。
sudo apt install (pakcage-name)
パッケージのバージョンアップ
利用しているリポジトリの種類により頻度は異なりますが、インターネット上のリポジトリに保存されているソフトウェアはメンテナンスされバージョンアップしていきます。
バージョンアップをする場合、apt upgrade
またはapt-get upgrade
コマンドを実行することで行います。
sudo apt upgrade
パッケージの削除
不要になったソフトウェアは削除することが可能です。昨今では、Dockerなどのコンテナの利用でパッケージ削除をする機会は減りましたが、
プレインストールされている不要なパッケージなどを削除することでいろいろなメリットが有ります。
コマンドはapt remove (パッケージ名)
またはapt-get remove (パッケージ名)
を実行します。
sudo apt remove (パッケージ名)
パッケージのリスト表示と検索
パッケージのリスト表示や検索を行う際のオペレーションです。基本的にはbashからコマンド入力することが多いため、スクリプトに組み込む方法は省略します。
コマンドは、一覧表示がapt list
検索がapt search (検索名)
を実行します。パッケージの詳細が知りたい倍は、apt show (パッケージ名)
を実行します。
apt search の検索名は正規表現でパッケージ内の解説と比較し、一致したものを表示します。
# キャッシュされたパッケージ一覧を表示する場合
sudo apt list
# インストール済みのパッケージ一覧を表示する場合
sudo apt list --installed
# web serverを検索する場合
sudo apt search "web server"
# パッケージapache2の詳細を表示する場合
sudo apt show -a apache2
一時ファイルのクリーンナップと不要なソフトウェアの削除
APTでインストールする場合、インターネットからコピーしたパッケージファイルを/var/cache/apt
に一時ファイルとして保存します。
何度も上書きインストールする場合は必要になりますが、通常は必要ないためapt clean
コマンド、apt-get clean
コマンドで削除することができます。
また、過去に依存関係のソフトウェアのインストールが必要だったが、不要になってどこからも使われていないパッケージは削除しても構いません。
この不要になったパッケージを自動で消してくれるコマンドがapt autoremove'コマンド、
apt-get autoremoveコマンドです。このコマンドは展開されたファイルも削除します。 他にも、不要になったパッケージのうち一時ファイルのみ削除したいときは
apt aotoclean
apt-get autoclean`コマンドを利用します。
ストレージ容量に余裕がある場合は必要ありませんが、どれも必要ないものが多いので作業後に autoremoveとcleanを行うと良いでしょう。
# 一時ファイルの削除
sudo apt clean
# 不要なパッケージの削除
sudo apt autoremove
# 不要なパッケージの一時ファイルを削除
sudo apt autoclean
リポジトリの追加
APTを利用していると、必要なパッケージがないことがああります。このような場合、PPA(パーソナル・パッケージ・アーカイブ)を利用することが有ります。 PPAは非常に多種多様なソフトウェアを簡単にインストールできるので便利である反面、管理元が信用できないものも多く存在し利用することによる不都合も多いので 導入の際は、最低限 信頼できる発行者や管理者が運営しているか? どのような目的や運用ポリシーで運用されているかを確認したほうが良いです。 特に避けるべきは、早期リリースやデバック目的のものは不安定になることが多いので控えたほうが良いでしょう。また、管理元が不明なものの中には 悪意を持ったソフトウェアが含まれていることも有りますのでご注意してください。
オペレーションとしては、apt-add-repository
コマンドを利用します。
安易に使うものではなのでコマンド名のみの紹介にしておきます。信頼ができるリポジトリについては個別記事で利用方法を記載していきます。
また、時間が有りましたらPPAの作り方も解説しようと思います。