連載
» 2014年04月01日 18時00分 UPDATE

ユカイ、ツーカイ、カイハツ環境!(32):exe/dmgしか知らない人のためのインストール/パッケージ管理/ビルドの基礎知識 (1/4)

Windows、Mac、Linuxごとのインストーラー、仮想実行環境、言語ごとのモジュール(ライブラリ)管理・ビルドツール、ローカルリポジトリによる配布、標準リポジトリ、GitHubでの公開などを紹介。

[岡本隆史,@IT]

開発者がいまさら聞けない「インストール」に関するまとめ

 本連載「ユカイ、ツーカイ、カイハツ環境!」では、開発に役立つさまざまなツール(アプリケーション/ソフトウェア)を紹介してきましたが、皆さんは、PCにアプリケーション/ソフトウェアをインストールするときに、どのようにしていますか?

 Windowsを利用している人はインストーラーとなるexeファイルを実行してインストールしたり、Mac(OS X)を利用している人は、dmgファイルをクリックしてインストールしたりと、インストール作業自体は特別に意識していないと思います。

 また、AndroidやiPhoneなどのスマートフォンは、アプリケーションストアからアプリケーションを選択するだけで自動的にインストールされるため、インストールファイル自体を意識しないことも多いでしょう。

 Windows 8やOS XなどのPCでもオンラインのストアからインストールできるようになってきており、ますますインストールを実行するプログラム「インストーラー」からは疎遠になってきているかもしれません。

 しかしながら、アプリケーションの開発者にとっては、ソフトウェアをどのようにインストールするか、ということは非常に重要です。OSや言語、利用するプラットフォームなどによってもアプリケーションのインストール方法やビルド方法は異なりますし、また、アプリケーションの実行に必要なライブラリのインストール方法や、アプリケーションへの組み込み方法も異なります。

 本稿では、アプリケーションのインストーラーとライブラリ・パッケージ管理について、あらためて紹介します。

OSごとのインストールパッケージ/インストーラー

 アプリケーションをインストールするインストーラーには、さまざまな形態があります。一番簡単なのは、zipなどのアーカイブファイルを展開して、そのまま利用してもらう形式ですが、「インストールしたアプリケーションが管理できない」「インストール/アンインストール時の設定などを自動的に行えない」などの制限もありますので、通常は、インストーラーからインストールすることになります。

 Windows、Mac、LinuxのそれぞれのOSにおけるアプリケーションのインストールについて見ていきましょう。

Windows

 Windowsのインストーラーは、大きく分けてexeファイルによるインストーラーとmsiによるインストーラーの2種類があります。

 ほとんど説明の余地はないと思いますが、ファイルを実行するとアプリケーション、ライブラリがインストールされます。なお、アプリケーションの本体もexe形式になりますので、区別が必要です。

 また、圧縮ファイルとしてのexe形式もあり、こちらは実行すると解凍されます。

  • msi形式のインストーラー

 「Windows Installer」と呼ばれる、Windowsのインストールプログラムによりインストールされる形式です。

 上記のexe形式には、ファイル自身にプログラムをインストールする機能を持っていますが、msi形式の場合、インストールするリソースの情報だけを持っており、実際のインストールはWindows Installerにより行うため、exe形式に比べ、ファイルサイズを小さくできます。

 また、インストール実行時にネットワークを経由して必要なファイルをダウンロード、インストールするオンラインインストールや、電子署名により、ファイルの改ざんを防止する機能などがあります。

 Visual Studioを利用すれば、msiを利用したexe形式としてインストーラーを作成でき、その場合、.NET Frameworkなど、必要なソフトウェアをインストーラーがインストールできていない場合、一緒にインストールさせることもできます。

Mac(OS X)

  • appファイル

 appファイルはアプリケーションファイルでクリックすると実行できます。Windowsのexeファイルに似ています。多くの場合、下記のdmgファイル内に収められており、dmgファイルをクリックすることで、中のappファイルを[アプリケーション]フォルダーにコピーしてインストールできます。

  • dmg(ディスクイメージファイル)

 Macのアプリケーションのインストールによく利用されるdmgは、ディスクイメージファイルのことです。実際には、インストーラーではありません。dmg内にアプリケーションファイル「app」やパッケージファイル「pkg」が存在すると、dmgファイルをクリックしたときに、dmgファイルに含まれるアプリケーションやパッケージをインストールできます。

  • pkg形式のインストーラー

 pkgファイルは、パッケージファイルのことです。pkgファイルを選択すると、Macのインストーラーがpkgファイルをインストールしてくれます。appファイルがWindowsのexeファイル(インストーラーではなく、アプリケーション実行の方)に相当するなら、pkgファイルはmsiファイルに相当します。

  • パッケージ管理システム「MacPorts
devtool32_02.jpg MacPorts

 UNIX系のオープンソースOS「FreeBSD」は、「Ports」と呼ばれるパッケージ管理システムを持っていますが、MacPortsは、そのPortsにインスパイアされたパッケージ管理システムです。MacPortsは、Macの開発元であるアップル社のエンジニアたちによって、開発が始められました。

 上記、dmg、pkgはダウンロードしたディスクイメージ、パッケージをインストールしますが、MacPortsは、リポジトリ上に用意されたパッケージを検索し、インストールできます。

 また、あるパッケージを利用したい場合、別のパッケージがその動作に必要なことがありますが、動作に必要なパッケージも同時にインストールしてくれます。

 MacPortsは、既にビルドされたバイナリパッケージがリポジトリ上に存在する場合は、バイナリパッケージをインストールし、バイナリパッケージがなければ、ソースコードをダウンロードし、マシン上でビルド、インストールを行います。

 2014年3月の原稿執筆時点で1万8238ものパッケージが提供されています。

  • パッケージ管理システム「Homebrew
devtool32_03.jpg Homebrew

 Homebrewは、アップル社が提供していないアプリケーションを提供することを目的に作られました。

 ソースコードをビルドしてインストールするという点は、MacPortsに似ていますが、HomebrewのパッケージはMacで利用できるライブラリは極力Macのものを利用するように作成されています。そのため、インストールするパッケージがMacPortsより少なく、インストールも速いことから登場当初から人気を博していました。

 Homebrewは、当初全てのソフトウェアをソースコードからビルドしてインストールするスタイルでしたが、ビルド済みのバイナリを提供する「homebrew-binary」も途中から提供され始めました。

 Homebrewは、2013年のGitHubの統計で、GitHub上でコントリビューター数が最も多く、また、Issueが最も多いプロジェクトとして、注目されています。

Linux

 Linuxは、ディストリビューションごとにパッケージインストールの仕組みが異なります。

  • パッケージ管理システム「apt」

 Ubuntu/Debianなどでは、「apt」(Advanced Package Tool)と呼ばれるパッケージシステムを利用しており、「deb」ファイルからアプリケーションをインストールします。

  • パッケージ管理システム「rpm」

 CentOSやレッドハット系のディストリビューションでは、パッケージ形式に「rpm」(RedHat Package Manager)を利用し、「yum」コマンドでアプリケーションをインストールします。

  • Gentooの場合

 ちょっと変わったところではGentooがあります。これはパッケージインストール時にソースコードをコンパイルすることもでき、MacPortsやHomebrewに似ています。

       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。