Mempersiapkan
Saya punya PI3 dengan Jessie. Menurut Wikipedia itu menggunakan ARM Cortex-A53 yang ARMv8-A
.
Saat memasang node.js menggunakan tutorial adafruit ini saya berakhir dengan simpul v0.12
yang masih tahap beta.
Pertanyaan:
Saya ingin menggunakan setidaknya v4
dari node.js
. Bagaimana cara saya menginstal ini dan menjalankannya?
Pendekatan Gagal
Pertama
Tutorial ini menjelaskan cara melakukannya.
wget https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-arm64.tar.gz
tar -xvf node-v5.0.0-linux-arm64.tar.gz
cd node-v5.0.0-linux-arm64
sudo cp -R * /usr/local/ #attention copies also readme and other not required files
Dari v.4.0.0 Suite pengujian kami harus terus-menerus meneruskan ARMv6, ARMv7 dan prosesor ARMv8 64-bit yang baru.
V.5.0.0: ARMv8 64-bit Biner:
=> Ini tidak dapat mengeksekusi biner.
-bash: /usr/local/bin/node: cannot execute binary file: Exec format error
Kedua
https://github.com/nodesource/distributions#installation-instructions
Berhenti selama sudo apt-get install -y nodejs
Tapi saya pikir mereka belum memiliki dukungan untuk arm64
masalah Github
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
gyp libc-ares-dev libc-ares2 libjs-node-uuid libjs-underscore libssl-dev
libssl-doc libv8-3.14-dev libv8-3.14.5 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
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
nodejs
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
1 not fully installed or removed.
Need to get 0 B/8,028 kB of archives.
After this operation, 38.3 MB of additional disk space will be used.
Selecting previously unselected package nodejs.
(Reading database ... 125270 files and directories currently installed.)
Preparing to unpack .../nodejs_5.10.0-1nodesource1~jessie1_armhf.deb ...
Detected old npm client, removing...
Unpacking nodejs (5.10.0-1nodesource1~jessie1) ...
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 294.455070] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.546888] Process mmcqd/0 (pid: 52, stack limit = 0xb8cde210)
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.618619] Stack: (0xb8cdfd88 to 0xb8ce0000)
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.671359] fd80: 00000007 b9687680 b8cdfdc4 b8cdfda0 8043c924 8043cb34
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.770515] fda0: b8cdfdc4 b8cdfdb0 8055fb5c b8cf0150 b9687400 b9687680 b8cdfdfc b8cdfdc8
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.869667] fdc0: 8043d588 8043c738 b9687624 80441c80 b8cdfdfc b8cdfde0 80441c80 b8cf0150
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.968821] fde0: b9687400 b8cf0258 b8cf0150 b8cdfea4 b8cdfe14 b8cdfe00 80424c54 8043d428
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.067976] fe00: b9687400 00000000 b8cdfe64 b8cdfe18 80425980 80424b5c 00000001 b8cf0034
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.167140] fe20: adec51d0 00000000 b8cb8600 8005f4f8 b8cdfe30 b8cdfe30 b8cdfe5c adec51d0
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.266294] fe40: b8cf0008 b8cf014c b9687c00 b8cf0150 00000000 adec51d0 b8cdfed4 b8cdfe68
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.365448] fe60: 80434494 804256e0 adec51d0 adec5220 b8cdfe94 b8cdfe80 802c88a0 802f97d4
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.464600] fe80: b971e580 b971e584 b8cdfeb4 00000000 b8cf0000 00000000 00000000 80443bec
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.563754] fea0: ffffffff 00ffffff b8cdfed4 b8cf0008 b9687c00 adec51d0 b8cf0000 b8cf0000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.662907] fec0: 00000001 24590411 b8cdff24 b8cdfed8 80434fd8 804343dc 00000000 adec51d0
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.762059] fee0: b8cf8000 b8cde000 b8cdff0c b8cdfef8 802cf320 b9687400 b8cf0008 b8cf0008
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.861214] ff00: b8cf8000 b8cde000 00000000 24590411 00000001 adec51d0 b8cdff5c b8cdff28
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.960367] ff20: 804367c8 80434ee0 80436708 b8cf0010 00000000 b97151c0 00000000 b8cf0008
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.059522] ff40: 80436708 00000000 00000000 00000000 b8cdffac b8cdff60 80042494 80436714
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.158687] ff60: 8055fba4 00000000 b8cdff94 b8cf0008 00000000 00000000 b8cdff78 b8cdff78
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.257840] ff80: 00000000 00000000 b8cdff88 b8cdff88 b97151c0 800423ac 00000000 00000000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.356994] ffa0: 00000000 b8cdffb0 8000f9f8 800423b8 00000000 00000000 00000000 00000000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.456177] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.555354] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 55550000 55554000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 298.607208] Code: e89da818 e28400fc ebf11884 eafffff6 (e7f001f2)
Stretch
) masih belum dilengkapi dengan dukungan asli untukarmv8
.Jawaban:
Saya menginstal node.js menggunakan metode kedua dalam pertanyaan hari ini, bekerja dengan baik. Saya memiliki Raspbian Jessie di Raspberry 3.
Saya tidak tahu mengapa metode itu tidak berhasil untuk Anda. Mungkin sudah diperbarui dan berfungsi lebih baik sekarang?
sumber
v6.x
Bagaimana cara meng-install
Mengapa ArmV7:
Di pi saya & paket ditulis
Raspberry Pi 3 Model B
dan menurut wikipedia :The ARM Cortex-A53 is a microarchitecture implementing the ARMv8-A 64-bit
yang menuntun saya untuk mengunduhARMv8 64-bit Binary
.Tetapi pi menunjukkan dengan
uname -a
Linux raspberrypi 4.1.14-v7+ #4 SMP PREEMPT Wed Mar 23 15:30:13 UTC 2016 armv7l GNU/Linux
. Jadi rupanya adaarmv7
di pi.EDIT: Tampaknya benar https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=140572
Mode 32 bit digunakan, karena dukungan yang hilang dari sistem operasi, dari pemahaman saya. Jika seseorang dapat menjelaskan ini dengan lebih tepat, silakan tinggalkan komentar.
sumber
arm64
Versi di sini ( debian.org/CD/netinst ) tapi saya belum bisa mem-bootnya.Menggunakan nvm
Solusi alternatif menggunakan nvm sebagai penginstal untuk Node.
nvm
singkatan dari Node Version Manager dan memiliki banyak manfaat seperti:node
versi berbeda yang diinstal pada saat yang sama (untuk memeriksa program Anda dengan versi node yang berbeda untuk menguji penyebaran ke pengaturan yang berbeda, misalnya)Meskipun saya skeptis pada awalnya (walaupun saya
nvm
berhasil menggunakan pada sistem lain), setelah mencari solusi terbaik untuk memilikinode
dannpm
menginstal dan dapat diakses untuk semua pengguna (termasuk root , yang diperlukan untuk mengakses perangkat keras pada Raspi) dan menyelam ke semua node distribusi, paket dan sumber, saya memutuskan untuk mencoba metode ini. Dan itu berhasil!Inilah langkah-langkah saya:
pertama-tama, Anda perlu menginstal nvm . Anda dapat menjalankan skrip ini dari folder rumah Anda atau di mana pun tetapi itu akan menginstal
nvm
untuk pengguna saat ini ( pi dalam kasus saya meskipun saya punya satu lagi yang dibuat untuk tujuan ini yang sekarang tidak perlu). Anda mungkin ingin mengganti versi (v0.32.0) dengan yang terbaru.curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | pesta
Anda perlu membuka kembali terminal untuk mengambil akses ke nvm
maka Anda menginstal Node dengan perintah sederhana ini:
nvm instal v6.6.0
Anda mungkin ingin memeriksa versi yang tersedia dengan menerbitkan
nvm ls-remote
dan memilih yang cocok untuk AndaAnda menetapkan versi ini sebagai default
node
untuk sistem Anda:nvm alias default v6.6.0
dan periksa versi yang terinstal dengan
node -v
dannpm -v
Sekarang Anda telah menginstal Node v6.6.0 untuk pengguna saat ini. Ini belum tersedia untuk di- root atau pengguna lain di sistem Anda tetapi Anda mungkin menginginkannya sehingga Anda dapat:
buat symlinks (alias) untuk membuatnya tersedia di seluruh sistem:
sudo ln -s /home/pi/.nvm/versions/node/v6.6.0/bin/node / usr / bin / node
sudo ln -s /home/pi/.nvm/versions/node/v6.6.0/bin/npm / usr / bin / npm
Atau , seandainya sistem Anda sudah memiliki simpul yang terinstal secara default dan Anda mendapatkan kesalahan dengan metode di atas (seperti dalam kasus saya) jalankan baris canggung ini:
n = $ (simpul mana); n = $ {n% / bin / simpul}; chmod -R 755 $ n / bin / *; sudo cp -r $ n / {bin, lib, bagikan} / usr / local
dan yang baru Anda instal
node
sekarang tersedia untuk semua orang yang memungkinkan Anda untuk menginstal paket npm secara global, dll.Harap dicatat bahwa setiap kali Anda ingin beralih versi node Anda harus menjalankan perintah di atas (yang mungkin tampak menakutkan tetapi semua yang dilakukan adalah menyalin
node
file/usr/local
, ditulis dalam bentuk kental).Saya harap ini membantu seseorang dan menghemat waktu!
Referensi:
CARA MENGINSTAL NODE.JS ON RASPBERRY PI oleh Brandon Cannaday,
komentar pertama dari posting di atas (oleh RYAN PARSLEY),
jawaban StackOverflow ini ,
tutorial DigitalOcean yang menyertai
/usr/local
gagasan penyalinan,dan Internet dan Google yang memungkinkan saya menghabiskan berjam-jam mencoba untuk memilih solusi terbaik dari lautan ide :)
sumber
Menurut posting ini , dan juga dalam pengalaman saya sendiri, semua versi node.js pra-instal Raspbian sudah usang. Oleh karena itu, pilihan terbaik Anda adalah menghapus semua instalasi simpul sebelumnya dan menginstalnya kembali. Ini juga bagus untuk Peregangan Raspbian .
Melakukan hal ini:
sumber