รับ NPM ติดตั้งบน Raspberry Pi (ภาพ Wheezy)


28

ฉันโชคดีที่ได้รับ Raspberry Pi ใต้ต้นไม้ในปีนี้และฉันสนุกกับการเล่น Node.js บนอุปกรณ์ อย่างไรก็ตาม Node.js น่าสนใจยิ่งขึ้นเมื่อคุณสามารถดึงแพ็คเกจและเสียบเข้ากับแอปพลิเคชันของคุณ - และนี่คือที่ที่ฉันกำลังมีปัญหา

ถ้าฉันพยายามติดตั้ง NPM พร้อมกับ Node.js ด้วยคำสั่งต่อไปนี้:

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.

ฉันค่อนข้างใหม่เกี่ยวกับวิธีการจัดการแพ็คเกจที่ทำงานกับระบบปฏิบัติการ 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.

ตัวชี้ใด ๆ

คำตอบ:



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

โปรดทราบว่ายังมีรุ่น arm71 สำหรับรุ่น Raspberry ล่าสุด


2
คำตอบนี้เป็นคำตอบล่าสุด
Uriel

1
นี่เป็นทางออกที่ดีที่สุด แต่ฉันเพิ่งพบอีกตัวโดยใช้ nvm (Node Version Manager) ซึ่งช่วยให้คุณอัปเดตโหนดได้อย่างง่ายดาย แต่ยังใช้เวอร์ชันที่แตกต่างกันในเวลาเดียวกัน พวกเขาแบ่งปันขั้นตอน symlink เพื่ออนุญาตการเข้าถึงโหนดสำหรับผู้ใช้ทั้งหมด แบบฝึกหัดสั้น ๆ ที่นี่losant.com/blog/how-to-install-nodejs-on-raspberry-piพร้อมทางออกเพื่อหลีกเลี่ยงปัญหา symlink: stackoverflow.com/a/29903645/3480671
bosch

หมายเหตุ: /usr/local/binจะมีความเหมาะสมมากขึ้นเล็กน้อยสำหรับลิงก์สัญลักษณ์ที่มีการจัดการโดยผู้ดูแลระบบท้องถิ่นไปยังไฟล์ที่จัดการโดยผู้ดูแลระบบใน/opt
JamesTheAwesomeDude

มันใช้งานได้สำหรับฉันปัญหาจริงที่ฉันมีคือ NPM ไม่ได้มาพร้อมกับโหนด แต่ NPM ไม่มีอยู่ในรูปแบบสแตนด์อโลนติดตั้ง NPM แต่ตอนนี้โหนดไม่ทำงาน
Jacob Schneider

4

Adafruitให้โหนดปัจจุบัน (ค่อนข้าง) และ npm หลังจากไม่พบการรวบรวมข้อมูลที่เป็นประโยชน์สิ่งนี้ใช้ได้กับฉันด้วยแพคเกจจำนวนมาก (ด่วน, body-parser, pg)


2

ผมทำงาน jessie raspbian ในปี่ 3. โหนดมาติดตั้งในภาพ แต่ 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
คุณช่วยแก้ไขโพสต์ของคุณเพื่อให้อ่านง่ายขึ้นหรือไม่ กำแพงข้อความจำเป็นจริงๆหรือ
Ghanima

2

ฉันพบวิธีที่ง่ายที่สุดในการรับ NPM (และ Node.js รุ่นล่าสุด) บน Raspberry PI ใด ๆ (ศูนย์ถึง 3) คือการใช้ "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)

ฉันขอแนะนำให้ตรวจสอบhttps://gist.github.com/3301813สำหรับคำแนะนำในการรวบรวม Raspberry Pi NodeJS


ขอบคุณเบ็น ฉันเคยเจอบทความนั้นมาก่อน ฉันคิดว่า NPM อาจแยกจากแผนผังต้นกำเนิดของ Node.js

NPM ถูกแยกต่างหากที่แหล่งgithub.com/isaacs/npmอย่างไรก็ตามโดยทั่วไปเวอร์ชันล่าสุดสำหรับ nodejs มาพร้อมกับการรวม npm

1

ดังที่เบ็นชี้ให้เห็นฉันแนะนำให้รวบรวม Node.js ด้วยตัวคุณเองบน Raspberry Pi ตั้งแต่ 0.8.10 (หรือมากกว่านั้น) สิ่งนี้เป็นไปได้โดยไม่ต้องกังวลใจต่อไป ง่ายดาย

$ ./configure
$ make
$ sudo make install

และนั่นคือมัน จากนั้น Node.js npmจะถูกติดตั้งรวมทั้ง

ทำงานเหมือน charme :-)!


ขอบคุณ Golo Minitech ให้คำตอบซึ่งทำงานได้ดีกว่าสำหรับฉัน ราสเบอร์รี่ Pi ค่อนข้างช้าดังนั้นฉันจึงคิดว่าอาคารจากนั้นการติดตั้งจะค่อนข้างเจ็บปวดมากขึ้น

1
โปรดดูที่รุ่นของ Node.js ที่ติดตั้งโดยใช้apt-getแล้วเปรียบเทียบรุ่นนี้กับรุ่นปัจจุบันของ Node.js และคุณจะรู้ว่าทำไมฉันไม่แนะนำให้ใช้apt-get... ;-)
Golo Roden

ฉันได้สร้าง tarball ที่รวบรวมไว้ล่วงหน้าแล้วซึ่งสามารถใช้กับ Raspberry Pi ได้หากคุณไม่ต้องการรอให้แหล่งรวบรวม gist.github.com/3245130
Adam MW

1

สิ่งที่คุณทำคือพิมพ์

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

มันใช้งานได้สำหรับฉันและฉันสามารถติดตั้งได้โดยไม่มีข้อผิดพลาดและควรทำงานกับโปรแกรม!


1
โปรดแม่นยำยิ่งขึ้น: คุณติดตั้งโหนรุ่นใดด้วยวิธีนี้แหล่งที่มาของแพคเกจ (คุณเพิ่มใหม่หรือไม่) คุณติดตั้งระบบปฏิบัติการรุ่นใดคุณติดตั้งรุ่น rPi รุ่นใดคุณมีโหนด Arch รุ่นใด ( armv6, v7) คำตอบของคุณอาจแก้ปัญหาบางอย่าง แต่เราไม่รู้ว่าจะไม่มีใครใช้มัน
bosch

0

ลองติดตามโพสต์นี้ ฉันจัดการเพื่อรัน npm ใน / opt / node / npm แต่เมื่อฉันคัดลอกไปยัง / usr / bin / มันหายไป 'npmlog'


ขอแนะนำให้คุณคัดลอกขั้นตอนลงในคำตอบขณะที่อ้างอิงแหล่งที่มาของคุณสำหรับข้อมูลเพิ่มเติมในกรณีที่ไซต์ต้นทางหยุดทำงานหน้าจะถูกลบหรือย้ายเป็นต้นอย่างน้อยที่สุดก็เป็นบทสรุปของกระบวนการในวงกว้าง
Tevo D
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.