(57)【要約】【課題】あるソフトウェアのインストール中にエラーが発生しても、その他のソフトウェアのインストールを行うことができるインストールエラー処理方法を提供する。【解決手段】複数のソフトウェアを連続してインストールするインストーラにおいて、ソフトウェアのインストール中エラーを検出する。前記エラーを起こしたソフトウェアのインストールを中断し、前記エラーを起こしたソフトウェアの次にインストールを予定していたソフトウェアのインストールからインストールを再開する。更に、前記複数のソフトウェアの中に親子関係があれば、その親子関係を記録する。インストールを予定しているソフトウェアの親ソフトウェアのインストールが完了していなければ、前記インストールを予定しているソフトウェアのインストールを中断する。【選択図】図１０
2008204290.tif 000002
【特許請求の範囲】
【請求項１】
複数のソフトウェアを連続してインストールするインストーラのインストール中のエラーを処理するインストールエラー処理方法であって、
前記ソフトウェアのインストール中のエラーを検出する検出工程と、
前記エラーを起こしたソフトウェアのインストールを中断する中断工程と、
前記エラーを起こしたソフトウェアの次にインストールを予定していたソフトウェアのインストールからインストールを再開する再開工程とを有することを特徴とするインストールエラー処理方法。
【請求項２】
前記複数のソフトウェアの中に親子関係が有るか否かを判定する判定工程と、前記親子関係が有れば、その親子関係を記録する記録工程とを有し、
インストールを予定しているソフトウェアの親ソフトウェアのインストールが前記中断工程によって中断されていた場合は、前記インストールを予定しているソフトウェアのインストールを中断することを特徴とする請求項１記載のインストールエラー処理方法。
【請求項３】
前記中断工程とは別に、全てのソフトウェアのインストールを中止する中止工程を有することを特徴とする請求項１または２に記載のインストールエラー処理方法。
【請求項４】
前記中断工程によりインストールが中断されたソフトウェアを、全てのソフトウェアのインストール後に通知する通知工程を有することを特徴とする請求項１乃至３のいずれか１項に記載のインストールエラー処理方法。
【請求項５】
前記記録工程によって、インストール中にエラーを発生したソフトウェアに親ソフトウェアが存在することが判明した場合に、前記通知工程には、前記インストール中にエラーを発生したソフトウェアだけでなく、前記親ソフトウェアも通知することを特徴とする請求項４に記載のインストールエラー処理方法。
【請求項６】
前記記録工程によって、前記親ソフトウェアに対して更に親ソフトウェアが存在することが判明した場合に、最上位の親ソフトウェアまでの全てのソフトウェアを前記通知工程で通知することを特徴とする請求項５に記載のインストールエラー処理方法。
【請求項７】
前記中断工程によりインストールが中断されたソフトウェアの全ての子ソフトウェアを、インストールを中断したソフトウェアとして前記通知工程で通知することを特徴とする請求項４に記載のインストールエラー処理方法。
【請求項８】
前記中止工程により中止された全ソフトウェアを、インストールを中止したソフトウェアとして前記通知工程で通知することを特徴とする請求項３または４に記載のインストールエラー処理方法。
【請求項９】
前記検出工程でエラーが検出された場合でも、前記通知工程で通知しない設定をソフトウェア毎に行うことを特徴とする請求項４乃至７のいずれか１項に記載のインストールエラー処理方法。
【請求項１０】
複数のソフトウェアを連続してインストールするインストーラを有する情報処理装置であって、
前記インストーラは、
前記ソフトウェアのインストール中のエラーを検出する検出手段と、
前記エラーを起こしたソフトウェアのインストールを中断する中断手段と、
前記エラーを起こしたソフトウェアの次にインストールを予定していたソフトウェアのインストールからインストールを再開する再開手段とを有することを特徴とする情報処理装置。
【請求項１１】
複数のソフトウェアを連続してインストールするインストーラのインストール中のエラーを処理する処理方法を実行するための、コンピュータで読み取り可能な制御プログラムであって、前記処理方法は、
前記ソフトウェアのインストール中のエラーを検出する検出工程と、
前記エラーを起こしたソフトウェアのインストールを中断する中断工程と、
前記エラーを起こしたソフトウェアの次にインストールを予定していたソフトウェアのインストールからインストールを再開する再開工程とを有することを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのインストール時に発生するエラーを処理するインストールエラー処理方法、このインストールエラー処理方法を実施する情報処理装置、前記インストールエラー処理方法を実行するための制御プログラムに関する。
【背景技術】
【０００２】
近年、ＣＤ−ＲＯＭなどの交換可能なメディアやインターネットなどのネットワークシステムで、プログラムファイルやデータファイルを配布することは一般的に行われている。その際に、配布されたプログラムを配布先のコンピュータシステムで実行可能にするために、インストーラと呼ばれるプログラムを配布対象プログラムに同梱して配布することが一般的である。インストーラとは、配布先のコンピュータシステムに接続されたハードディスクなどの記憶装置に、配布されたファイルをコピーしたり、オペレーティングシステム上に必要な設定を自動的に行ったりするプログラムである。
【０００３】
通常、ソフトウェアのインストールに必要となる処理は、ソフトウェアによって少しずつ異なるため、あるソフトウェアを配布する際には、そのソフトウェア専用のインストーラが作成され、ソフトウェアに同梱されて配布される。このようなインストーラの作成作業の負荷を軽減するために、インストーラ作成ツールと呼ばれるソフトウェアを用いて、インストーラを半自動的に作成することが一般的に行われている。
【０００４】
また、近年、ソフトウェアの大規模化に伴い、ソフトウェアを複数のコンポーネントに分離し、それぞれを独立して開発することが行われるようになった。このような開発形態においては、全てのコンポーネントで、開発や市場への配布日程を同期させる必要がないという利点がある。しかし、この開発形態を効率的に動作させるためには、それぞれのコンポーネントのインストーラについても、独立で開発を進められることが望ましい。
【０００５】
例えば、あるソフトウェアＡにコンポーネントＢ及びコンポーネントＣが含まれる場合を例として考える。インストーラが独立していない場合、この例においては、インストーラとしてソフトウェアＡとコンポーネントＢとコンポーネントＣを同時にインストールするための単一インストーラを作成する。そのため、コンポーネントＣの修正を行う場合には、前記インストーラを修正する必要があり、そのため、修正を行っていないソフトウェアＡとコンポーネントＢについても同時に配布する必要があった。
【０００６】
このような問題を避けるため、一般的に行われている手法としては、例えば上記に例において、ソフトウェアＡのインストーラと、コンポーネントＢのインストーラと、コンポーネントＣのインストーラをそれぞれ独立に設ける。その上で、これら独立するソフトウェアを同時にインストールする必要がある利用者のために、これら複数のインストーラを連続して実行するためのマスターインストーラと呼ばれるプログラムを同時に配布することで問題を解決している。
【０００７】
また、このような構成は、複数の関連したソフトウェアを同時に配布する場合にも利用することができる。例えば、ソフトウェアをパッケージとしてＣＤ−ＲＯＭなどを用いて販売する場合や、特定のハードウェアに同梱されるソフトウェアにおいて、このような場合が発生する。例えば、デジタルカメラに同梱されているＣＤ−ＲＯＭには、そのハードウェアを利用するための画像管理ソフトウェアや、画像パノラマ合成ソフトウェアや、ハードウェアのデバイスドライバなどが同梱されているものがある。この場合、通常、それらを連続してインストールするためのマスターインストーラも用意され、利用者はこれを用いることで全てのソフトウェアを連続してインストールすることができる。
【０００８】
複数のソフトウェアを連続してインストールするマスターインストーラは、従来より既に利用されており、複数のソフトウェアを連続してインストールする際のエラーに関しては、例えば次のような技術がある。
【０００９】
例えば、マスターインストーラから起動されたあるソフトウェアのインストーラがエラーを引き起こすと、インストーラはエラーが発生したことを検知し、利用者にエラーを伝える。さらに、マスターインストーラに対してエラーを通知し、それを受け取ったマスターインストーラはそのソフトウェア以降にインストールを予定していた全てのソフトウェアのインストールを行わないようにする。この技術では、エラー発生時に全てのソフトウェアのインストールが行われないので、インストール可能なソフトウェアであってもインストールすることができず、利用者にとっては不便であった。
【００１０】
このような問題を解決する技術として、例えば特許文献１や特許文献２に開示されるような技術が提案されている。この技術では、例えば、あるソフトウェアのインストール中にエラーが発生した場合、一旦インストール処理を停止させるものの、再度エラー発生箇所からインストールを再開し、インストールを継続させる。これにより、エラーを引き起こした原因が取り除かれれば、エラー発生以降のソフトウェアのインストールを行うことが可能となる。
【特許文献１】特開平１１−３５３１８７号公報
【特許文献２】特開２０００−１２２８５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記特許文献１や特許文献２の技術には次のような問題がある。即ち、エラーを引き起こした原因が取り除かれない限り、エラー発生以降にインストールを予定しているソフトウェアのインストールを行うことができない。
【００１２】
本発明は上記従来の問題点に鑑み、インストーラにおいて、あるソフトウェアのインストール中にエラーが発生しても、その他のソフトウェアのインストールを行うことができるインストールエラー処理方法を提供することを目的とする。また、前記インストールエラー処理方法を実施する情報処理装置、及び前記インストールエラー処理方法を実行するための制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明のインストールエラー処理方法は、複数のソフトウェアを連続してインストールするインストーラのインストール中のエラーを処理するインストールエラー処理方法であって、前記ソフトウェアのインストール中のエラーを検出する検出工程と、前記エラーを起こしたソフトウェアのインストールを中断する中断工程と、前記エラーを起こしたソフトウェアの次にインストールを予定していたソフトウェアのインストールからインストールを再開する再開工程とを有することを特徴とする。
【００１４】
また、本発明の情報処理装置は、複数のソフトウェアを連続してインストールするインストーラを有する情報処理装置であって、前記インストーラは、前記ソフトウェアのインストール中のエラーを検出する検出手段と、前記エラーを起こしたソフトウェアのインストールを中断する中断手段と、前記エラーを起こしたソフトウェアの次にインストールを予定していたソフトウェアのインストールからインストールを再開する再開手段とを有することを特徴とする。
【００１５】
また、本発明の制御プログラムは、複数のソフトウェアを連続してインストールするインストーラのインストール中のエラーを処理するインストールエラー処理方法を実行するための、コンピュータで読み取り可能な制御プログラムであって、前記処理方法は、前記ソフトウェアのインストール中のエラーを検出する検出工程と、前記エラーを起こしたソフトウェアのインストールを中断する中断工程と、前記エラーを起こしたソフトウェアの次にインストールを予定していたソフトウェアのインストールからインストールを再開する再開工程とを有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、複数のソフトウェアを連続してインストールするインストーラにおいて、あるソフトウェアのインストール中にエラーが発生しても、その他のインストール可能なソフトウェアを全てインストールすることが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１８】
＜システム構成＞
図１は、本発明の実施の形態に係るインストールエラー処理方法を実施するための情報処理システムの構成を示す模式図である。
【００１９】
この情報処理システムは、本実施の形態に係る制御プログラムを実行する制御部１０１Ａを備えたコンピュータ１０１を備えている。制御部１０１Ａは、プログラムを演算処理するＣＰＵ、ＣＰＵのワークエリアであるＲＡＭ、及び制御プログラムを格納したＲＯＭを有している。コンピュータ１０１には、ディスプレイ１０２、キーボード１０３、マウス１０４、光学ディスクドライブ１０６、及びハードディスク１０７が接続されている。交換可能な光ディスク１０５には、アプリケーションプログラムやデータなどが記録されており、コンピュータ１０１は、光学ディスクドライブ１０６に挿入された光ディスク１０５から読み取ったプログラムを実行する。
【００２０】
コンピュータ１０１は、接続されたディスプレイ１０２に描画を行い、システムの利用者に対して確認メッセージを表示したり、システムの状況を通知したりする。システムの利用者は、キーボード１０３やマウス１０４を使用して、ディスプレイ１０２に表示された確認メッセージに対して応答することができる。
【００２１】
コンピュータ１０１は、光学ディスク１０５から読み取ったプログラムに従い、光ディスク１０５に記録されているデータをハードディスク１０７にコピーしたり、ハードディスク１０７に記録されているデータを書き換えたりすることができる。また、本システムにおいては、光ディスク１０５は交換可能であり、別の光ディスク１０５からもプログラムやデータを読み込むことができる。
【００２２】
＜ソフトウェアのフォルダ構成＞
図２は、図１中の光ディスク１０５に記録されているソフトウェアのフォルダ構成図である。
【００２３】
光ディスク１０５内には、ソフトウェアのインストールを行うインストーラ実行ファイル（setup.exe）６０１と、インストーラ実行ファイル６０１の動作を制御するためのインストーラ動作設定ファイル（master.ini）６０２が存在している。また、光ディスク１０５内には、インストーラ実行ファイル６０１によってインストールされるソフトウェアが存在している。
【００２４】
光ディスク１０５に記録されたソフトウェアは、ソフトウェア毎にフォルダが分かれており、それぞれのフォルダの中には、それぞれのソフトウェアのインストールに必要なデータ及び情報が含まれている。フォルダ６０３からフォルダ６３３までのフォルダの中には、「application Ａ」から「application Ｋ」までのインストールに必要なデータ及び情報が含まれている。
【００２５】
具体的には、フォルダ６０３には、ソフトウェアインストール設定ファイル６０４及びソフトウェア構成ファイル６０５が含まれ、フォルダ６０６には、ソフトウェアインストール設定ファイル６０７及びソフトウェア構成ファイル６０８が含まれる。フォルダ６０９には、ソフトウェアインストール設定ファイル６１０及びソフトウェア構成ファイル６１１が含まれる。フォルダ６１２には、ソフトウェアインストール設定ファイル６１３及びソフトウェア構成ファイル６１４が含まれる。
【００２６】
フォルダ６１５には、ソフトウェアインストール設定ファイル６１６及びソフトウェア構成ファイル６１７が含まれ、フォルダ６１８には、ソフトウェアインストール設定ファイル６１９及びソフトウェア構成ファイル６２０が含まれる。フォルダ６２１には、ソフトウェアインストール設定ファイル６２２及びソフトウェア構成ファイル６２３が含まれ、フォルダ６２４には、ソフトウェアインストール設定ファイル６２５及びソフトウェア構成ファイル６２６が含まれる。
【００２７】
フォルダ６２７には、ソフトウェアインストール設定ファイル６２８及びソフトウェア構成ファイル６２９が含まれ、フォルダ６３０には、ソフトウェアインストール設定ファイル６３１及びソフトウェア構成ファイル６３２が含まれる。フォルダ６３３には、ソフトウェアインストール設定ファイル６３４及びソフトウェア構成ファイル６３５が含まれる。
【００２８】
本例の光ディスク１０５に記録されているインストーラ実行ファイル６０１を本システム上で実行すると、「application Ａ」から「application Ｋ」の、合計１１種類のソフトウェアがハードディスク１０７にインストールされる。
【００２９】
＜ソフトウェア間の親子関係＞
図３は、光ディスク１０６に記録されているソフトウェアの親子関係とインストール順序を示す図である。
【００３０】
本例のソフトウェアには、それぞれのソフトウェア間に図３のような親子関係が存在する。
【００３１】
親子関係とは、ソフトウェア間に存在する一方通行の依存を意味している。図３の中から例を挙げる。６０３に示した「application Ａ」と６０６に示した「application Ｂ」は、それぞれ独立に開発されたソフトウェアである。６０３に示した「application Ａ」がインストールされていなければ、６０６に示した「application Ｂ」のインストールが成功しても、６０６に示した「application Ｂ」が動作しない。この場合、６０３に示した「application Ａ」と６０６に示した「application Ｂ」を親子関係にあるソフトウェアと呼ぶ。また、親子関係の親は６０３に示した「application Ａ」となり、子は６０６に示した「application Ｂ」になる。
【００３２】
さらに別のケースとして、次の場合にも親子関係が成立する。６１２に示した「application Ｄ」がインストールされていなければ、６１５に示した「application Ｅ」のインストールを完了させることができない場合も、２つのソフトウェアを親子関係にあるソフトウェアと呼ぶ。この場合も、６１２に示した「application Ｄ」が親であり、６１５に示した「application Ｅ」が子となる。
【００３３】
さらに、プラグインのようにソフトウェアに対して追加機能を提供するプログラムに関しても、親子関係が成立する。機能を追加すべきソフトウェアがインストールされていない場合、機能を追加するプラグインのインストールを行っても意味がない。この場合、プラグインによって機能を追加されるソフトウェアを親ソフトウェアとし、プラグインを子ソフトウェアとする。図３では、６０６に示した「application Ｂ」がプラグインに相当し、「application Ｂ」によって機能を追加されるソフトウェアが、「application Ｂ」に対して親ソフトウェアとなる。
【００３４】
図３の例では、このような親子関係を、ソフトウェア間を横につなげる線で表現している。あるソフトウェアの右側から別のソフトウェアへの線が延びていたら、そのソフトウェアは親ソフトウェアであり、そのソフトウェアには子ソフトウェアが存在すること意味している。例えば図３では、「setup.exe」６０１が最上位の親ソフトウェアとなっている。なお、親ソフトウェアには複数の子ソフトウェアを対応させることができる。例えば図３では、「setup.exe」６０１を親ソフトウェアとして、６０３に示した「application Ａ」と、６３０に示した「application Ｊ」と、６３３に示した「application Ｋ」の３つの子ソフトウェアが存在する。
【００３５】
このような親子関係を、「setup.exe」６０１は、インストーラ動作設定ファイル６０２とソフトウェアインストール設定ファイル６０４、６０７、６１０、６１３、６１６、６１９、６２２、６２５、６２８、６３１、６３４から読み取ることができる。
【００３６】
「setup.exe」６０１は、起動すると、最初にインストーラ動作設定ファイル６０２を読み込む。図４は、インストーラ動作設定ファイル６０２の記載例を示す図である。同図において、セクション７０１は「setup.exe」６０１の動作上の名前が記載されているセクションであり、「setup.exe」６０１は、このセクション７０１で指定された名前のインストーラとして動作する。続いて、セクション７０２には、「setup.exe」６０１の子ソフトウェアとしてインストールされる、ソフトウェアのソフトウェアインストール設定ファイルへのパスが書かれている。ソフトウェアインストール設定ファイルへのパスは複数記述することができる。
【００３７】
このように、「setup.exe」６０１は、インストーラ動作設定ファイル６０２を読み込むことで、子ソフトウェアの存在と、その子ソフトウェアのソフトウェアインストール設定ファイルのパスを理解する。
【００３８】
「setup.exe」６０１は、インストーラ動作設定ファイル６０２の解析を終えると、ソフトウェア間の親子関係を把握するために、次のような処理を行う。即ち、インストーラ動作設定ファイル６０２の記載内容に従い、「setup.exe」６０１の子ソフトウェアが持つソフトウェアインストール設定ファイルの解析を開始する。
【００３９】
例えば、インストーラ動作設定ファイル６０２に子ソフトウェアとして記載されている、６０３に示した「application Ａ」のソフトウェアインストール設定ファイル６０４には、図５（ａ）に示すような記載がある。セクション８０１には、インストールするソフトウェアの名前が指定されている。６０６に示した「application Ａ」は、セクション８０１で指定された名前のソフトウェアとしてインストールされる。セクション８０２には、６０６に示した「application Ａ」の子ソフトウェアとしてインストールされるソフトウェアの名前が列挙されている。ここでは、複数の子ソフトウェアを列挙することができる。
【００４０】
セクション８０３には、セクション８０２で子ソフトウェアとして列挙したソフトウェアのソフトウェアインストール設定ファイルへのパスが書かれている。ソフトウェアインストール設定ファイル６０４を解析することで、「application Ａ」には、「application Ｂ」、「application Ｃ」、「application Ｇ」、及び「application Ｈ」といった５つの子ソフトウェアの存在を確認できる。さらに、それらのソフトウェアインストール設定ファイルへのパスを取得することができる。
【００４１】
「setup.exe」６０１は、５つ存在する子ソフトウェアのそれぞれのソフトウェアインストール設定ファイルへのパスを基に、５つ存在する子ソフトウェアが持つそれぞれのソフトウェアインストール設定ファイルの解析を行う。解析の結果、そのソフトウェアに対しても子ソフトウェアが存在した場合、更に深い階層の子ソフトウェアの解析を行う。このように、あるソフトウェアに子ソフトウェアが存在する場合、必ず、その子ソフトウェアのソフトウェアインストール設定ファイルの解析を優先して行う。
【００４２】
なお、子ソフトウェアを持たないソフトウェアの場合は、ソフトウェアインストール設定ファイルには子ソフトウェアの情報を記載しない。例えば、６２７に示した「application Ｉ」は、子ソフトウェアを持っていない。この場合、インストール設定ファイル６２８は、図５（ｂ）のような記載となる。インストール設定ファイル６２８では、子ソフトウェアに関する情報を記載するセクションが省略されている。
【００４３】
このように、インストーラ動作設定ファイル６０２と、個々のソフトウェアのソフトウェアインストール設定ファイルに親子関係が記載されている。それらを「setup.exe」６０１が解析することで、光ディスク１０５内のソフトウェアの親子関係を把握することができる。「setup.exe」６０１は、光ディスク１０５内の親子関係を把握すると、ソフトウェアのインストールを開始する。
【００４４】
＜ソフトウェアのインストール＞
ソフトウェアのインストールは、「setup.exe」６０１がソフトウェアインストール設定ファイルを解析した順番で行われる。具体的には、図３で示したＳ２０２からＳ２１６の順番で行われる。ソフトウェアのインストール途中にエラーが発生することなく、無事にインストールが完了すると図６（ａ）に示す画面をディプレイ１０２に表示する。なお、ディスプレイ１０２には、インストーラ動作設定ファイル６０２で指定されたソフトウェアの名前のみを表示している。しかし、それぞれのソフトウェアのインストール結果は、表示しているソフトウェアのインストール結果と、そのソフトウェアが持つ全ての子ソフトウェアのインストール結果とを合わせて表示している。図６（ａ）中の「ＯＫ」１１０１は、６０６に示した「application Ａ」と、その子ソフトウェアの全てにおいて、インストールが成功したことを示している。
【００４５】
逆に、ソフトウェアのインストール中にエラーが発生すると、ソフトウェアのインストール中にエラーが発生したことを示す。例えば、６０６に示した「application Ａ」や、もしくはその子ソフトウェアのいずれかのインストール中にエラーが発生した場合、ディスプレイ１０２には図６（ｂ）の画面が表示される。図６（ｂ）の画面と図６（ａ）の画面の違いは、６０６に示した「application Ａ」のインストール結果を示すアイコンが、「ＯＫ」１１０１から、「ＮＧ」１２０１になった点である。
【００４６】
＜本実施の形態に係るインストーラの特徴＞
本実施の形態のインストーラでは、あるソフトウェアのインストール中にエラーが発生しても、その時点で以降に予定していたソフトウェアのインストールがキャンセルされることはない。つまり、エラーが発生したソフトウェアに依存していない他のソフトウェアのインストールを行うことができる。
【００４７】
例えば、Ｓ２０８の「application Ｅ」のインストール中にエラーが発生した場合を例にとって説明する。「setup.exe」６０１は、Ｓ２０８の「application Ｅ」のインストールを中止する。続いて、次にインストールを予定していたソフトウェアのインストールの開始を試みる。次にインストールを予定していたＳ２０９の「application Ｆ」は、Ｓ２０８の「application Ｅ」の子ソフトウェアではない。したがって、「setup.exe」６０１はＳ２０９の「application Ｆ」からインストールを再開する。
【００４８】
Ｓ２１６のインストールが終了した後で、図６（ｂ）の画面を表示する。さらに、いかなるソフトウェアのインストール中にエラーが発生したのかを示す図７の画面を、図６（ｂ）の画面と共にディスプレイ１０２に表示する。
【００４９】
図７のエリア３には、エラーを起こしてインストールを中断されたソフトウェアとして、Ｓ２０８の「application Ｅ」が記載されている。また、エリア４には、Ｓ２０８の「application Ｅ」の親子関係が記載されている。図７の画面は、インストール中にエラーを発生させたソフトウェア名称を表示するだけでなく、そのソフトウェアの親子関係を表示することも目的としている。
【００５０】
異なる例として、Ｓ２０４の「application Ｃ」のインストール中にエラーが発生した場合について説明する。「setup.exe」６０１は、Ｓ２０４の「application Ｃ」のインストールを中止する。続いて、次にインストールを予定していたソフトウェアのインストールの開始を試みる。しかし、次にインストールを予定していたＳ２０５の「application Ｂ」は、エラーによってインストールされなかったＳ２０４の「application Ｃ」のインストールの子ソフトウェアになる。したがって、Ｓ２０５の「application Ｂ」をインストールせずに、更に次にインストールを予定していたソフトウェアのインストールを試みる。
【００５１】
次にインストールを予定していたＳ２０６の「application Ｄ」は、Ｓ２０４の「application Ｃ」の子ソフトウェアではない。したがって、「setup.exe」６０１はＳ２０６の「application Ｄ」からインストールを再開する。Ｓ２１６のインストールが終了した後で、図６（ｂ）の画面を表示する。さらに、いかなるソフトウェアのインストール中にエラーが発生したのかを示す図７の画面を、図６（ｂ）の画面と共にディスプレイ１０２に表示する。
【００５２】
図７のエリア１には、エラーを起こしてインストールを中断されたソフトウェアとして、Ｓ２０４の「application Ｃ」が記載されている。また、エリア４０２には、Ｓ２０４の「application Ｃ」の親子関係が記載されている。さらに、Ｓ２０４の「application Ｃ」の子ソフトウェアであったためにインストールをキャンセルされたＳ２０５の「application Ｂ」がエリア４０５に記載されている。また、Ｓ２０５の「application Ｂ」の親子関係がエリア４０６に記載されている。
【００５３】
もう一つの例として、Ｓ２０２の「application Ａ」のインストール中にエラーが発生した場合の例について説明する。「setup.exe」６０１は、Ｓ２０２の「application Ａ」のインストールを中止する。続いて、次にインストールを予定していたソフトウェアのインストールの開始を試みる。しかし、Ｓ２０３からＳ２１４の順番でインストールをされる予定であった全てのソフトウェアは、直接と間接の違いはあるが、Ｓ２０２の「application Ａ」に対して依存したソフトウェアである。そのため、「setup.exe」６０１はＳ２０３からＳ２１４でインストールを予定していた全てのソフトウェアのインストールを行わず、Ｓ２０２に対しいて依存のないＳ２１５のインストールから再開する。Ｓ２１６のインストールが終了した後で、図６（ｂ）の画面を表示する。
【００５４】
なお、図７の画面上に、「application Ａ」や、「application Ｊ」、「application Ｋ」のインストール時のエラーを表示すると、図６（ｂ）の画面でも再度インストール時のエラーを表示することとなる。これは、利用者にとって煩わしい表示となる。そこで、本実施の形態では、インストール中のエラーが発生しても、そのソフトウェアのインストールエラーを図７の画面に表示させない設定をソフトウェアインストール設定画面で行うことができる。そのときのソフトウェアインストール設定ファイルの例を図８に示す。
【００５５】
ここでは、Ｓ２１６で示した「application Ｋ」に対して、インストール中のエラーが発生しても、図７の画面にそのエラーを表示させない指定をしている。設定方法としては、セクション１００２に「Ｈｉｄｄｅｎ」パラメータを用意し、このパラメータに「Ｙｅｓ」を指定する。これによって、Ｓ２１６で示した「application Ｋ」のインストール中にエラーが発生しても、「setup.exe」６０１はＳ２１６で示した「application Ｋ」のインストールエラーを図７の画面に表示しない。
【００５６】
本実施の形態では、インストールエラーが発生しても、可能な限りソフトウェアのインストールを行うことを目的としている。しかし、利用者が「setup.exe」６０１へ意図的にインストールの中断を指示した場合、未インストールのソフトウェアが存在しても、「setup.exe」６０１は速やかに終了する。
【００５７】
「setup.exe」６０１は、ソフトウェアのインストール中に図９に示したプログレスダイアログを表示する。プログレスダイアログ上には、インストール中のソフトウェア名を示す文字列５０１と、インストールの進捗を示すプログレスバー５０２と、ソフトウェアのインストールをキャンセルするキャンセルボタン５０３が存在する。利用者がキャンセルボタン５０３を押すと、「setup.exe」６０１は利用者の意思を尊重し、現在インストール中のソフトウェアのインストールが完了したら、以降にインストールを予定していた全てのソフトウェアのインストールをスキップする。
【００５８】
なお、親ソフトウェアに対して更に親ソフトウェアが存在することが判明した場合には、最上位の親ソフトウェアまでの全てのソフトウェアを図７の画面に表示する構成も可能である。
【００５９】
＜本実施の形態におけるインストールエラー処理のフロー＞
図１０は、本実施の形態におけるインストールエラー処理を示すフローチャートである。
【００６０】
最初に、Ｓ３０１でインストーラを起動する。続いて、Ｓ３０２で、インストール対象の全ソフトウェアを確認する。具体的には、インストーラ動作設定ファイルとソフトウェアインストール設定ファイルを解析しながら、インストールするソフトウェアを確認する。さらに、確認したインストール対象ソフトウェア間に親子関係が存在すれば、それも同時に確認する。
【００６１】
Ｓ３０３では、親ソフトウェアのインストールを開始する。最初の親ソフトウェアは、インストーラ動作設定ファイルで最初に指定されたソフトウェアが最初の親ソフトウェアとなる。Ｓ３０４では、親ソフトウェアのインストール中にエラーが発生したかを確認する。エラーが発生していなければ、Ｓ３０５へ進む。
【００６２】
Ｓ３０５では、エラーが発生しなかったことで、親ソフトウェアのインストールは完了したと判断する。Ｓ３０６では、インストール中にキャンセルボタンが押されたかを確認する。キャンセルボタンが押されていた場合は、Ｓ３１４に進み、インストール結果を表示した後で、Ｓ３１５でインストーラを終了する。インストール中にキャンセルボタンが押されていない場合、Ｓ３０７でインストールを完了した親ソフトウェアの子ソフトウェアを列挙する。
【００６３】
Ｓ３０８では、列挙した子ソフトウェアが存在するかを確認する。未インストールの子ソフトウェアが存在する場合、Ｓ３０９へ進み、未インストールの子ソフトウェアを次のインストール対象である親ソフトウェアにする。そして、Ｓ３０３へ進んで、親ソフトウェアとなった、未インストールの子ソフトウェアのインストールを行う。
【００６４】
Ｓ３０８で未インストールの子ソフトウェアが存在しない場合、Ｓ３１２で、インストール対象の親ソフトウェアを、先ほどインストールを終えたソフトウェアの１階層上のソフトウェアを親ソフトウェアとする。Ｓ３１３では、１階層上のソフトウェアを親ソフトウェアにできることが確認できた場合は、Ｓ３０７に戻り、先ほどインストールを完了したソフトウェアの１階層上にあるソフトウェアの子ソフトウェアを列挙し、インストール処理を継続する。もし、Ｓ３１３で１階層上のソフトウェアを親ソフトウェアにできない場合、つまり、インストーラまで戻ってしまった場合は、インストール対象の全ソフトウェアをインストールしたということを意味する。したがって、Ｓ３１４でインストール結果を表示し、Ｓ３１５でインストーラを終了する。
【００６５】
Ｓ３０４で、親ソフトウェアのインストール中にエラーが確認された場合、Ｓ３１０に進み、インストール中エラーを引き起こしたソフトウェアのインストールを中断する。続いてＳ３１１へ進み、エラーを起こしたソフトウェアのインストール中にキャンセルボタンが押下されているかを確認する。キャンセルボタンが押されていたら、Ｓ３１４へ進みインストール結果を表示し、Ｓ３１５でインストーラを終了する。Ｓ３１１でキャンセルボタンが押されていないことが確認されたら、Ｓ３１２へ進み、エラーを引き起こしたソフトウェアの１階層上のソフトウェアを親ソフトウェアにし、引き続きインストール処理を行う。
【００６６】
＜本実施の形態の利点＞
本実施の形態は、以下のような利点を有している。
（１）複数のソフトウェアを連続してインストールするインストーラにおいて、インストールエラーを発生したソフトウェアのインストールは行われないが、それ以外のソフトウェアのインストールを行うことができる。即ち、階層構造になっている複数のソフトウェアのインストール処理の中で、あるソフトウェアのインストール時にエラーが発生しても、全体のインストールを中断することはしない。そして、エラーが発生したソフトウェアの次にインストールを予定していた別のソフトウェアのインストールからインストールを再開する。これにより、インストール中にエラーが発生しても、インストール可能なソフトウェアを全てインストールすることができる。
（２）インストールを予定しているソフトウェアの親ソフトウェアがインストールされていなければ、当該インストールを予定しているソフトウェアのインストールを中断することができる。
（３）インストール時のエラーとは関係なく、全てのソフトウェアのインストールを中断することができる。
（４）インストール中に発生したエラーによってインストールを中断されたソフトウェアを、全てのソフトウェアのインストール後にディプレイ１０２に表示することができる。
（５）インストール中にエラーを発生したソフトウェアに親ソフトウェアが存在している場合、当該エラーを発生したソフトウェアだけでなく、その親ソフトウェアもディプレイ１０２に表示することができる。
（６）親ソフトウェアに対しても親ソフトウェアが存在する場合、最上位の親ソフトウェアまでの全てのソフトウェアをディプレイ１０２に表示することができる。
（７）インストールが中断されたソフトウェアの全ての子ソフトウェアを、インストールを中断したソフトウェアとして利用者に通知することができる。
（８）インストールが中止された全ソフトウェアを、インストールを中止されたソフトウェアとしてディプレイ１０２に表示することができる。
（９）インストール中にエラーが発生してもディプレイ１０２に表示しない設定がソフトウェア毎に可能となる。
【００６７】
なお、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【００６８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６９】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００７０】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００７１】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【００７２】
【図１】実施の形態に係るインストールエラー処理方法を実施するための情報処理システムの構成を示す模式図である。
【図２】図１中の光ディスクに記録されているソフトウェアのフォルダ構成図である。
【図３】光ディスクに記録されているソフトウェアの親子関係とインストール順序を示す図である。
【図４】インストーラ動作設定ファイルの記載例を示す図である。
【図５】ソフトウェアインストール設定ファイルの記載例を示す図である。
【図６】インストール完了画面を示す図である。
【図７】インストール結果画面を示す図である。
【図８】ソフトウェアインストール設定ファイルの別の記載例を示す図である。
【図９】インストール時のプログレスダイアログを示す図である。
【図１０】実施の形態におけるインストールエラー処理を示すフローチャートである。
【符号の説明】
【００７３】
１０１  コンピュータ
１０１Ａ 制御部
１０２  ディスプレイ
１０５  光ディスク
１０６  光学ディスクドライブ
【図１】
2008204290.tif 000003
【図２】
2008204290.tif 000004
【図３】
2008204290.tif 000005
【図４】
2008204290.tif 000006
【図５】
2008204290.tif 000007
【図６】
2008204290.tif 000008
【図７】
2008204290.tif 000009
【図８】
2008204290.tif 000010
【図９】
2008204290.tif 000011
【図１０】
2008204290.tif 000012