1

重複の可能性:
Linux用のバイナリアプリケーションを配布するための最良の方法は何ですか?

Linuxでプロプライエタリゲームを公開したいと思います。ゲームは比較的シンプルで、C++で記述されたカスタムエンジンを備えています。私たちはWindowsでMinGWコンパイラを使用しており、1人がg++コンパイラを使用してLinuxでプログラミングとテストを行っています。

ゲームは、すべてクロスプラットフォームのオープンソースライブラリを使用して排他的に作成されています。

Linux用のプログラムをすべてのLinuxディストリビューションでパッケージ化せずに動作させるための推奨される方法は何ですか?私にとって理想的な方法は、それを.zipまたはtarballとしてパッケージ化し、システムライブラリで動作するWindowsでの古き良き.exeファイルと同じようにダウンロードを提供することです。

このようなダウンロードを提供するLinuxでプレイしたほとんどのゲームは、それを起動するシェルスクリプト(それ自体が互換性の問題です!)を提供します。何の問題もありませんが、使い勝手が悪いです。さらに、多くのゲームには追加のライブラリが必要です。たとえば、人気のあるライブラリのハードウェアアクセラレーションによる新しいバージョンであるSDL 2.0は、ほとんどのディストリビューションのリポジトリではまだ利用できませんが、いくつかのゲームで使用されていることがわかっているため、自分でコンパイルする必要がありました。これはさらに悪いことです。

顧客が選択したファイルマネージャーでバイナリファイルをクリックすると、必要なライブラリの「apt-getting」や「yumming」が実行されないソリューションが必要です。私は標準を破ることを気にしません、そしてそれが/ optに入らなければならないなら、それはそうします。

4

2 に答える 2

3

顧客が選択したファイル マネージャーでバイナリ ファイルをクリックすると、「apt-getting」や「yumming」なしで実行されるソリューションが欲しいです。私は標準を破ることを気にしませんし、/opt に入れなければならない場合はそうします。

最初に、「yumming」と「apt-getting」は、実際にはアプリケーション (パッケージ) の実際のインストーラーではなく、サーバー上でパッケージを検索/ダウンロード/更新/トレースするために使用される単なるフロントエンド プログラムであることを理解する必要があります。リポジトリ (手動で追加したディストリビューションなどから)。したがって、あなたが「'apt-getting' や 'yumming' はやめてください」と言うときは、ゲームをレポジトリに載せたくないという意味であると想定する必要があります。ゲームを入手してください (フラッシュ、グラフィックス ドライバー、ビデオ コーデック、および通常リポジトリにあるその他のものなど、他のプロプライエタリですがフリー ソフトウェアとは対照的です)。

そのため、パッケージ管理システムには、コマンドライン プログラムを使用する RPM と DEB の 2 種類しかなく、実際にインストールを実行するのはそれぞれ と ですrpmdpkgほとんどのディストリビューションには、これらのプログラム用の GUI フロントエンドも付属しています (Synaptic スタイルのパッケージ管理ソフトウェア (apt-get または yum の GUI フロントエンド) ではなく、より単純なもの)。.debまたはファイルをダブルクリックすると、.rpmほとんどのディストリビューションで、この GUI フロントエンドがポップアップして、管理者の資格情報を要求し、必要な依存関係について通知し、明らかに、このパッケージをインストールしようとしていることを通知します。あなたのシステムに。私が言えることから、これはまさにあなたが望むものです。したがって、提供する必要があるのは.debファイル (Debian ディストリビューション用) と.rpm(Red Hat ディストリビューションの場合)、ゲームの 32 ビット バージョンと 64 ビット バージョンの両方.msiに対して、Windows バージョン用のファイルを提供すると仮定するのと同じように。

ユーザーが見つけるのが難しいかもしれない依存関係について。ディストリビューションのリポジトリから新しいバージョンを取得できない場合にオフライン パッケージからインストールできるように、これらの難解な依存関係用の追加の (「推奨」バージョン) パッケージをインストーラーのディレクトリに含める必要があります。そしてそれはそれについてです。

また、ゲームの deb または rpm インストーラーを入手するために人々にお金を払わせるか、ゲームのロックを解除するためのある種のライセンス キー システムを含めることができます (したがって、deb/rpm ファイルをダウンロード可能にし、キーの料金を請求します)。 / ロックを解除するためのコード)。

私にとって理想的な方法は、それを .zip または tarball としてパッケージ化して、システム ライブラリで動作する Windows の古き良き .exe ファイルのように、ダウンロードを提供することです。

理想?本当!?!ええ、システム ライブラリを使用するだけであれば、機能します。しかし、それ以上のものがあるとすれば、それは悪夢となるでしょう (インストーラーに頼らない Windows とほぼ同じくらい悪いことです)。

このゲームは、すべてクロスプラットフォームのオープン ソース ライブラリのみを使用して作成されています。

これらのオープン ソース ライブラリがどれも GPL ライセンスでないことを確認してください。そうである場合、ゲームをプロプライエタリにすることはできません。依存関係は、LGPL または BSD、または同様のライセンスの下でライセンスされている必要があるため、注意してください。

于 2013-01-13T21:26:09.720 に答える
1

パッケージングを必要とせずに、すべての Linux ディストリビューションで Linux 用のプログラムを動作させるための推奨される方法は何ですか?

それは最初からお勧めできません。したがって、それを行うにはあまり推奨されない方法が必要です。それは、静的にリンクされたバイナリを作成することを意味すると思います(とにかく、32ビットと64ビットのバージョンが必要です)。

推奨される方法は、ディストリビューション システム (RPM、DEB など) を決定し、さまざまなターゲット プラットフォームへの依存関係を確認することです。次に、ユーザーは、Windows MSI ファイルで行うのと同じように、インストーラー パッケージをクリックし、後でプログラムをアンインストール/アップグレードすることもできます。

実際には、静的バイナリを配布したとしても、テストを避けることはできないため、ターゲット プラットフォームにテストベッド環境を提供する必要があることに注意してください。その時点で、RPM/DEB/etc をパッケージ化しても、実際には時間の大幅な増加にはなりません。一方で、パッケージがよりタイトになり、ダウンロードとインストールがより簡単になります。

于 2013-01-13T20:59:38.767 に答える