web-dev-qa-db-ja.com

開発者がWindowsでインストールを自動化しないのはなぜですか?

これはinverseから "開発者が作成しない理由) Linuxのインストールウィザード? "は興味深いですが、"自動インストールが自然な方法です。なぜウィザードを使用するのですか? "と思いました。
これが逆の質問です:

怠惰などの問題ではないと思いますが、主に消費者向けのアプリでさえ、開発者が完全に自動化された種類のインストールをまったく行わない理由を理解できていません。通常、同じアプリのLinuxへの自動インストールがあるので、なぜWindowsとMac OSではないのですか?

この傾向に技術的な理由はありますか、それとも単なる慣習ですか?

35
Volker Siegel

インフォームドコンセント

ユーザーは、まずプログラムをコンピューターにインストールするかどうかを決定できる必要があります。人々がプログラムをインストールすることを明らかに選択していることは自明のように思えるかもしれませんが、悪意のあるプログラムの主な特徴は、コンピューターユーザーが知らないうちにインストールできることです。

インフォームドコンセントは [〜#〜] uac [〜#〜] によってさらに明確になります。

ライセンス契約

最新のソフトウェアのほとんどは、ライセンスの「クリックスルー」モデルに従っています。つまり、ユーザーは、プログラムをインストールする条件として、インストールプロセス中にライセンスの条件に同意します。ユーザーがこれらの契約をめったに読まないということは、特に「これらの条件に同意します」というラベルの付いたチェックボックスをクリックした場合、ユーザーが拘束されることを意味しません。

オプションの構成

多くのソフトウェアパッケージには、ソフトウェアのインストール方法を特定の方法で変更できるオプションがあります。これらの最も簡単なものでは、デスクトップにアイコンを表示するかどうかを決定できますが、大規模なアプリケーションでは、インストールする機能を決定できます。

インストールの進捗状況

Windowsエコシステムのプログラムは、インストールプロセス(たとえば、レジ​​ストリを使用しないインストール)の際に邪魔にならないように改善されていますが、インストールは、多くの場合、重要な操作です。プログレスバーやその他の視覚補助は、何かが実際に起こっていることを示します。ウィザードの最後のページに、インストールが成功したかどうかが表示されます。

入門

最後に、最高のソフトウェアパッケージは、次に何をすべきかを教えてくれます。最初のステップは何ですか、開始する方法、ヘルプを取得する方法。ほとんどのソフトウェアは、インストールされると起動アイコンが残りますが、それだけです。ユーザーの専門知識のレベルを過大評価しないでください。思わず信じられないかもしれませんが、インストールしたソフトウェアプログラムを見つけて起動する方法を知らない人がまだいます。

49
Robert Harvey

私が見たものから、それは本当に「Windowsエクスペリエンス」全体に要約されます。つまり、actionまたはoptionを可能な限りユーザーに表示します。

これは、インストールにGUIが必要ないためです。 MSIベースのインストーラーは、Linuxベースのパッケージと同様の方法でサイレントインストールできます。 GUIは完全にオプションですが、ユーザーにバックグラウンドで何が行われているのかを視覚的に表現するために用意されています。

Linuxでは、これはパッケージマネージャーを使用して簡単に実行できます。パッケージをインストールする場合、そのパッケージを特別にリクエストする必要があります。あまり技術的ではないため、通常、ユーザーが目的のソフトウェアをインストールするためのGUIベースのパッケージマネージャーを利用できます。

Windowsでは、そのようなものは存在しません。ユーザーがWindowsベースのソフトウェアをインストールする場合は、ソフトウェアを個別に見つけてダウンロードする必要があります。ユーザーがソフトウェアを構成およびインストールするのを支援する標準化されたツールはありません。したがって、各ソフトウェアにバンドルされているインストールGUIは、LinuxのパッケージマネージャGUIと非常に似ています。これは単に、ユーザーがインストールを構成し、その進行状況を追跡できるようにするために存在します。

管理GUIが存在するため、インストールGUIが不要な場合がたくさんあります。たとえば、人気のあるSteamプラットフォームは、インストールスクリプトの助けを借りて、Steamストアから入手できるゲームやソフトウェアを自動的にインストールします。

別の素晴らしい例は、SCCMです。 System Center Configuration Manager(略してSCCM)は、ネットワーク上のコンピューターのグループを管理するために使用されるソフトウェアです。 Software Centerと呼ばれるGUIを介してソフトウェアをインストールできるようにする機能が含まれています。 MSIベースのインストーラーは、ボタンをクリックするだけでインストールできます。私が作業している環境では、AdobeのCreative SuiteからWinZipなどのソフトウェアまで、さまざまなソフトウェアを用意しています。ユーザーが行う必要があるのは、カタログを検索して利用可能なものを見つけ、[インストール]をクリックして、確認を待つだけです。 Linux Mintを実行している自宅のコンピューターに何かをインストールしたい場合とほぼ同じプロセスです。

21
Thebluefish

ウィンドウは msiファイル を使用します。これは、他のプログラムパッケージとほとんど同じように機能します。フラグを設定することでサイレントインストールできますが、デフォルトの動作では、Windowsはパッケージで定義されているすべての構成オプションを備えたGUIを表示します。したがって、通常のユーザーに対しては、msiファイルはexeインストーラーのように動作します。

多くの場合、デフォルトを変更することを選択するユーザーとして、GUIを使用することが、プログラムをインストールするときのオプションを知る最も簡単な方法であり、それらを同時に変更するのに便利であることがわかりました。

デフォルトで完全にサイレントなインストーラの可能性について。 Windowsでは、ユーザーがインストールディレクトリを選択できるようになっているのが通例であり、GUIでそのオプションを許可しなかった場合、多くのユーザーの不適切な立場に陥ります。また、ユーザーは、プログラムのインストール時に少なくとも最低限のダイアログを見ることになりますが、何も表示しないと、インストールが失敗したと思われる可能性があります。

6
aaaaaaaaaaaa

開発者はWindowsでインストールを自動化しますが、すべてのソフトウェアがこの形式で提供されるわけではありません。ここでの他の多くの回答とは異なり、Windowsには標準で広く使用されている「パッケージマネージャー」がありますが、エンドユーザーではなく企業を対象としているため、開発者の間でもあまり知られていません。

これは [〜#〜] sccm [〜#〜] と呼ばれ、すべての大企業でWindowsインストールの管理に使用されます。パッケージ(ソフトウェアのプッシュとクライアントマシンへの依存関係)の管理に加えて、Windowsやその他のインストール済みソフトウェアの更新も管理します。

SCCMは、テクニカルユーザーでも自分のコンピューターを管理するために使用されません。これは、単一のコンピューターを管理するための利点の多くを提供することを実際には意図していません。実際には、Active Directory /ドメインに参加していないマシンがなければ機能しません。したがって、ソフトウェアの管理と展開の更新を行う場合でも、実際にはWindowsパッケージマネージャーとは呼びません。

ただし、ここでのポイントは、Windowsへの自動インストールがあり、広く使用されている–大企業のシステム管理者。 .msiダウンロードを提供する製品が表示された場合、それはおそらく、SCCMを介して何千ものマシンに自動的に展開可能にしたいためです。

免責事項:私自身はSCCMを使用したことがなく、SCCMについてほとんど知らないため、上記の微妙な点について誤解している可能性があります。

5
Roman Starkov

免責事項:これは主に推測ですが、インストールと展開のためにWindowsアプリケーションをパッケージ化した私の経験に基づいています。

そのすべては、プラットフォームでのインストールの事実上の標準です。 Linuxでの標準は、インストールにapt(dpkg/Debianベース)またはyum(rpm/RedHatベース)などのパッケージ管理ツールを使用することです。大多数のユーザーがとにかく(標準として)パッケージを使用するため、展開用のパッケージを提供したら、ウィザードを構築することはかなりの時間の無駄になります。

Windowsでは、標準はGUIベースのインストールです。代替がありますが、これらの代替のどれもインストーラーの100%の代替として適切ではありません。

  • パッケージ管理ツール( Chocolatey など)はありますが、まだクリティカルマスに達していません。パッケージ管理ベースのインストールのみを提供すると、多くのユーザーは他のユーザーが他のユーザーをインストールする必要があることに悩まされることになりますプログラムをインストールするだけのソフトウェア(ダウンロードマネージャーの煩わしさを考えてください)。ほとんどのパッケージ管理ツールは、テクニカルユーザーも対象としているため、ソフトウェアがそのユーザーベースを対象としていない場合は、Chocolateyにパッケージを提供することになります誰もそれを使用しないので、時間の完全な無駄になります。
  • 一部のソフトウェアはXCopyの展開に適していますが、これは比較的単純なソフトウェア製品でのみ機能します。 (たとえば)フラッシュドライブにインストールしたいユーザーには便利ですが、他のすべての人には便利です。その結果、XCopyインストール用にファイルをリリースすることを選択した多くのプロジェクトでも、インストーラーが提供されます。
  • Chocolateyは、インストールをダウンロードして実行するコマンドラインスニペットを提供します。繰り返しになりますが、技術的なユーザーにとっては速くてうまく機能しますが、非技術的なユーザーはこのインストール方法に苦労して先延ばしになります。

ソフトウェアが複雑で展開が必要な場合、ユーザーが期待するとおりにGUIインストールを提供することは必須です。これらのウィザードの作成をかなり簡単にする製品もいくつかあります。そのため、GUIベースのインストーラーを提供することは、通常、開発時間の面で最も手間がかからないオプションの1つです。 GUIベースのインストーラーを入手したら、上記のそれぞれの費用対効果比を評価する必要があります(新しい機能はマイナス100ポイントから始まることを忘れないでください)。多くの製品では、これらの代替策を構築して維持する努力に値しないだけです。

ある種の「サイレント」モードを備えたインストーラはWindowsではかなり一般的ですが、これはデフォルトモードではない傾向があります。これも標準ではないためです。ほとんどのWindowsユーザーは、かなり困惑させるように実行するとすぐに自分自身をインストールするインストーラーを見つけます。

0
Justin

技術的な面では、WindowsはLinuxよりも(レジストリを介して)プログラム間の統合を強化する傾向があります。これには、プログラムをハードドライブにコピーするだけではなく(たとえば、コンテキストメニューを有効にするため)、正式な「インストール」プロセスが必要です。一部のOS(Mac OSなど)は、その一部をバックグラウンドまたは初回実​​行時に実行しますが、Windowsはそれをインストールの明示的な部分にすることを好みます。

非技術的な側面では、Windowsは設定したモデルを好み、それを忘れます。たとえば、Linuxはそれほど多くの設定(インストールオプション)を行わない傾向がありますが、プログラムの実行時にフラグを使用することがよくあります。または、プログラムに入ったらオプションを変更します。 Windowsは、指定された時間(インストール)中にオプションを設定するエクスペリエンスを好み、ユーザーがプログラムを実行するたびにコマンドラインフラグを使用したりオプションを設定したりすることを期待していません。これは柔軟性を低下させます(毎回異なるフラグを使用できるため)。ただし、これはパワーユーザー(ショートカットのオプションなど)に公開されることがよくあります。しかし、ほとんどのユーザーにシンプルなインターフェースを提供し、開発者は必要なオプションとデフォルトを設定するためのクリーンなインターフェースをユーザーに提示できます。

0
Joe