Windows、Mac、Linuxごとのインストーラー、仮想実行環境、言語ごとのモジュール(ライブラリ)管理・ビルドツール、ローカルリポジトリによる配布、標準リポジトリ、GitHubでの公開などを紹介。
本連載「ユカイ、ツーカイ、カイハツ環境!」では、開発に役立つさまざまなツール(アプリケーション/ソフトウェア)を紹介してきましたが、皆さんは、PCにアプリケーション/ソフトウェアをインストールするときに、どのようにしていますか?
Windowsを利用している人はインストーラーとなるexeファイルを実行してインストールしたり、Mac(OS X)を利用している人は、dmgファイルをクリックしてインストールしたりと、インストール作業自体は特別に意識していないと思います。
また、AndroidやiPhoneなどのスマートフォンは、アプリケーションストアからアプリケーションを選択するだけで自動的にインストールされるため、インストールファイル自体を意識しないことも多いでしょう。
Windows 8やOS XなどのPCでもオンラインのストアからインストールできるようになってきており、ますますインストールを実行するプログラム「インストーラー」からは疎遠になってきているかもしれません。
しかしながら、アプリケーションの開発者にとっては、ソフトウェアをどのようにインストールするか、ということは非常に重要です。OSや言語、利用するプラットフォームなどによってもアプリケーションのインストール方法やビルド方法は異なりますし、また、アプリケーションの実行に必要なライブラリのインストール方法や、アプリケーションへの組み込み方法も異なります。
本稿では、アプリケーションのインストーラーとライブラリ・パッケージ管理について、あらためて紹介します。
アプリケーションをインストールするインストーラーには、さまざまな形態があります。一番簡単なのは、zipなどのアーカイブファイルを展開して、そのまま利用してもらう形式ですが、「インストールしたアプリケーションが管理できない」「インストール/アンインストール時の設定などを自動的に行えない」などの制限もありますので、通常は、インストーラーからインストールすることになります。
Windows、Mac、LinuxのそれぞれのOSにおけるアプリケーションのインストールについて見ていきましょう。
Windowsのインストーラーは、大きく分けてexeファイルによるインストーラーとmsiによるインストーラーの2種類があります。
ほとんど説明の余地はないと思いますが、ファイルを実行するとアプリケーション、ライブラリがインストールされます。なお、アプリケーションの本体もexe形式になりますので、区別が必要です。
また、圧縮ファイルとしてのexe形式もあり、こちらは実行すると解凍されます。
「Windows Installer」と呼ばれる、Windowsのインストールプログラムによりインストールされる形式です。
上記のexe形式には、ファイル自身にプログラムをインストールする機能を持っていますが、msi形式の場合、インストールするリソースの情報だけを持っており、実際のインストールはWindows Installerにより行うため、exe形式に比べ、ファイルサイズを小さくできます。
また、インストール実行時にネットワークを経由して必要なファイルをダウンロード、インストールするオンラインインストールや、電子署名により、ファイルの改ざんを防止する機能などがあります。
Visual Studioを利用すれば、msiを利用したexe形式としてインストーラーを作成でき、その場合、.NET Frameworkなど、必要なソフトウェアをインストーラーがインストールできていない場合、一緒にインストールさせることもできます。
appファイルはアプリケーションファイルでクリックすると実行できます。Windowsのexeファイルに似ています。多くの場合、下記のdmgファイル内に収められており、dmgファイルをクリックすることで、中のappファイルを[アプリケーション]フォルダーにコピーしてインストールできます。
Macのアプリケーションのインストールによく利用されるdmgは、ディスクイメージファイルのことです。実際には、インストーラーではありません。dmg内にアプリケーションファイル「app」やパッケージファイル「pkg」が存在すると、dmgファイルをクリックしたときに、dmgファイルに含まれるアプリケーションやパッケージをインストールできます。
pkgファイルは、パッケージファイルのことです。pkgファイルを選択すると、Macのインストーラーがpkgファイルをインストールしてくれます。appファイルがWindowsのexeファイル(インストーラーではなく、アプリケーション実行の方)に相当するなら、pkgファイルはmsiファイルに相当します。
UNIX系のオープンソースOS「FreeBSD」は、「Ports」と呼ばれるパッケージ管理システムを持っていますが、MacPortsは、そのPortsにインスパイアされたパッケージ管理システムです。MacPortsは、Macの開発元であるアップル社のエンジニアたちによって、開発が始められました。
上記、dmg、pkgはダウンロードしたディスクイメージ、パッケージをインストールしますが、MacPortsは、リポジトリ上に用意されたパッケージを検索し、インストールできます。
また、あるパッケージを利用したい場合、別のパッケージがその動作に必要なことがありますが、動作に必要なパッケージも同時にインストールしてくれます。
MacPortsは、既にビルドされたバイナリパッケージがリポジトリ上に存在する場合は、バイナリパッケージをインストールし、バイナリパッケージがなければ、ソースコードをダウンロードし、マシン上でビルド、インストールを行います。
2014年3月の原稿執筆時点で1万8238ものパッケージが提供されています。
Homebrewは、アップル社が提供していないアプリケーションを提供することを目的に作られました。
ソースコードをビルドしてインストールするという点は、MacPortsに似ていますが、HomebrewのパッケージはMacで利用できるライブラリは極力Macのものを利用するように作成されています。そのため、インストールするパッケージがMacPortsより少なく、インストールも速いことから登場当初から人気を博していました。
Homebrewは、当初全てのソフトウェアをソースコードからビルドしてインストールするスタイルでしたが、ビルド済みのバイナリを提供する「homebrew-binary」も途中から提供され始めました。
Homebrewは、2013年のGitHubの統計で、GitHub上でコントリビューター数が最も多く、また、Issueが最も多いプロジェクトとして、注目されています。
Linuxは、ディストリビューションごとにパッケージインストールの仕組みが異なります。
Ubuntu/Debianなどでは、「apt」(Advanced Package Tool)と呼ばれるパッケージシステムを利用しており、「deb」ファイルからアプリケーションをインストールします。
CentOSやレッドハット系のディストリビューションでは、パッケージ形式に「rpm」(RedHat Package Manager)を利用し、「yum」コマンドでアプリケーションをインストールします。
ちょっと変わったところではGentooがあります。これはパッケージインストール時にソースコードをコンパイルすることもでき、MacPortsやHomebrewに似ています。
Copyright © ITmedia, Inc. All Rights Reserved.