Встановлення NPM на Raspberry Pi (Wheezy Image)


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, що базується на Debian, і зовсім не знаю про те, як спільнота 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 на малиновому пі, мені це подобається, і я думаю, що це легко зробити, а пізніше для оновлення просто замініть папку "/ 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
Ця відповідь є актуальною.
Уріель

1
Це було найкращим рішенням поки що, але я просто знайшов інше, використовуючи nvm (Node Version Manager), який також дозволяє легко оновлювати вузол, а також використовувати різні версії одночасно. Вони поділяють кроки символьного посилання, щоб дозволити доступ до вузла для всіх користувачів. Короткий підручник тут losant.com/blog/how-to-install-nodejs-on-raspberry-pi з рішенням, щоб уникнути проблем із посиланнями: stackoverflow.com/a/29903645/3480671
bosch

Зверніть увагу: /usr/local/binбуло б трохи більш доречним для символічних посилань, якими керує локальний адміністратор, до локальної адміністрації, яку керує адміністратором/opt
JamesTheAwesomeDude

це працювало для мене, актуальною проблемою у мене було те, що NPM не прийшов з вузлом, але NPM не існував як окремий, у нього встановлено NPM, але тепер Вузол не працює
Jacob Schneider

4

Adafruit забезпечує (відносно) поточний вузол та npm. Не знайшовши компіляції корисною, це працювало для мене з кількома пакунками (експрес, аналізатор тіла, pg)


2

Я запускаю raspbian jessie на pi 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.

Працює як шарм :-)!


Дякую Голо. Мінітех дав відповідь, яка працювала краще для мене. Raspberry Pi досить повільний, тому я б подумав, що будівництво, а потім установка буде трохи болючішим.

1
Будь ласка, подивіться, яка версія Node.js встановлюється за допомогою apt-get, а потім порівняйте цю версію з поточною версією Node.js, і ви дізнаєтесь, чому я не пропонував використовувати apt-get... ;-)
Golo Roden

Я зробив кілька заздалегідь складених тарболів, які можна використовувати на Raspberry Pi, якщо ви дійсно не хочете чекати, коли джерело збирається. gist.github.com/3245130
Adam MW

1

Все, що ви робите, це вводити текст

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

Це працювало для мене, і я зміг його встановити без помилок, і він повинен працювати з програмою!


1
Будьте точнішими: яку версію вузла ви встановили таким чином, яке джерело пакету (ви додали нове?), Яку ОС ви встановили, яку версію rPi у вас є, яка арка вузла це ( armv6, v7). Ви відповідаєте, що може щось вирішити, але ми не знаємо, що так ніхто не використовуватиме.
bosch

0

Спробуйте дотримуватися цієї публікації . Мені вдається запустити npm on / opt / node / npm, але коли я копіюю його в / usr / bin /, він пропускає 'npmlog'.


ІТ бажано, щоб ви скопіювали кроки у відповідь, привласнюючи своє джерело для отримання додаткової інформації, якщо сайт-джерело перебуває вниз, сторінка видаляється або переміщується і т. Д. Принаймні короткий звіт про широкі штрихи процесу.
Тево Д
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.