Linuxシステムに不慣れなユーザーにとって、新しいソフトウェアのインストール方法が不明瞭な場合がある。
Windows系OSでは、通常ソフトウェアの公式ウェブサイトから実行ファイルをダウンロードし、それを実行することでインストールが完了する。しかしLinuxディストリビューションでは、このような方法を採らない。
Linux上のソフトウェアは、たいていソースコードとして配布される。個々のディストリビューションは、このソースコードからパッケージを作成することで、対象ソフトウェアをそのディストリビューション上の他のソフトウェアとの互換性を保ちつつインストール可能な形式にする。
ユーザーはディストリビューションが提供するパッケージマネージャを利用して、必要なソフトウェアの検索とインストールを行う。これによって、依存関係の解決や更新の通知などもなされる。
ウェブサイトの確認や、実行ファイルの直接ダウンロード、といったWindowsで必要な手間が省けるという利点がある。
tarball
利用しているLinuxディストリビューション向けのパッケージがソフトウェアセンターなどに存在せず、開発者サイトでソースコードのみが提供されている場合がある。
このときインストールを実現するには、tarballと呼ばれるアーカイブファイルを利用する手法がある。
tarballとは、圧縮して一つのファイルにまとめられたソースコードや関連ファイルの集合体である。一般にLinuxへのソフトウェアインストールにはパッケージマネージャが使用されるが、パッケージがない状況下でも、tarballを展開し、中のソースコードをコンパイル・インストールすることで、目的のソフトウェアを利用可能とすることができる。
ただし、パッケージマネージャ経由のインストールに比べて、システムへの統合が難しく、バージョン管理もユーザーの手動作業に依存するというデメリットがある。
圧縮に利用されるツールには、代表的にgzip, bzip2, compress, xz等がある。利用した圧縮ツールによってtarballファイルの拡張子が異なり、たとえばtar + gzipでは「.tar.gz」、tar + bzip2では「.tar.bz2」のように表記されることが多い。
ソフトウェアを配布する際に、ソースコードやドキュメント類をtarball形式で配布することが定番となっている。利用者はこのtarballファイルを展開することで内容ファイルを利用でき、特にソースコードの場合はコンパイル・インストールを行える。
具体的には、まず開発者のWebサイトから目的のソフトウェアのtarballをダウンロードする。その後、適切なディレクトリにtarballを展開、ソースコードをコンパイルする。コンパイルには通常、”./configure”、”make”、”make install”というコマンドが順に実行される。
これにより、ソースコードからバイナリ実行ファイルが生成され、システムの適切な位置にインストールされる。tarballによるインストールはパッケージマネージャを介さないため、システムへの統合が難しいが、最新の開発版ソフトウェアを利用できる。
インストール手順
まず、ダウンロードしたtarballファイルやZIPファイルの中からReadmeやInstallなどのドキュメントを探し、ソフトウェアのインストール手順を確認する。ソフトウェアによって異なるが、多くのオープンソースプロジェクトでは標準的なオートツールシステムが採用されている。
これは以下の3つのコマンドを順に実行することで、ソースコードのコンパイルとインストールを実現する。
./configure
make
sudo make install
まず最初のconfigureコマンドが、依存関係を満たしているかをチェックし、ビルド環境を現在のシステムに最適化する。次にmakeコマンドがソースコードをバイナリ実行ファイルにコンパイルする。
最後にsudoを付けたmake installが、コンパイルした実行ファイルを適切なディレクトリにインストールし設定を行う。この一連の処理によって、ソースコードからシステム上で実行可能なアプリケーションが構築される。
ただし、これらのコマンドをそのまま打ち込んでも正常にインストールできるわけではない。ソフトウェアによってもインストール方法が異なる。ダウンロード元のサイトや、tarballファイル内のReadme、Installファイルを読んで調べておこう。
tarballを用いたインストールで使用するlinuxコマンド
tarballを用いたインストールでは特定のコマンドを使用することがあるので、意味を理解しておくといい。
- tar – ファイルやディレクトリをアーカイブ化するツール。tarballファイルの展開や作成に使用。
- gzip, bzip2, xz – tarballファイルの圧縮に利用される一般的な圧縮ツール。
- configure – ソースコードのビルド設定を行うスクリプト。依存関係やコンパイルオプションの指定などを行う。
- make – ソースコードからビルド(コンパイル・リンク)を行う際に利用するビルドツール。GNU製makeがデフォルト。
- sudo – 管理者権限でコマンドを実行するために利用する。make install時に必要。
- cd – カレントディレクトリを変更するコマンド。tarballの展開やソースコードディレクトリへの移動に使用する。
- ./ – カレントディレクトリ内の実行ファイルを指定するのに利用する記号。
以上のコマンドは、一般的なtarballからのソフトウェアインストールの場面で頻出する重要なものである。tarやmake、sudoなどはパッケージインストール以外でも利用頻度が高い。
また、cdコマンドは引数としてパスを指定することで、そのディレクトリへ移動する。
例:
cd /home/user/downloads # ダウンロードディレクトリへ移動
cd .. # 一つ上の階層ディレクトリへ移動
tarballからソフトウェアをインストールする際に必要なツールやコマンドは、システムにデフォルトでインストールされていない場合がある。sudoやmakeといったコマンドは、ソースビルドに不可欠なものだが、これすらプリインストールされていないディストリビューションも存在する。
これらがインストールされていない場合は、事前にインストールしておくことを強く推奨する。コマンドでもインストールできる。
sudo apt install make sudo
ディストリビューションによっては「build-essential」といったソースビルド関連パッケージも用意されているので、これをインストールすることで一括で必要なツールを揃えることができる。
システム上にtarやmake、sudoコマンドがない場合はtarballでのインストール自体が不可能になるため、これらの環境構築はしておこう。
tarballファイルのダウンロードフォルダや展開後のソースコードディレクトリ間を移動する際、cdコマンドは頻繁に利用される。Linuxシェルの基本操作の一つであるため覚えておくこと。
アンインストール
ソースコードからコンパイルしていく方法を利用するには、GCCやGNU make、patchなどの標準的なビルドツールがインストール済みである必要がある。主要なLinuxディストリビューションの多くには、「build-essential」などの名前で、ソースビルドに必要なツールの集合をパッケージ化したものが用意されている。
ソースからのインストール後は、後にアンインストールを行うことを考慮し、ビルドを行ったソースディレクトリを削除せず保管しておくべきである。アンインストールする際には、そのディレクトリに移動した上で「sudo make uninstall」を実行し、適切にソフトウェアをシステムから削除することができる。
sudo make uninstall