すべてのLinuxディストリビューションで実行できるアプリケーションを作成するには、何に注意する必要がありますか?

すべてのLinuxディストリビューションで実行できるアプリケーションを作成するには、何に注意する必要がありますか?

私はコードを書き直さずに(インターフェース、GNOME、KDEなどを除く)、すべてのLinuxインストールで実行できるアプリケーションを書くことを計画しています。

私はディストリビューション間の違いの詳細な経験がなく、プロジェクトに関する詳細を提供することはできません。計画段階に入るだけで、カーネル内でできるだけ対話することを除いて、プロジェクトに関する詳細を提供することはできません。できるだけコンピュータのハードウェアを使用してください。

答え1

開発時の注意点

  1. 標準ビルドシステムの使用
  2. ハードコーディングライブラリのパスを防ぐ
  3. pkg-config代わりに、外部パッケージの検索などのツールを使用してください。
  4. wxWidgetsアプリケーションにGUIがある場合は、実行している場所に基づいてデフォルトのUI要素をレンダリングできるフレームワークなどを使用してください。
  5. 他のディストリビューションで実行されないパッケージで依存関係を生成しないでください。

アプリケーションがすべてのディストリビューションで動作するかどうかを完全に確認する唯一の方法は、アプリケーションを実際に実行してテストすることです。これを達成する 1 つの方法は、各デプロイメントに仮想マシンを作成することです。これには VirtualBox を使用できます。このタイプのテストのために、私のボックスには約8つのVMがあります。

すべてのディストリビューションはパッケージをインストールするためにさまざまな方法を使用しているため、アプリケーションのデプロイメントをあまり一般化できないと思います。 Debian はdebFedora を使用しますrpm

答え2

私の2cですが、公式リポジトリにパッケージに付属しているアプリやソースからコンパイルされたアプリについては、あまり面倒なことはありません。サードパーティのバイナリとしてデプロイされたアプリケーションは、いくつかの依存関係の問題に遭遇する傾向があります。通常、これらの問題を追跡して手動で解決する必要があります。

したがって、Linuxアプリをリリースするには、パッケージ化して公式リポジトリに入れます。それ以外の場合は、ソースコード形式でデプロイし、ユーザーが自分のシステムに合わせてコンパイルするようにします。

答え3

非埋め込みLinux用のコードを書くときに覚えておくべき最も重要なことは、ディストリビューションごとにライブラリバージョンセットが異なることです。したがって、十分に古いベースラインを設定する必要があります。 Debian は更新速度が遅いため、安定した Debian (またはリリース後数ヶ月以内に存在する古い安定) が合理的な選択であることがよくあります。

各ディストリビューションを別々にパッケージ化する必要があります。アプリがオープンソースで完全に成功した場合は、誰かがアプリをインポートしてパッケージ化するのに役立ちますので、これは必須の技術ではありません。パッケージングを控えて、ディストリビューション間の違いは、主に開発や日常的な使用ではなく、システム管理に影響します。

カーネルにパッチを適用する場合は、より多くのディストリビューションでテストする必要があります。各ディストリビューションには独自のパッチがあり、非互換性が発生する可能性があり、各ディストリビューションは使用可能なユーザースペース設定の他のカーネルインターフェイスセットに依存する可能性が高いためです(たとえば、次の項目が必要です)。モジュールではありません)。

アプリケーションを組み込みシステム(ここではサーバー、デスクトップ、またはラップトップ以外のシステムを意味します)で実行する場合は、上記の内容が正しくないことに注意してください。 Linuxカーネルを実行しても、一般的に使用されるライブラリはありません。 、始める...glibc賛成して忌避したμClibcフードライブラリバイオニック、等。

答え4

ディストリビューションの主な違いは、パッケージングとアプリケーションのデフォルト/構成です。決定されたアーキテクチャで実行されるすべてのコードは、そのアーキテクチャのすべてのリリースで実行する必要があります。さらに、KDEでGNOMEアプリケーションを簡単に実行でき、その逆も可能です。

関連情報