Ubuntuはもともと開発環境やデスクトップ環境としてニーズがあるが、ここ数年でエッジサーバとしての需要が出始め、さらに近年ではクラウドプラットフォームの基盤としても人気が高まりつつある。スマートフォンやタブレット・デバイスの基盤としての活用も進むなど、注目度の高いLinuxディストリビューションの1つだ。今回は、このUbuntuのパッケージ管理システムの使い方について取り上げる。

Ubuntu - apt(8)

Ubuntuでは、「apt(8)」と呼ばれるコマンドラインインタフェースを使ってパッケージ管理を行う。「apt-get(8)」や「apt-cache(8)」といったコマンドを直接使ってもよいのだが、「apt(8)」を使うと自動的にそれらのコマンドに適切なオプションを指定してくれるという利点があるのだ。”にわか管理者”である本連載の読者にとってベストなチョイスは、「apt(8)」だろう。

では、前回CentOSのパッケージ管理システムについて説明したときと同様にUbuntuで「tree(1)」というコマンドを使いたいケースを考えてみよう。「tree(1)」のパッケージがインストールされていなければ、次のようなメッセージが表示されるはずだ。

「treeというコマンドが存在しない。『apt install tree』と入力するとインストールできる」という説明が表示される

apt(8)の使い方は、CentOSでパッケージ管理システムの使い方を説明したときに紹介した「yum(8)」とよく似ている。引数としてサブコマンドを指定し、さらにそこにオプションやサブコマンドの引数を指定するといった内容になっている。例えば、パッケージを検索するには「apt list 《パッケージ名》」と指定してコマンドを実行する。

検索すると、パッケージの存在を確認できる

また、「apt show 《パッケージ名》」を実行すると、対象パッケージの詳細情報を確認できる。treeの場合だと、次のような出力が得られるだろう。

treeパッケージの詳細情報を表示

コマンドラインに表示されたメッセージどおりに「apt install tree」と入力・実行してパッケージをインストールしてみよう。

「apt install tree」を実行してパッケージをインストール

インストールしたコマンドは、すぐに使えるようになっている。tree(1)コマンドを実行すると、ファイルとディレクトリのツリー構造を表示させられるようになったことを確認できるはずだ。

tree(1)コマンドでファイルとディレクトリのツリー構造を表示できるようになった

なお、パッケージをアンインストールするには、「apt remove 《パッケージ名》」を実行すればよい。

「apt remove 《パッケージ名》」で対象パッケージをアンインストールできる

このように、apt(8)の使い方はyum(8)とよく似ている。利用するサブコマンドも、一部意味が違う物もあるが同じ物が多いので、CentOSとUbuntuの間を行ったり来たりしていても、何度かターミナルにコマンドを打ち込んでいれば思い出せるレベルだ。

進歩するパッケージ管理システム

いわゆるPC-UNIXと呼ばれるようなディストリビューションが人気を博した時代、日本のパッケージ管理システムは、今よりもっとシンプルな機能のものが多かった。典型的な例としては、コンパイルしたバイナリと必要なドキュメントなどをアーカイバでまとめただけ、といったものが挙げられる。

“パッケージ管理システム歴史研究”といった研究分野があるのかどうかは知らないが、例えば、このPC-UNIXが出てきた頃のパッケージ管理システムを「第N世代」としよう。第N世代には、逐次機能が追加されたり、サードパーティ製のツールによって依存関係が整理されたり、アップグレード機能が追加されたりして、次の世代となる「第N+1世代」が生まれた。パッケージ管理システムとして基本となる技術のほとんどは、この辺りで出そろったと言える。管理コマンドにいろいろオプションを指定してさまざまな処理をしていた頃が、第N+1世代といった感じがする。

そして、現在は「第N+2世代」といったところだろう。メタデータ保持の有無、依存関係管理の有無、リポジトリデータ保持の有無など分類の方法はいくらでもあると思う。厳密な分類はいずれ登場するかもしれない”パッケージ管理システム歴史研究家”にお願いするとして、筆者としては現段階で何となく「N+2」になったなという気がしている。第N+1世代の機能やツールをベースに、ユーザーはオプションを意識することなくサブコマンドを指定する程度で全てが完了する。時間とともにパッケージ管理システムは便利になってきた、というのは間違いない。

今回のおさらい

今回のおさらいは、次のとおりだ。

  • Ubuntuでよく使われるパッケージ管理インタフェースは、apt(8)
  • 「apt list 《パッケージ名》」でパッケージを検索
  • 「apt show 《パッケージ名》」でパッケージの詳細情報を表示
  • 「apt install 《パッケージ名》」でパッケージをインストール
  • 「apt remove 《パッケージ名》」でパッケージをアンインストール

以前はディストリビューションが異なると、使うパッケージ管理コマンドとそのオプションもだいぶ違っていて困ったものだ。しかし、最近は似たようなコマンドラインインタフェースで管理できるようになってきている。つくづく、良い時代になったものだと思う。