web-dev-qa-db-ja.com

開発者がLinuxでインストールウィザードを作成しないのはなぜですか?

私はそれが怠惰かそのようなことではないと確信していますが、主に消費者向けのアプリの開発者でさえ、あなたが次の次の仕上げに行くようなどんなインストールウィザードも作らないのか理解できません。通常、同じアプリにはWindowsとMac OSのインストーラーがあります。なぜLinuxではないのですか?

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

編集(23-09-2014):この質問は、Windows対Linuxの炎上戦争を開始するように求められていません。私は3つの主要なオペレーティングシステムをすべて使用しており、Linuxを除いて、他の2つ(WindowsおよびMac OS)には両方ともインストーラーがあります。私はまだOracleをインストールしていませんが、インストールに必要なものは何でも、Linux用のGUIインストーラーを見たことはありません。

はい、私はLinuxにパッケージマネージャーがあるので、開発者がインストーラーを作成する必要がないことを知っています。しかし、デフォルトのパッケージマネージャーでは時代遅れであるか、単に利用できないだけの膨大な量のソフトウェアがまだあります。さらに、LinuxはWindowsの代替としてカジュアルユーザー向けに販売されているため(Ubuntuはこのドメインで一生懸命取り組んでいます)、ユーザーに慣れ親しんでいるものだけを提供するほうがはるかに理にかなっています。

例として、LAMPスタックを設定します。これらはすべてデフォルトのリポジトリにあるオープンソースのソフトウェアですが、スクリプトなしで一度にすべてをセットアップできますか?次に、WindowsのWAMPサーバーを確認します。インストーラーを実行するだけで、複数のソフトウェアがインストールされ、お互いにうまく機能します。次に、適切なデフォルトなどを設定します。インストーラーはそれを行うことができますが、パッケージマネージャーはできません。はい、オンラインでそのスクリプトを見つけることができますが、どこにありますか?そしてどれ?

インストーラーは、過去の時代遅れのテクノロジーではありません。それらはまだ有用であり、95%のユーザーはすでにそれらに慣れています。

34
Arsalan Ahmad

開発者はディストリビューション用のパッケージを提供するだけです。各ディストリビューションには、このパッケージをインストールする方法があります。この方法は、ターミナル(apt-get)またはグラフィカルインターフェイスを介して。 Ubuntuソフトウェアセンター。

美しさは、開発者が適切なパッケージを構築することだけを気にかけなければならないことです。残りはディストリビューションメーカーが処理し、各パッケージのインストールは同じプロセスです。

63

彼らがする必要がないので。 Linuxディストリビューションには通常、Windowsとは異なり、パッケージ管理システムが機能します。Windowsでは、すべてのアプリケーションがインストールと更新を何度も何度も再実装する必要があります。

42
Jörg W Mittag

Linux用のほとんどのクローズドソースの非フリービールソフトウェアdoesには、インストールウィザードが付属しています。少なくともほとんどの主要なディストリビューションがそれを手に入れるまで、いくつかのクローズドソースの無料のビールのままのソフトウェアもそうです。オープンソースソフトウェアの場合、パッケージマネージャーは明らかに優れたソリューションです。

では、オープンソースソフトウェアが主要なディストリビューションに取り上げられる前の初期段階についてはどうでしょうか。そのフェーズで開発者がインストールウィザードを作成しないのはなぜですか?

まず第一に、多くのオープンソース開発者は、配布について気にしていません。彼らは自分たちが使うソフトウェアを書いて、それが他の人に役立つ場合に備えてそこに出しますが、彼らは配布用のパッケージングを他の誰かの問題だと考えています。それが十分に気に入った場合、誰かが自分のお気に入りのディストリビューションに取り込む作業を引き受けます。

doディストリビューションを重視するオープンソース開発者は、パッケージマネージャシステム内で作業するほうがよいです。 Linuxユーザーは通常、ソフトウェアを探すためにWebを検索しません。まず、パッケージマネージャーを検索します。それが失敗すると、UbuntuのPPAやArchのAURのような「コミュニティ維持」リポジトリを検索します。あなたがそれらの場所にいない場合、あなたのソフトウェアはおそらく気づかれないでしょう、そしてそれが気づかれた場合、それは信頼される可能性が低くなります。

これらの既存の配信チャネルを見越すことは、スーパーボウルの広告が高すぎると判断するようなものなので、独自のサッカー選手権を主催し、代わりにそこに宣伝します。コストは安くなるかもしれませんが、効果も低くなります。

構成のカスタマイズに関する限り、従来は構成ファイルを使用して処理するのが簡単であったWebサーバーのようなソフトウェアの場合、構成の共有、バックアップ、復元が簡単になります。

Webブラウザーなどのクライアントソフトウェアの場合は、インストール時に実行するよりも、新しいユーザーrunsソフトウェアに初めて表示される構成ウィザードを作成する方がはるかに優れています。主な理由は、Linuxがマルチユーザーオペレーティングシステムであるため、とにかくユーザーごとにカスタマイズする必要があるためです。これにより、何らかの理由で、ソフトウェア全体を再インストールするためにインストールプログラムを保持する必要がなく、後で構成ウィザードを簡単に再実行できます。このタイプのウィザードは、Linuxソフトウェアではかなり一般的です。

22
Karl Bielefeldt

Linuxディストリビューション(BSDフレーバーのUnicesとしても)には、いわゆるパッケージマネージャー(またはBSDの場合はポート管理)を介してプログラムをインストールするためのユーザーフレンドリーなインターフェイスがあります:Archのpacman、Debian/Ubuntuのdpkg 、 等々。

これらのパッケージマネージャーは、統一された構成ファイルを使用してプログラムをインストールする方法を提供します。ディストリビューションのパッケージマネージャーに従って必要なプログラムをパッケージ化したら、選択したパッケージに対してインストールコマンドを実行するだけで(たまにユーザー固有のカスタマイズが行われますが、ほとんど何も行われません)、マネージャーが残りの作業を行います。

パッケージマネージャーは通常、プログラムがインストール用にパッケージ化される方法が統一されているため、Windowsのプログラム固有のインストーラープロセスよりもユーザーフレンドリーです。また、通常、パッケージマネージャーデータベースにクエリを実行して、その依存関係を確認することもできます。
また、パッケージの集中アップデートもサポートしています。

14
Nadir Sampaoli

私はよく自分や他の人にこの質問をしましたが、Linuxがインストーラーの数を少なくする理由にたどり着く前に、私がよく目にするポイントに対処したいと思います。

Linuxディストリビューションは、パッケージマネージャーを提供します。

ただし、Linuxディストリビューションのパッケージマネージャーが、次の理由から、インストーラーに取って代わるとは言いません。

  • これらのパッケージマネージャーは運用において標準化されていません

    パッケージマネージャーは、バイナリを提供し、エンドユーザーにインストーラーを選択させるようなものです。ターミナルを選択することも、より高度なGUIを備えたツールを選択することもできますが、「従来の」インストールウィザードと同じレベルのプロセス制御はできません。

    私が制御によって意味することの例はドキュメンテーションです。 「次へをクリックすると、表示されるはずです」のようなエンドユーザーの指示を与えることはできません。特定のツールのコマンドライン指示を与えることができますが、ユーザーがそのツールを持っているという事実に依存しているだけでなく、インストールウィザードのほとんどの利点を失っています(結局のところ、ほとんどのウィザードはフロントを提供しています-endで簡単なコマンドラインの説明とスクリプトの開始。

    これは美学にもつながります。これで、エンドユーザーのディストリビューションに依存して、直感的で適切なインターフェースを提供できます。あなたはその事実を完全に認識していますが、ファイル(インストーラーのビューで)をダブルクリックして醜いパッケージマネージャーを開き、何もしない場合でも、カジュアルなユーザーが不満を言うのは不合理ではありませんまたはすべての最悪の場合は、ターミナルウィンドウを開きます。 (ユーザーとの経験、および「dosプロンプト」/「白黒ボックス」/「おもしろいファイルを見るとすべてのファイルが削除される」という嫌悪感は、おそらく本を埋める可能性があります)

  • パッケージ形式は、プラットフォーム間で標準化されていません。

    rpmdebなどのシステム間で変換するツールはありますが、インストールウィザードがパッケージを使用する状況でパッケージを使用している場合、エンドユーザーがパッケージを変換することを期待するのは合理的ではありません。別のプラットフォームで提供される(つまり、クリックして完了)。基本的なビルドシステムがある場合、追加のパッケージ形式に最新のパッケージを提供することはかなり簡単ですが、サポートする必要がある新しいバイナリをまだ追加しています。

    それはまた、人々がプラットフォームに応じて選択しなければならない新しいバイナリを追加しています(マイナーに聞こえますが、ここの誰かが前にx86とx64を説明する必要があることを証明できると確信しています[そうです、適切なプラットフォームをブラウザ、しかしそれからあなたはさらに複雑になり、サポートするのが難しくなります、手順])

  • パッケージマネージャーは、オープンソースソフトウェアに対して「より優れています」。

    これは、クローズドソースのソフトウェアをパッケージ管理システムと共有できないと言っているのではなく、それは間違いなく可能です。しかし、Linuxディストリビューションでクローズソースソフトウェアを共有しようとすると、ソフトウェアを一般的なリポジトリに取り込むためのオプションに関する限り、壁にぶつかります。 PPAやopenSUSEビルドサービスなどは廃止され、Canonical Partnersリポジトリでさえデフォルトでは有効になっていません。

    つまり、独自のリポジトリを提供しない限り、自動更新を含むパッケージ管理システムの主要な機能の多くは使用できません。 私の意見では、これはこれらのシステムを使用するほとんどのプラットフォーム全体で最も重要な利点です(iOS、Android、Windowsストアなど)。

    そして、リポジトリを提供する場合(さまざまな些細なことの別の仕事)でも、ユーザーにそれをセットアップしてもらう必要があります(これは、サポートの別のレイヤー、非標準的なアプローチの別のセット、および元のポイントからの別の転換です)インストーラ)

しかし、これらすべてのことを考慮しても、Linuxでインストーラーがあまり一般的ではないのはなぜでしょうか。元の質問は、それが技術的なものなのか、それとも慣習に基づくものなのか、そして部分的に両方に基づいているのかを尋ねます。

私が述べた上記の要素を見ると、それらは「ウィザードのような」インストーラーにとって物事をより複雑にします。たとえば、ウィザードには、インストールする複数のパッケージ形式が含まれていますか?ディストリビューション全体のルックアンドフィールをどのように処理しますか?リストは続きます、そして、そのパッケージdoがあなたに与える1つのことは、これのどれもあなたの懸念ではないということです(良いか悪いか)あなたが正しいパッケージを提供する限り。また、プロジェクトの性質によっては、Ubuntu Software Centerへのアプリの提出など、これらのより「専門的な」リソースを活用し始めることができます。これはすべて技術に関連しています。

しかし、私が原動力であると私が個人的に思う側面は慣習です。 (私はこれだけ深く埋め込んで、忘却に対する他の回答に反対票を投じた人々が読書をやめたと思います。)

ポスターにはポイントがあったように思いますが、あまりにも率直に言っていたかもしれませんし、実際にはそのポイントの客観的な理由を提供していませんでした。私がパッケージマネージャーとインストーラーについて述べた違いを調べると、それらのほとんどがほとんど問題ではない(多分、知識の境界にさえなっている)とわかっても驚かないでしょう。しかし、(私がアドホミネムの議論の正当な使用と見なされていることを期待してすみません)私たちはプログラマーのためのサイトのユーザーでもあります。 Linuxディストリビューションは、(明らかに他の多くのものの中でも)カジュアルユーザー向けの優れたWindowsの代替としてプッシュされていると思います。これらすべてのユーザーが使用できる、一般的に定義されているクリックして実行できる手順を提供しないことは、理想的ではありませんimo

しかし同時に、そのグループにとってLinuxの多くのことが特に理想的であることもわかりません。確かに一部のディストリビューションにはGUIベースのパッケージマネージャーがありますが、これらの人々は、プログラムのインストールに厳密に焦点を合わせていないため、別のツールの使用方法を検討する必要があります(比較 this および- this から this へ)。

当然、GUIを使用して、特に特定のディストリビューション(皮肉なことに、これらのディストリビューションが行っていることが常にオープンソースコミュニティに採用されているわけではない)で、平均的なカジュアルユーザーが行う必要のある大部分を実行できます[Ubuntuに関する苦情を見てください。庭」])しかし、Linuxの慣習がCLIに慣れている人を支持することは否定できないとは思いません。少なくとも、致命的ではありませんが、外観がひどく間違っていることを意味しているようです。

これが彼らが目指していることだと言っているのではありませんが、それは私がそれらの慣習が実際に見ていることです。そして、Linuxのパッケージ管理システムはそれに従っているようです。結局のところ、エンドユーザーが基本的な概念に慣れている場合、それらの「欠点」のほとんどはほとんど存在しません。

他のほとんどのプラットフォームのインストーラーは実際にはその影響を受けず、「99.99%のユーザーが盲目的に[続行]をクリックできる」という質問に対するコメントを引用するように設計されています。パッケージ管理の問題により、これらのユーザーは「続行」ボタン。その「続行」ボタンが何であるかをユーザーに知らせます(ユーザーが他のテキストでEnterキーを押すと言ったツールにつまずかれるのを見てきました)。 「続行」ボタン」ステージ。

13
Selali Adobor

大規模に拡張するには、両方です。 Linuxの配布モデルはAppStore/Play Storeに近く、従来のWindows/Mac OS Xに近いモデルです。これらのプラットフォームでさえ、私が聞いたところから移行しています。

慣例は、それがより簡単であるということです。 AppStore/Playストアのほとんどの引数はLinuxにも適用されます。

  • 自動的にアップデート。 Windowsで20のプログラムを個別に更新することは、混乱を招き、非効率的です。ユーザーは、起動時にJava/Flash/Adob​​e/...更新をクリックする必要があります。
  • 単一の信頼できるリポジトリ。安全な接続を介してダウンロードするかどうかを確認しますか?または、get.Adobe.com.hackers.example.com/setup.exeからReaderアップデートからダウンロードしていませんか? あなたがほとんどのユーザー、特にパワーユーザーではない場合でも、しないです。代わりに、Linuxのソフトウェアセンターまたは同様のプログラムにアクセスして、信頼できるコピーを取得します。

さらに、AppStore/Playストアには適用されない可能性がある以下の利点があります。

  • すべてのLinuxがGUIを備えているわけではありません-httpサーバーを考えてください-しかし、ほとんどのディストリビューションはそのような構成をサポートしています。 OK。誰もがそれを必要とするわけではありませんが、遅かれ早かれ、誰かが何らかの理由でそれを使いたくなるでしょう。
  • さまざまなディストリビューションのライブラリのABIは異なる場合があります。インストーラーの詳細については、リポジトリでパッケージを管理している人ではなく、プログラムで作業する必要があります。
  • 以前のものと接続されている-どういうわけか依存関係を管理する必要があります。バンドルは、理由により不適切と見なされます。そのような場合は、ライブラリをバグのないバージョンに更新したことを確認する必要があります。たとえば、openssl 1.0.1fをバンドルに含めなかったとします。実践によると、人々は既知のセキュリティ脆弱性を持つ古いライブラリを含めている。
9

通常、インストールはユーザーとの対話を必要としません(ほとんどのapt-getパッケージなど)、またはスクリプトで記述できます。これにより、多くのマシンにソフトウェアを導入するための自動化が非常に簡単になります。ウィザードを使用する代わりに、スクリプトまたは構成ファイルを使用して同じことを行います。

Linuxの世界では、ターミナルが最初に来て、GUIがオプションであることを考えると、実際のインストールウィザードがない理由は明らかです。

一方、Windowsは非常にユーザー指向です。ほとんどのMSIファイルは、Windowsのインストールを無人で行うのと同じように、無人で簡単に展開できます(WAIKを動作させるのがいかに簡単/難しいかは、別の問題です)。これは、Windows用の多くのアプリケーションがMSIに基づいておらず、スクリプトを実行できないことも意味します。エンタープライズ規模のアプリケーションの中で、たとえば、アドビ製品はスクリプトによるインストールがかなり難しいことで知られています。

6