我非常想在Raspberry Pi Zero W上运行最新版本(v3.4.4)的なでしこ3!
起源
之前我已经写过关于如何在树莓派ZeroW上安装なでしこ3,或者安装不再支持armv6l的v12及以上版本的非官方构建的node.js的问题。
不过,大约过了一年半的时间,情况对于Nadeshiko(译者注:Node.js的一个版本)一方来说也发生了重大变化。
在当时,推荐使用的是node.js v12或以上的版本,但是根据最新版本v3.4.4(截止到2023年2月9日),需要使用v16或以上的版本了。
自从v3.3.3版本开始,Windows版的node已经无法在旧版本上启动了。当时我的电脑还是Windows 7,因此也碰到了很多困难。
过去,在树莓派Zero W上的标准配置中,即使在安装Nadesiko 3时会出现红色或黄色的警告,它仍然能够勉强运行。但是,现在可能需要安装v16或更高版本的node,否则无法运行。
最近,在日本女足官方网站的“使用树莓派运行”的页面上添加了“针对树莓派Zero W”的说明,并提供了安装非官方Node.js二进制文件的步骤。
不过啊,它有可能会动的哦。
而且,我手边可是没法让它动起来的呢!
而且而且,竟然还链接到了我的文章当作参考网址!!
唔唔,我得负责任呢…
在日本女足队成立之前的准备工作
就是这个原因,一年半时间过去了,我再次拿出树莓派ZeroW玩一下哈哈。
先进行一次更新。
无论如何,我又放置了一年半。
sudo apt-get update # パッケージリストの更新
sudo apt-get upgrade # パッケージのアップグレード
sudo apt-get dist-upgrade # ディストリビューションの更新
VNC的中文释义大致是”虚拟网络计算机”。
SSH可以连接,但是VNC连接不上呢。为什么呢?
重新启动VNC服务器。
sudo raspi-config
「Interfacing Options」→「VNC」→「はい」→「了解」
以前,一旦启动VNC后,始终可以正常使用。但是这次不知道为什么,有时候只要关闭一次就无法连接了。真是个谜。
SSH没问题,所以每次无法连接时就重新启动一下。不知道这样行不行。
而且,即使按照这个步骤依然无法连接,无论试了多少次都不行。而且有时候突然又能连接上了。这到底是怎么回事,这个现象?
暂时先试试最新的日本女足队吧。
我在上一篇文章发布时安装了并且目前还在使用的なでしこ(Namae Shiko)版本是v3.2.24。
v3.3.3版本在支持ES模块的改进方面是一个重要的转折点,有很多变化。
总之,我试着普通地进行了一次更新,结果又是一堆警告信息。
它们说要安装v16或者v14以上版本,或者v12以上版本,诸如此类的各种要求。
但是,我已经更新了。而且,以前它也可以正常运行的。
cnako3 -v
嗒嗒一声。
# Fatal error in , line 0
#
#
# Fatal error in , line 0
# Liftoff bailout should not happen. Cause: Armv6 not supported
#
#
#
#FailureMessage Object: 0xb61fe268
Trace/breakpoint trap
哇啊,果然还是不行啊~
node -v
→v16.5.0
npm -v
→v7.19.1
哎呀,明明已经进去了。虽然是非官方的。
不过,说起来以前我曾经安装过这个非官方版本的软件,只是出于一点小小的自我满足,并没有对Nadeshiko本身进行特殊的安装命令。
所以,更新应该是参考了当时安装的node v10.24.1和npm v6.14.12版本,出现了警告。
我会立刻卸载。
# なでしこのアンインストール
sudo npm uninstall -g nadesiko3
# Node.jsのアンインストール
sudo apt remove nodejs npm
我决定删除当前使用的非官方二进制文件,然后重新从头开始尝试一次。
# 非公式バイナリを手動で削除
rm -r /usr/local/lib/nodejs/node-v16.5.0-linux-armv6l
请按照公式页面上的步骤进行安装。
本次我们将按照なでしこ官方网站的『在树莓派上运行』的步骤,从头开始安装node.js而不是使用软件包进行安装。在上一篇文章中,我们参考了nodejs的帮助wiki的说明来进行安装。
请指定版本。
目前的推荐版本是18.14.0,最新版本是19.6.0。不过,只要有16版本就够了,所以决定安装之前的16.5.0版本而不勉强更新。
将其配置为环境变量后,在后续命令中使用。
# バージョンを指定
VERSION=v16.5.0
DISTRO=linux-armv6l
你需要安装软件包吗?
根据「なでしこさん」网站上的步骤,之后需要进行软件包的安装,但这真的有必要吗?我并不打算更新这个软件包。
对于像我这样的人来说,这是不必要的,因为这是我第一次为「なでしこ」安装node.js,并且只有在「なでしこ」中使用它。
因此,我跳过了这一步。
我已经迈出了与指示不符的步骤?
非官方版本的安装
# ダウンロード
sudo wget https://unofficial-builds.nodejs.org/download/release/$VERSION/node-$VERSION-$DISTRO.tar.gz
# 解凍してコピー
tar -zxvf ./node-$VERSION-$DISTRO.tar.gz
sudo mv ./node-$VERSION-$DISTRO /usr/local/lib/nodejs
如果复制粘贴的话非常简单☆
通过官方页面的复制粘贴,可以顺利进行下去。
更新设置
嗯?看起来,路径有点不对呢。
根据上述命令,二进制文件已安装在/usr/local/lib/nodejs/node-v16.5.0-linux-armv6l/路径下,所以将其添加到该路径下的bin目录中。
# 設定を更新
echo "export PATH=/usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin:$PATH" >> ~/.profile
echo "" >> ~/.profile
source ~/.profile
不过话说回来,我之前是通过文件管理器打开文本编辑器进行编辑的,但是我居然可以在这里写入内容,太厉害了☆
测试 (Chinese translation: test)
node -v
→v16.5.0
npm -v
→7.19.1
好哒☆
嘿,我是女生Nadeshiko的安装
# なでしこ3をインストール
npm -g install nadesiko3
不需要使用sudo。通过这个方法,非官方二进制文件安装了node-v16.5.0-linux-armv6l,并在node_modules中安装了nadesiko3。
哇哇哇,完全没有错误,成功安装了!(感动)
然而!!!
我无法编译cnako3!果然是刚才的错误。
# Fatal error in , line 0
# Liftoff bailout should not happen. Cause: Armv6 not supported
第0行有致命错误!Liftoff救济是什么意思啊,谷歌翻译先生?!总之,我说了不支持Armv6。
我知道啦~。拜托你去解决一下吧~~~
使用选项避免
似乎有一种可以设法依靠那里的选择!
听说只需在启动时加上“–no-expose-wasm”参数即可避免此问题。我会试试看!
cd ../../usr/local/lib/nodejs/node-v16.5.0-linux-armv6l/bin/
node --no-expose-wasm cnako3 -v
→v3.4.4
成功了!太棒了!!…虽然有点强迫症呢。
使其能够在cnako3上启动
当然地,确实希望只用cnako3来启动。
根据上述参考网站,有人说,只需将第一行的#!/usr/bin/env node修改为#!/usr/bin/env -S node –no-expose-wasm即可实现…
更改了cnako3的第一行后,我被怒斥说”/usr/bin/env”不支持-S选项!
我尝试去掉了-S选项,结果又被怒斥说连”node –no-expose-wasm”这个文件或文件夹也不存在!
–no-expose-wasm被当作一个名称而不是作为node的选项处理,这真是太糟糕了。为什么会这样呢?呜呜呜。
而且,在这里!
我在Qiita上发现了一篇非常有用的文章。
果然,这是环境依赖的问题,在Linux上,似乎无论第一个参数的后面有多少个都会被合并为第二个参数。
而且,文中还写了一些避免这个问题的方法!太厉害了!
这样应该可以吗?
#!/bin/sh
":" //# ; exec /usr/bin/env node --no-expose-wasm "$0" "$@"
最终,还是通过文件管理器以文本编辑器打开已安装非正式二进制文件的bin文件夹中的cnako3第一行,删除#!/usr/bin/env node,并替换为上述描述内容。
嗯嗯,不知道該怎麼辦呢?
cnako3 -v
→v3.4.4
cnako3 -e "「こんにちは」と表示。"
→こんにちは
cnako3 -e "ナデシコバージョンを表示。"
→3.4.4
我成功了!!!
使编辑器可以被使用
似乎很少被使用,但我也会修改nako3edit和nako3server的第一行。
现在,简易服务器已经启动,Node版本的编辑器和Web版本的编辑器都已经成功打开了。
太棒了☆ le☆)
然而!Web版的正常运行了演示,但是Node版在点击运行按钮后出现了错误!似乎按下运行按钮会执行带有完整路径的”node cnako3 nako3文件”。好像还需要在这个node部分添加相应的选项才行。经过搜索结果显示,nako3edit的第217行,
const cmd = `"${NODE}" "${CNAKO3}" "${fullpath}"`
我只需要一個選擇:將「を」用中文母語進行改寫。
const cmd = `"${NODE}" --no-expose-wasm "${CNAKO3}" "${fullpath}"`
修改后,能够执行了!!
太棒了!!!
结束了
使用树莓派ZeroW,我确认通过使用非官方二进制文件,可以运行最新版本的なでしこ!太棒了!太棒了♪♪♪
如果遇到问题,确认安装位置(按照说明安装的话,在/usr/local/lib/nodejs/node-v16.5.0-linux-armv6l/目录下安装了node,并在其中的lib/node_modules目录中安装了nadesiko3)以及路径是否正确(从根目录运行node -v,应该出现v16.5.0)。
特别是,如果存在其他版本的node,请确保正常打开v16的cnako3。
检查bin目录中的cnako3是否正确更改了咒语。
在这种情况下是这样的吗?
如果有人试过这个方法以及有效的、没能用的,请不要犹豫在评论或是本留言板上告诉我。
虽然不保证一定能解决问题,但了解到除了自己以外的情况可能会有助益。
当然,如果有更聪明的方法,请务必告诉我。