共有ライブラリを組み込み Linux デバイスにコピーするだけで安全ですか?

共有ライブラリを組み込み Linux デバイスにコピーするだけで安全ですか?

以下は、ベンダーが提供するハードウェアボード上の組み込みLinuxディストリビューションのベンダーユーザーマニュアルに記載されています。

開発者は、FTP または NFS 経由でプログラムを X-Linux デバイスに配置できます。実行する前に、開発ワークステーションで ldd コマンドを使用して、依存ファイルを確認します。また、プログラムが適切に実行されるように、関連ファイルを X-Linux に配置します。以下は、X-Linux に「syslinux」を配置する場合の例です。

  [root@X-Linux]:/sbin # ldd syslinux 
          linux-gate.so.1 => (0xb80a0000)
          libc.so.6 => /lib/libc.so.6 (0xb7f60000) 
          /lib/ld-linux.so.2 (0xb80a1000) 
  [root@X-Linux]:/sbin # 

上記のメッセージから、libc.so.6 は、そしてld-linux.so.2 は、syslinux にはこれらが必要です。syslinux が正しく動作するには、これら 2 つのファイルを X-Linux に配置します。

このデバイスで実行するソフトウェアを作成する必要がありますが、Stack Exchange で受け取った多くのアドバイスは、このアドバイスと矛盾する方向を示しています (特定の組み込み開発環境の設定、libc の古いバージョンへのリンク、静的リンクなどの提案)。ベンダーから提供された上記の情報は、安全で信頼できる方法でしょうか?

答え1

あなたできる同じプロセッサアーキテクチャファミリーで同じオペレーティングシステムを実行している組み込みデバイスにライブラリをコピーします。デバイスには86 のプロセッサは、32 ビット PC と同じファミリです。したがって、デスクトップ マシンに 32 ビット Linux システムがある場合は、デスクトップ マシンからデバイスにライブラリと実行可能ファイルをコピーできます。

一方で、私はそのやり方をお勧めしません。結局、出所不明のファイルがごちゃ混ぜになってしまい、依存関係を管理したり、ソフトウェアをアップグレードしたり、アンインストールしたりすることができなくなります。マニュアルX-Linuxは拡張性を考慮していない小さなLinuxシステムです。X-Linuxと並行して、またはX-Linuxの代わりに別のLinuxディストリビューションをインストールすることをお勧めします。他のディストリビューションがX-Linuxと並行してインストールされている場合は、そのディストリビューションのプログラムをchroot(それでも X-Linux カーネルによって制約されます)。

答え2

「開発ワークステーション」とは「組み込み開発環境」を意味していることを願っています。そうでないと、アーキテクチャの違い (無効な命令エラー) により、アプリケーションがまったく実行されない可能性があります。

デバイス32 ビット x86 プロセッサを搭載しているようなので、セットアップは難しくないはずですが、(おそらく) 64 ビット システムからライブラリをコピーすると、悲惨な結果に終わるでしょう。

関連情報