Memasang NPM di Raspberry Pi (Gambar Wheezy)


28

Saya cukup beruntung mendapatkan Raspberry Pi di bawah pohon tahun ini dan saya bersenang-senang bermain dengan Node.js di perangkat. Namun, Node.js jauh lebih menarik ketika Anda dapat menarik turun paket dan menancapkannya ke aplikasi Anda - dan di sinilah saya mengalami masalah.

Jika saya mencoba menginstal NPM bersama dengan Node.js dengan perintah berikut:

sudo apt-get install nodejs npm

Saya mendapatkan kesalahan berikut:

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.

Saya cukup baru tentang bagaimana manajemen paket bekerja dengan sistem operasi Linux berbasis Debian dan tidak tahu banyak tentang bagaimana komunitas node.js telah menyusun paket-paket spesifik mereka. Perlu dicatat bahwa menginstal node.js dengan sendirinya berfungsi dengan baik, dan jika saya mencoba menginstal NPM dengan sendirinya ini adalah apa yang saya dapatkan.

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.

Saya tidak yakin, tetapi nyali saya mengatakan bahwa itu ada hubungannya dengan node-semverpaket. Jika saya menginstal nodejspaket dengan sendirinya dan kemudian mencoba untuk menginstal node-semverini adalah output yang saya dapatkan.

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.

Ada petunjuk?

Jawaban:


22

Coba instal semuanya:

sudo apt-get install nodejs npm node-semver

32

Ini adalah cara terbaik untuk menginstal NodeJs pada raspberry pi, saya suka itu, dan saya pikir itu mudah dilakukan, dan nanti untuk pembaruan cukup ganti folder '/ opt / nodejs' dengan rilis baru:

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

Perhatikan bahwa ada juga versi arm71 untuk versi Raspberry terakhir.


2
Jawaban ini adalah yang terbaru.
Uriel

1
Ini adalah solusi terbaik sejauh ini tetapi saya baru saja menemukan yang lain, menggunakan nvm (Node Version Manager) yang juga memungkinkan Anda untuk dengan mudah memperbarui simpul tetapi juga menggunakan versi yang berbeda pada saat yang sama. Mereka berbagi langkah-langkah symlink untuk memungkinkan akses node untuk semua pengguna. Tutorial singkat di sini losant.com/blog/how-to-install-nodejs-on-raspberry-pi dengan solusi untuk menghindari masalah symlink: stackoverflow.com/a/29903645/3480671
bosch

NB: /usr/local/binakan sedikit lebih sesuai untuk tautan simbolik yang dikelola admin-lokal ke arsip yang dikelola admin-lokal di/opt
JamesTheAwesomeDude

itu bekerja untuk saya, masalah sebenarnya yang saya alami adalah bahwa NPM tidak datang dengan node, tetapi NPM tidak ada sebagai standalone, ini membuat NPM diinstal, tetapi sekarang Node tidak berfungsi
Jacob Schneider

4

Adafruit menyediakan (relatif) node saat ini dan npm. Setelah tidak menemukan kompilasi bermanfaat, ini berhasil bagi saya dengan sejumlah paket (express, body-parser, pg)


2

Saya menjalankan jessie raspbian pada pi 3. Node sudah diinstal sebelumnya pada gambar tetapi npm tidak . Memiliki tantangan dalam menginstal npm dan utas ini membantu saya mendapatkan petunjuk.

Kesalahan yang saya terima adalah

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 perintah di bawah ini secara berurutan membantu saya

sudo apt-get update
sudo apt-get install npm

3
Bisakah Anda mengedit posting Anda agar lebih mudah dibaca. Apakah dinding teks benar-benar diperlukan?
Ghanima

2

Saya menemukan cara termudah untuk mendapatkan NPM (dan versi terbaru Node.js) pada Raspberry PI (Zero to 3) adalah dengan menggunakan "NVM" ( Node Version Manager ).

Untuk menginstal 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

Setelah diinstal, Anda dapat mengunduh versi terbaru Node.js kapan saja seperti:

nvm install node

Selesai!

Verifikasi NPM diinstal:

npm --version

Ini bekerja dengan baik untuk saya pada pi 3b + solusi pertama saya menginstal npm 1.6 dan terus mengalami kesalahan saat menginstal paket. NVM membuat semuanya berjalan dengan baik.
sirclesam

1

Jika Anda mengalami masalah dengan paket biner, saya sarankan Anda mengkompilasinya sendiri, dengan cara ini Anda mendapatkan ide yang lebih baik ketika ada sesuatu yang gagal / paket biner mungkin untuk jenis prosesor yang berbeda (bukan ARM).

Saya sarankan untuk memeriksa https://gist.github.com/3301813 untuk instruksi Kompilasi Raspberry Pi NodeJS.


Ben terima kasih. Saya telah menemukan artikel itu sebelumnya. Saya berasumsi bahwa NPM mungkin terpisah ke pohon sumber Node.js?

NPM terpisah di source github.com/isaacs/npm namun versi terbaru untuk nodejs biasanya disertai dengan paket npm.

1

Seperti yang ditunjukkan Ben, saya sarankan untuk mengkompilasi Node.js sendiri di Raspberry Pi. Sejak 0.8.10 (atau lebih) ini dimungkinkan tanpa basa-basi. Secara sederhana

$ ./configure
$ make
$ sudo make install

dan hanya itu. Kemudian Node.js akan diinstal termasuk npm.

Bekerja seperti pesona :-)!


Terima kasih Golo. Minitech memberikan jawaban yang lebih baik bagi saya. Raspberry Pi cukup lambat jadi saya akan berpikir membangun itu, kemudian menginstal akan sedikit lebih menyakitkan.

1
Silakan lihat versi Node.js yang diinstal menggunakan apt-get, dan kemudian membandingkan versi ini dengan versi Node.js saat ini, dan Anda akan tahu mengapa saya tidak menyarankan untuk menggunakan apt-get... ;-)
Golo Roden

Saya telah membuat beberapa tarbal yang sudah dikompilasi yang dapat digunakan pada Raspberry Pi jika Anda tidak benar-benar ingin menunggu sumber untuk dikompilasi. gist.github.com/3245130
Adam MW

1

Yang Anda lakukan hanyalah mengetik

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

Itu bekerja untuk saya dan saya dapat menginstalnya tanpa kesalahan dan itu harus bekerja dengan sebuah program!


1
Harap lebih tepat: versi simpul apa yang Anda instal dengan cara ini, sumber paket apa (apakah Anda menambahkan yang baru?), OS apa yang Anda instal, versi rPi apa yang Anda miliki, lengkungan simpul apa itu ( armv6, v7). Jawaban Anda mungkin memecahkan sesuatu tetapi kami tidak tahu apa yang tidak akan digunakan oleh siapa pun.
bosch

0

Coba ikuti posting ini . Saya berhasil menjalankan npm di / opt / node / npm, tetapi ketika saya menyalinnya ke / usr / bin / ia melewatkan 'npmlog'.


ITU lebih disukai bahwa Anda menyalin langkah-langkah ke dalam jawaban sambil mengaitkan sumber Anda untuk informasi tambahan, jika situs sumber turun, halaman dihapus atau dipindahkan, dll. Setidaknya ringkasan dari garis besar proses.
Tevo D
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.