Raspberry PiにNPMをインストールする(Wheezy Image)


28

幸運なことに、今年の木の下でRaspberry Piを手に入れることができたので、デバイスでNode.jsを使って少し楽しかったです。ただし、パッケージをプルダウンしてアプリケーションにプラグインできる場合、Node.jsの方がはるかに興味深いです。ここで問題が発生します。

次のコマンドでNode.jsとともにNPMをインストールしようとすると:

sudo apt-get install nodejs npm

次のエラーが表示されます。

pi@raspberrypi ~ $ sudo apt-get install nodejs npm
Reading        package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nodejs : Breaks: npm (< 1.1.4~dfsg-2~) but 1.1.4~dfsg-1 is to be installed
 npm : Depends: node-semver but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

DebianベースのLinuxオペレーティングシステムでパッケージ管理がどのように機能するかについてはかなり新しく、node.jsコミュニティが特定のパッケージをどのように構成したかについてはあまり知りません。node.jsを単独でインストールすると問題なく動作し、NPMを単独でインストールしようとすると、これが得られます。

pi@raspberrypi ~ $ sudo apt-get install npm
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: nodejs-dev but it is not going to be installed
       Depends: node-request but it is not going to be installed
       Depends: node-mkdirp but it is not going to be installed
       Depends: node-minimatch but it is not going to be installed
       Depends: node-semver but it is not going to be installed
       Depends: node-ini but it is not going to be installed
       Depends: node-graceful-fs but it is not going to be installed
       Depends: node-abbrev but it is not going to be installed
       Depends: node-nopt but it is not going to be installed
       Depends: node-fstream but it is not going to be installed
       Depends: node-rimraf but it is not going to be installed
       Depends: node-tar but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

確信はありませんが、私の腸は、それがnode-semverパッケージに関係していることを教えてくれます。私がインストールした場合はnodejs、それ自体で、パッケージをして、インストールしようとnode-semver、これは私が得ることを出力します。

pi@raspberrypi ~ $ sudo apt-get install node-semver
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 node-semver : Depends: nodejs but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

ポインタはありますか?

回答:


22

すべて一緒にインストールしてみてください。

sudo apt-get install nodejs npm node-semver

32

これはNodeJsをraspberry piにインストールするための最良の方法です。私はその方法が大好きで、それは簡単だと思います。後で更新するために、 '/ opt / nodejs'フォルダーを新しいリリースに置き換えてください:

wget https://nodejs.org/dist/v4.2.4/node-v4.2.4-linux-armv6l.tar.gz

sudo mv node-v4.2.4-linux-armv6l.tar.gz /opt

cd /opt

sudo tar -xzf node-v4.2.4-linux-armv6l.tar.gz

sudo mv node-v4.2.4-linux-armv6l nodejs

sudo rm node-v4.2.4-linux-armv6l.tar.gz

sudo ln -s /opt/nodejs/bin/node /usr/bin/node

sudo ln -s /opt/nodejs/bin/npm /usr/bin/npm

最新のRaspberryバージョンにはarm71バージョンもあります。


2
この答えは最新のものです。
ウリエル

1
これはこれまでの最善のソリューションでしたが、別のノードを見つけました。nvm(ノードバージョンマネージャー)を使用すると、ノードを簡単に更新できると同時に異なるバージョンも使用できます。すべてのユーザーがノードにアクセスできるように、シンボリックリンクの手順を共有します。ここでは簡単なチュートリアルlosant.com/blog/how-to-install-nodejs-on-raspberry-piシンボリックリンクの問題を回避するための解決策を持つ:stackoverflow.com/a/29903645/3480671
ボッシュ

注意:/usr/local/binローカル管理者が管理するファイルダンプへのローカル管理者が管理するシンボリックリンクには、やや適切です/opt
JamesTheAwesomeDude

それは私のために働いた、私が持っていた実際の問題は、NPMは、ノードが付属していませんでしたが、NPMは、スタンドアロンとして存在していなかったということです、これはNPMがインストールされましたが、今ノードが動作しません
ヤコブ・シュナイダー

4

Adafruitは(比較的)現在のノードとnpmを提供します。役に立つコンパイルが見つからなかった後、これはいくつかのパッケージ(express、body-parser、pg)でうまくいきました。


2

pi 3でraspbian jessieを実行します。ノードはイメージにプリインストールされていますが、npmはインストールされていません。npmのインストールに課題があり、このスレッドが手がかりを得るのに役立ちました。

私が受け取ったエラーは

pi@raspberrypi:~ $ **sudo apt-get install nodejs npm node-semver**
Reading package lists... Done
Building dependency tree       
Reading state information... Done
nodejs is already the newest version.
nodejs set to manually installed.
The following extra packages will be installed:
  gyp libc-ares-dev libjs-node-uuid libjs-underscore libssl-dev 
  libssl-doc libv8-3.14-dev node-abbrev node-ansi node-ansi-color-table 
  node-archy node-async node-block-stream node-combined-stream 
  node-cookie-jar node-delayed-stream node-forever-agent node-form-data 
  node-fstream node-fstream-ignore node-github-url-from-git node-glob 
  node-graceful-fs node-gyp node-inherits node-ini node-json-stringify-safe
  node-lockfile node-lru-cache node-mime node-minimatch
  node-mkdirp node-mute-stream node-node-uuid node-nopt node-normalize-package-data
  node-npmlog node-once node-osenv node-qs node-read node-read-package-json
  node-request node-retry node-rimraf node-sha node-sigmund node-slide 
  node-tar node-tunnel-agent node-underscore node-which nodejs-dev
Suggested packages:
  node-hawk node-aws-sign node-oauth-sign node-http-signature
The following NEW packages will be installed:
  gyp libc-ares-dev libjs-node-uuid libjs-underscore libssl-dev 
  libssl-doc libv8-3.14-dev node-abbrev node-ansi node-ansi-color-table 
  node-archy node-async node-block-stream node-combined-stream 
  node-cookie-jar node-delayed-stream node-forever-agent node-form-data   
  node-fstream node-fstream-ignore node-github-url-from-git node-glob 
  node-graceful-fs node-gyp node-inherits node-ini node-json-stringify-safe
  node-lockfile node-lru-cache node-mime node-minimatch
  node-mkdirp node-mute-stream node-node-uuid node-nopt node-normalize-package-data
  node-npmlog node-once node-osenv node-qs node-read node-read-package-json
  node-request node-retry node-rimraf node-semver node-sha node-sigmund 
  node-slide node-tar node-tunnel-agent node-underscore node-which  
  nodejs-dev npm
0 upgraded, 55 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,222 kB/3,708 kB of archives.
After this operation, 13.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
**Err http://mirrordirector.raspbian.org/raspbian/ jessie/main libssl-dev armhf 1.0.1k-3+deb8u2
  404  Not Found [IP: 5.153.225.207 80]
Err http://mirrordirector.raspbian.org/raspbian/ jessie/main libssl-doc all 1.0.1k-3+deb8u2
  404  Not Found [IP: 5.153.225.207 80]
E: Failed to fetch 
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?**
pi@raspberrypi:~ $ 

以下の2つのコマンドが順番に助けてくれました

sudo apt-get update
sudo apt-get install npm

3
投稿を読みやすくするために編集してください。テキストの壁は本当に必要ですか?
ガニマ

2

Raspberry PI(Zero to 3)でNPM(およびNode.jsの最新バージョン)を取得する最も簡単な方法は、「NVM」(Node Version Manager)を使用することです。

NVMをインストールするには:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

インストールしたら、次のようにいつでもNode.jsの最新バージョンをダウンロードできます。

nvm install node

できた!

NPMがインストールされていることを確認します。

npm --version

これは私の最初のソリューションであるpi 3b +でうまく機能し、npm 1.6をインストールし、パッケージのインストール時にエラーが発生し続けました。NVMは正常に動作しました。
sirclesam

1

バイナリパッケージで問題が発生している場合は、自分でコンパイルすることをお勧めします。このようにすると、何かが失敗している間、またはバイナリパッケージが異なるタイプのプロセッサ(ARMではない)である可能性がわかります。

Raspberry Pi NodeJSのコンパイル手順については、https: //gist.github.com/3301813を確認することをお勧めします


ありがとう、ベン。以前その記事に出くわしました。NPMはNode.jsソースツリーとは別のものであると想定しましたか?

NPMはソースgithub.com/isaacs/npmで分離されていますが、nodejsの最近のバージョンには通常npmがバンドルされています。

1

Benが指摘したように、Raspberry PiでNode.jsを自分でコンパイルすることをお勧めします。0.8.10(またはそう)以降、これは苦労せずに可能です。単に

$ ./configure
$ make
$ sudo make install

以上です。次に、を含むNode.jsがインストールされnpmます。

チャームのように動作します:-)!


ありがとう、Golo。ミニテックは、私にとってはうまくいく答えを提供しました。Raspberry Piは非常に遅いので、ビルドしてからインストールするのは少し苦痛だと思います。

1
を使用してインストールされているNode.jsのバージョンを見て、apt-getこのバージョンをNode.jsの現在のバージョンと比較してください。使用することをお勧めしなかった理由がわかりますapt-get... ;-)
Golo Roden

ソースがコンパイルされるのを本当に待ちたくない場合は、Raspberry Piで使用できるコンパイル済みのtarballをいくつか作成しました。gist.github.com/3245130
アダムMW

1

入力するだけです

pi@raspberrypi ~ $ sudo apt-get install nodejs npm node-semver 

それは私のために働いたし、私はエラーなしでそれをインストールすることができ、プログラムで動作するはずです!


1
より正確に:この方法でインストールしたノードのバージョン、パッケージソース(新しいものを追加しましたか?)、インストールしたOS、rPiのバージョン、ノードアーチ( armv6、v7)。あなたは答えが何かを解決するかもしれませんが、誰もそれを使用しないので私たちは知りません。
ボッシュ

0

この投稿をフォローしてみてください。/ opt / node / npmでnpmを実行することはできますが、/ usr / bin /にコピーすると「npmlog」が見つかりません。


ソースサイトがダウンした場合、ページが削除または移動された場合など、ソースに追加情報を帰属させながらステップを回答にコピーすることをお勧めします。少なくともプロセスの大まかな流れの概要。
テボD
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.