Linuxディストリビューションでバイナリを作成し、同じアーキテクチャの別のディストリビューションで実行する方法はありますか?または、別のディストリビューションでコンパイルしてビルドする必要がありますか?
バイナリファイル用のRedhat、Debianベースのディストリビューション間に互換性はありますか?(fedoraでUbuntuバイナリファイルを使用したい!)
Linuxディストリビューションでバイナリを作成し、同じアーキテクチャの別のディストリビューションで実行する方法はありますか?または、別のディストリビューションでコンパイルしてビルドする必要がありますか?
バイナリファイル用のRedhat、Debianベースのディストリビューション間に互換性はありますか?(fedoraでUbuntuバイナリファイルを使用したい!)
Linux Standard Baseと入力して、個々のLinuxディストリビューション間の違いを減らします。見る
バイナリを静的にリンクすると、一部のライブラリがそのマシンで正しく機能しないため(認証方法の違いなど)、バイナリの移植性が低下します。
「異常な」ライブラリを静的にリンクし、サポートされているディストリビューションのセットを最小限に抑える場合は、問題ないはずです。
Cライブラリ(またはバイナリ全体)を静的にリンクしないでください。これは問題のレシピです:)
(例)GoogleがChromeで何をしているのか見てみましょう。
アプリケーションはどの言語でコーディングされていますか?Python(Cバインディングなし)やJava、その他のVMベースの言語などの言語の場合は、VMを信頼して、アプリケーションがさまざまなLinuxディストリビューションで動作することを確認できると思います。
また、参照できるLinuxStandardBaseもあります。
HTH、アミット
これは非常に古い質問だと思いますが、検索結果の上位に表示され、言及されていません。
CDEは、ポータブルLinuxアプリケーションを作成するためのツールです。このツールは、実行時に分析することにより、必要なすべてのファイル(ライブラリを含む)を一緒にパッケージ化します。私はこれをコマンドラインツールで数回正常に使用しました。その一例は、カスタムディストリビューションを実行している古いハードウェアアプライアンスでtcpdumpを実行することです。CDEもソースを必要とせず、実行可能な実行可能ファイルをパッケージ化するだけです。
ある時点で、cde
コマンドの実行中にエラーが発生しましたが、コマンドの前に。を付けることで修正されましLD_ASSUME_KERNEL=2.4.1
た。これは、数年前の最近のバージョンでは必要ない場合があります。
コードはGitHubにもあります:https ://github.com/pgbovine/CDE
The best way is to distribute the source code and to make it easy to build the source on any reasonable Linux distribution. This is better than binary distribution because it is not enough to make the binary compatible with shared libraries. You also need to make sure you adapt your program to things like distribution specified locations and conventions for where web apps go, or how e-mail is sent, or how services are started, or how to determine the default paper size, or a myriad of other details.
See for example the Debian Policy Manual for a document describing many of the things a distribution needs to decide to ensure compatibility between applications running on it. You don't need to read it through or learn it by heart, but it shows the scope of the issues that may trip you.
You should probably work together with several of the major distributions to ensure your application works well with all of them. Most distributions' developers will happily help if you approach them politely. If you're lucky, you can attract volunteers from the distros to make the binary packaging for you, and that will quickly give you feedback on what you need to change at the source level to make your application easy to package.
The Linux Standard Base already mentioned by others attempts to work out a cross-distribution solution to these variables, but it is not comprehensive and not fully supported by most distributions. However, most distributions consider it a problem if they accidentally break LSB compatibility.
できます。ただし、使用する共有ライブラリのバージョンにも依存します。これには、ディストリビューションごとに異なる可能性のあるコンパイラバージョンによって強制されるlibc、libstdc++が含まれます。
通常、同じライブラリセットが利用可能である限り、Linuxディストリビューション全体でバイナリを使用しても問題ありません。'ldd'を使用して、バイナリに必要なライブラリを確認できます。libcは、関係するディストリビューションで同じバージョンを持っている必要があります。
移植性のために実行可能ファイルを静的にリンクすることができます。
LSBは間違いなくチェックする価値があります。ライブラリでの作業に関しては、SOhttps ://stackoverflow.com/questions/1209674/shipping-closed-source-application-for-linux/1242738#1242738でのこの回答とこの詳細な処理に最も満足しました。 rpathメカニズムhttp://www.eyrie.org/~eagle/notes/rpath.html
HTMLはどうですか?
それはクロスプラットフォームであり、永遠に存在し、 caniuseに相談すれば、ターゲット環境を知っています。それは私が今まで夢見ていたあらゆるUIをレンダリングすることができ、javascriptを学びたいのであれば、言語を切り替えることなく、サーバープログラミングの観点とクライアントプログラミングの観点からこれに取り組むことができます。両方とも。
これはおそらく、最近のマシン言語フランスに最も近いものです。これは、関係するすべての人にとって潜在的により多くのピッキンがあることを意味するため、良いことです。
Webブラウザーが、3DグラフィックスのレンダリングやPGPスタイルの暗号化など、プログラムに必要なほとんどのことを実行することを人々は知りません。
プラットフォームとしてのブラウザーで私が目にする最大の利点は、すべての甥が新しいコンピューターにブラウザーをインストールする方法を知っていることです。そこから、一部のストアでのパッケージ化を含め、URLを取得するだけです。