2017-08-18 5 views
0

私はRasbpianを実行しているRaspberry Piで実行する64bit Ubuntuマシン上でnode.jsアプリケーションを開発しています。 Piは通常インターネットに接続されていないので、プロジェクトフォルダを手動でSDカードにコピーします。私は明らかにのみ64ビットで動作し、必要なモジュールの一つ、epollので、そこにアプリケーションを実行することはできません。32ビットシステム用に64ビットでnode.jsモジュールを準備するには?

Error: /home/pi/bla/node_modules/epoll/build/Release/epoll.node: wrong ELF class: ELFCLASS64

at Object.Module._extensions..node (module.js:602:18)

at Module.load (module.js:507:32) at tryModuleLoad (module.js:470:12)

at Function.Module._load (module.js:462:3)

at Module.require (module.js:517:17)

at require (internal/module.js:11:18)

at bindings (/home/pi/bla/node_modules/bindings/bindings.js:76:44)

at Object. (/home/pi/bla/node_modules/epoll/epoll.js:1:99)

at Module._compile (module.js:573:30)

at Object.Module._extensions..js (module.js:584:10)

これはnpm uninstall epoll、その後npm install epollを実行することによって固定することができますが、パイが接続されている場合のみインターネット。もちろん、この特定のモジュールをコピーすることはできませんが、そうでない場合はこのエラーを回避する方法はありますか?

答えて

1

問題はコピーとは関係ありません。これは、32ビットバージョンで64ビットノードバージョンを使用してコンパイルされたパッケージを実行しようとしているためです。

あなたのUbuntuシステムでNodeと同じビット数(64ビットOSに32ビットノードをインストールできます)とを使用してパッケージをコンパイルし、次にをコピーします。

+0

はい私はコピーのプロセスが問題を引き起こすとは思わなかった。私はどのように64ビットシステムに32ビットノードモジュールをインストールするか分からなかった。私は質問のタイトルを変更しました。ありがとう! – speedymcs

+1

@speedymcsあなたは[nvm](https://github.com/creationix/nvm)をインストールする必要があります。これは 'nvm use 32' – James

1

インストール時にインターネットに接続していない場合、唯一の方法は32bitと64bitの両方のnode_moduleを事前に準備することです。最初の起動時にCPUをチェックし、またはnode_modules_32へのシンボリックリンクnode_modulesを作成してください。

関連する問題