Linuxのインストールでコードを書き直すことなく実行できるようにしたいアプリを書く予定です(インターフェイス、GNOME対KDEなどを除く)。
私はディストリビューション間の違いの詳細についてはあまり経験がありません。また、対話するためにカーネルの奥深くを突っ込む以外は計画段階に入ったばかりなので、プロジェクトの詳細を提供することもできませんできるだけ多くのコンピューターのハードウェアで。
Linuxのインストールでコードを書き直すことなく実行できるようにしたいアプリを書く予定です(インターフェイス、GNOME対KDEなどを除く)。
私はディストリビューション間の違いの詳細についてはあまり経験がありません。また、対話するためにカーネルの奥深くを突っ込む以外は計画段階に入ったばかりなので、プロジェクトの詳細を提供することもできませんできるだけ多くのコンピューターのハードウェアで。
回答:
開発する際に留意すべき点、
pkg-config
代わりに、外部パッケージを見つけるなどのツールを使用してください。wxWidgets
実行場所に応じてネイティブUI要素をレンダリングできるフレームワークを使用します。アプリケーションがすべてのディストリビューションで動作することを完全に保証する唯一の方法は、実際に実行してテストすることです。これを行う1つの方法は、ディストリビューションごとに仮想マシンを作成することです。VirtualBoxを使用してこれを行うことができます。この種のテストのために、私のマシンには約8台の仮想マシンがあります。
ディストリビューションごとにパッケージのインストール方法が異なるため、アプリケーションのデプロイについてあまり一般化することはできないと思います。Debianはdeb
、fedoraを使用しrpm
ます。
組み込みLinux向けに作成している場合、留意すべき主なことは、ディストリビューションごとにライブラリバージョンのコレクションが異なることです。したがって、十分に古いベースラインを設定する必要があります。Debianの更新が遅いため、Debian安定版(または、リリース後数か月以内に存在する場合は旧安定版)が妥当な選択になる傾向があります。
ディストリビューションごとに個別にパッケージ化する必要があります。アプリケーションがオープンソースであり、成功している場合は、誰かがそれを手に入れてパッケージングに貢献することを期待できますので、それは必須のスキルではありません。パッケージ化以外のディストリビューション間の違いは、開発や日常的な使用ではなく、システム管理にほとんど影響します。
カーネルにパッチを適用する場合、各ディストリビューションには非互換性を引き起こす可能性のある独自のパッチがあり、各ディストリビューションには利用可能なカーネルインターフェイスの異なるセットに依存するユーザーランド設定があるため、より多くのディストリビューションでテストする必要があります(要件など)モジュールではないものもあります)。
アプリケーションを組み込みシステム(ここではサーバー、デスクトップ、ラップトップではないものを意味します)で動作させたい場合、上記で書いたことは当てはまりません。Linuxカーネルを実行している場合でも、通常のライブラリはありません。μClibc、dietlibc、Bionicなどを優先してGlibcを回避することから始めます。
Linux Standards Base
特に、アプリケーションにサービス(デーモン)が含まれる場合に役立つことがわかりました。これらのサイトのいくつかを参照してください。
ただし、リソースだけに限定する必要がある場合は、File Hierarchy Standardになります。
主なことは、言語を選択することです。これはどの言語で実行されますか?Linuxディストリビューションで実行したい場合は、Pythonで記述できます。Linuxで実行されるpythonアプリは、(基本的に)変更なしでLinuxディストリビューションで実行されます。
Pythonには、素晴らしいGTKおよびQtバインダーもあります。私はgtkを使ったことは一度もありませんが、PyQtは本当に素晴らしいです。
pythonの利点は、おそらく拡張機能をコンパイルする必要がないことです(ただし、記述内容に完全に依存します。必要な場合でも、非常に簡単です)。また、pypiを介した優れた配布ソースもあります。 。そこからPythonプログラムをインストールするのは、通常、ディストリビューションパッケージリポジトリよりも簡単です。