Linux初心者なら、パワフルなコマンドラインツール apt-get を使って、最初の一歩を踏み出してみよう。
WindowsからLinuxへの移行において、ユーザーが最も違和感を覚える変化の一つが、ソフトウェアのインストール方法である。
Windowsユーザーが抱えるのは、ウェブサイトから実行可能ファイルをダウンロードして実行し、既存のライブラリファイル(DLL)を壊したり、疑わしい広告ウェアやマルウェアをインストールしてしまうのではないか、という悩みだろう。
この点、Linuxディストリビューションはパッケージリポジトリを管理しており、各ディストリビューションに対応した形でパッケージが用意され、互換性が確認されているので問題はない。
ここでは、Debianが開発した、UbuntuやRaspberry Pi向けRaspbianなど、多くのディストリビューションで採用されている「Advanced Packaging Tool (apt)」を使用したパッケージ管理の方法について解説する。この手法は、Linux固有のソフトウェアインストール手順を理解する上で、重要なポイントといえる。
リポジトリ
リポジトリとは、Linuxディストリビューションごとに用意されたソフトウェアパッケージのコレクションである。
主要なディストリビューションリリースごとに独自のリポジトリが存在し、パッケージはそのディストリビューション向けにビルドおよびテストされている。しかし、リポジトリとは単なるファイルの集合体に留まらない。
各リポジトリはインデックス化されており、必要なパッケージを容易に検索できる。ユーザーはウェブサイトにアクセスしたり、ソフトウェアを介して自動的に更新を確認する必要がない。パッケージマネージャを用いて更新状況を確認できる。
さらに重要なことに、リポジトリ内の各パッケージはGPGキーによって署名され、悪意ある変更が加えられていないことが保証される。これによりパッケージの整合性が担保され、セキュリティの観点からも信頼できるようになっている。
リポジトリによる依存関係の解決
依存関係とは、インストールしようとしているプログラムが実行に必要な他のプログラム(ライブラリ等)を指す。
Windowsとは異なり、Linuxのパッケージは必要な依存関係をすべて含んでいるわけではない。代わりに依存関係をリスト化し、パッケージマネージャーが必要なものをリポジトリから解決する。
ディストリビューションのデフォルトリポジトリに加え、サードパーティのリポジトリを追加できる。これらは同じテスト基準を満たしているとは限らないが、有名な推奨リポジトリならば十分信頼できる。
Ubuntuでは個々のプロジェクト向けにPPA(Personal Package Archive)という小規模なリポジトリを導入している。これをパッケージマネージャーに追加可能だが、信頼できないソースの場合は注意が必要だ。
パッケージ管理とは
Linuxを始めると「パッケージ管理」という用語は頻繁に登場することに気づくかもしないが、具体的に何を指すのか不明なままこの用語を使っている人も多いだろう。パッケージ管理とは以下の機能を備えたソフトウェアの総称のことである。
- ソフトウェアのインストール、アップデート、アンインストール(依存関係の解決を含む)
- 目的のソフトウェアの検索
- その他の機能(パッケージ情報の表示、設定変更 等)
すべてのLinuxディストリビューションにはコマンドラインベースのパッケージ管理ツールが用意されている。これらはターミナルから、あるいはデスクトップ環境のショートカットキー(Ctrl+Alt+T等)から呼び出せる。グラフィカルなフロントエンドがある場合も、コマンドラインツールは常に利用可能である。主なコマンドは以下の通りだ。
- apt-get
パッケージのインストール、アップグレード、アンインストールを行う。 - apt-cache
リポジトリのインデックスファイルと連動し、パッケージの検索などを行う。 - add-apt-repository
システムに追加のリポジトリを追加する。 - dpkg
より低レベルのパッケージ操作コマンド。
上記コマンドはシステム管理者権限を必要とすることが多い。そのためrootユーザーで実行するか、sudoを利用してroot権限を委譲された上で実行する。ここでは後者のsudoを用いる。
リポジトリはインデックス化されている。最新のパッケージ情報を反映させるため、まずインデックスファイルの更新を行う。
sudo apt-get update
次に、システムが最新の状態になっていることを確認するには
sudo apt-get upgrade
このコマンドは、インストール対象のパッケージリストが表示される。同時に必要なディスク容量も示され、実行確認の後にインストールが開始する。
新しいソフトウェアをインストールする場合、正確な名前が分からない場合は、まず検索を行うことができます。例えば、以下のようにする。
apt-cache search gimp
このコマンドは有名ペイントソフトgimpを含むパッケージの一覧を表示するものだが、gimpと関連するものがたくさんあるため、多くの結果が表示されて見づらい。名前のみを検索したい場合は、-n または –names-only オプションを使用すると見やすい。
apt-cache search -n gimp
このオプションを使っても、表示結果が多くなり過ぎて画面内に収まらなくなることがある。
複数のソフトウェアを同時にインストールすることも可能だ。「sudo apt-get install」コマンドに複数のパッケージ名を指定することで、それらのソフトウェアが一度にインストールされる。
sudo apt-get install program1 program2 program3
インストールした全てのソフトウェアが望んでいたものであるとは限らない。その場合、「sudo apt-get remove」や「sudo apt-get purge」コマンドを用いて不要なパッケージを削除し、ハードディスク空き容量を確保できる。
sudo apt-get remove program1
または、次のように使用できます:
sudo apt-get purge program1
remove コマンドはパッケージのみを削除し設定ファイルは残すのに対し、purge コマンドは設定ファイルも含めて完全にアンインストールする。
追加のオプションについては、ターミナルで「man apt-get」と入力しマニュアルページを参照すると、apt-getと一緒に使用できる追加のオプションが確認できる。
man apt-get
有用なオプションの1つが「–dry-run」。このオプションを利用することで、実際にはインストールや削除が実行されることなく、コマンドによって何が行われるか表示させることができる。
sudo apt-get --dry-run
「dpkg -L」コマンドを利用することで、インストール済みの全パッケージの一覧を表示させることができる。
dpkg -L