組み込みターゲットでベンダーが提供したLinuxを使用しているなど、特定make
の機能が欠落しています。apt-get
組み込みターゲットボードにパッケージマネージャをインストールできますか?これは正しいことですか?ちょっと!
答え1
一般に、現在の標準によれば、組み込みシステムは限られたリソース、小さなRAM、および非常に小さな記憶領域を持っているため、システム環境が制限され、開発ツールが不足しています。
通常、次の代替ライブラリユークリーブまた、リソースを節約するには代わりにglibcを使用してください。
uClibcは、小さなスペースでできるだけ多くの機能を提供することを目的としており、主に組み込み目的で作成されています。また、サポートされている機能を高度に構成できますが、構成全体でABIの違いが発生します。 uClibcは組み込みLinux用のCライブラリに再設計されました。 MS-DOSサポート、BeOS、AmigaOなどの他のシステムについては心配する必要はありません。これにより、多くの複雑さを排除し、Linuxに対して非常に慎重に最適化することができます。
通常、開発フェーズはクロスコンパイラを介してシステム外で実行されます。したがって、ツールチェーン/開発環境は、他のマシン(おそらく完全なLinux開発サーバー)にインストール/設定する必要があります。
一部のオープンソースプロジェクトではツールチェーンが無料で提供されていますが、商用組み込みソリューションでは通常、ベンダーからツールチェーンを入手する必要があります。
~から組み込みLinux
ツールチェーンは、GCC、binutils、およびglibc(GNUツールチェーンの一部)などの特定の手順を介して相互に接続された(または接続されている)さまざまなソフトウェア開発ツールのセットです。オプションで、ツールチェーンには、特定のプログラミング言語(C++など)用のデバッガやコンパイラなどの他のツールを含めることができます。
パッケージマネージャの場合は、ローカルパッケージがあることを確認してください。このパッケージには関連する公式リポジトリがあり、システムにはより多くのユーティリティとセキュリティアップデートがあります。たとえば、OpenWRTはこれを呼び出します。オッケ。
Opkg(Open PackKaGe Management)は、ipkgに基づく軽量パッケージ管理システムです。 C言語で書かれており、APT / dpkgとの仕組みは似ています。これは組み込みLinuxデバイスで使用するように設計されており、この機能のためにOpenEmbeddedおよびOpenWrtプロジェクトで使用されます。
答え2
Linuxカーネルを実行しているシステムにDebianパッケージをインストールするには、次の場所にDebian階層をインストールできます。chrootそしてブート防止プログラム。 Debian パッケージマネージャは、重要なシステムファイルの内容を決定するためにプライマリシステムと競合するため、Debian パッケージをルートディレクトリに直接インストールすることはほとんど不可能です。が何であるかを決定するためのツールは1つだけです/bin/sh
。
シュルートchrootにインストールされたプログラムを透過的に実行するのに役立ちます。
64ビットDebian / Ubuntuで32ビットプログラムを実行するにはどうすればよいですか?他の Debian 様ディストリビューションの下に、chroot で Debian 様ディストリビューションをインストールする方法についてのチュートリアルがあります。外部システムがDebianに似ていない場合は、少し調整するだけで動作します。単に手動でdebootstrapをダウンロードするか、2つのステップでdebootstrapを実行できます(マニュアルを参照)。 1つのステップは、--foreign
PCにディレクトリツリーを準備することです。debootstrap --second-stage
適切であると思われるように、ターゲットデバイスとディレクトリツリーを転送します。
しかし、これが(Android携帯ではなく)リソースが限られた組み込みデバイスである場合、Debianは太りすぎである可能性があります。Ruy F. Ribeiroの回答代替軽量ディストリビューションに関するいくつかの提案があります。
答え3
正しい方法は、パッケージマネージャを使用せずに必要なソフトウェアを手動でインストールすることです。
システムに利用可能なパッケージマネージャがない場合、通常はそのような理由があります。スペース制限があるか(スペース制限がないことをmake
示す良い指標です)、システムは既存のリポジトリとバイナリ互換性がありません。したがって、パッケージマネージャをインストールしようとすると時間が無駄になる可能性があります。
実際にシステムにパッケージマネージャをインストールすることは可能ですが、パッケージマネージャをサポートしていないシステムではパッケージマネージャの使用に問題がある可能性があります。既に持っているファイルが何であるか、そのファイルがどの依存関係を満たしているのかを教えてください。デフォルトでは、パッケージマネージャを介して新しいソフトウェアを追加するには、パッケージを使用してシステム全体を最初から再インストールする必要があります。
答え4
はい、可能です。 aptのソースコードを使用できますここ ソースをダウンロードしてビルドしてターゲットに追加します。
apt-getを使用するには、パッケージを含む別々のリポジトリを維持する必要があります。