jetson nano搭建vue3环境
一、思路避坑
在安装过程,大概率会遇到这个报错:
node: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)
因为当前版本的nodejs需要libc-dev库版本为2.28。但是jetson nano官方ubuntu镜像是18.04LTS版本,其只能升级到2.27版本。这里就容易陷入去解决版本问题的方向,有两个思路,一个是升级这个库,另一个是去升级系统,20.04系统的libc-dev库版本应该是2.31.
经过笔者一天的小鹿乱撞,重刷了3次SD卡,总结出了以下两个经验:
①不要因为遇到版本问题去升级ubuntu20.04LTS,容易变成砖。
②不要因为遇到版本问题去升级libc-dev库 2.27->2.28版本。
二、在尝试错误思路过程中,可能会遇到问题
2.1 nvidia-l4t-bootloader更新错误的问题
按顺序,输入以下指令:
sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
sudo mkdir /var/lib/dpkg/info/
sudo apt-get update
sudo apt-get -f install
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/
sudo rm -rf /var/lib/dpkg/info
sudo mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/sudo apt-get update
sudo apt-get upgrade
即可解决。
2.2 手动编译2.28版本的GLIBC方法
方法根据:https://github.com/microsoft/vscode/issues/210033
具体的就是使用以下指令:
mkdir ~/src
cd ~/srcwget 'https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz'
tar xzf glibc-2.28.tar.gzmkdir glibc-2.28-build
cd glibc-2.28-build
../glibc-2.28/configure --prefix=/opt/glibc-2.28make
make install
但是,结果是,达咩,不行~
用ldd指令看到的还是2.27版本~
然后,使用node -v,npm -v指令,直接就segmentation fault (core dumped)了。
2.3 “configure: error: ***These critical programs are missing or too old: gawk
没有或者版本太老了gawk库,实际上,是没有这个库,需要安装。
sudo apt get install gawk
2.4 解决 github.com 或者 raw.githubusercontent.com 打开慢、打不开问题
编辑/etc/hosts文件:sudo vi /etc/hosts
在文件中增加:
20.205.243.166 github.com
185.199.109.133 raw.githubusercontent.com
保存退出。就可以继续操作访问了。
2.5 如何升级Ubuntu 20.04版本
这里操作步骤比较多,需要很多时间:
sudo apt-get remove --purge chromium-browser chromium-browser-l10n
sudo apt-get update
sudo apt-get install nano
sudo apt-get upgrade
sudo apt-get autoremovesudo vi /etc/update-manager/release-upgrades
将Prompt=never改成Prompt=normal
sudo nano /etc/update-manager/release-upgrades
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
sudo do-release-upgrade
这需要几个小时。在整个过程中需要一些输入,因为有问题需要回答。不时检查你的屏幕。用建议的默认值回答所有问题。
但是笔者在这个步骤,最后阶段,总会遇到异常中断问题~(忘记截图了)
重启板子,就成砖块了~板子不断重启。只有重刷SD卡了。
2.6 Can’t open configuration file /usr/local/etc/ld.so.conf:No such file or directory
就是缺少了必要的编译文件 ld.so.conf.
使用指令
cp /etc/ld.so.conf /usr/local/etc
解决
2.7 ...
二、正确思路
回归到最开始的报错:
node: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)
这个问题呢,是当前版本node需要这个环境条件,并不代表低版本的需要!!!
那么笔者这个node怎么安装的呢?
一开始是在https://nodejs.org/en/download,这个网站上,参考指令安装的。一不小心就选的22版本。
具体的就是:
然后尝试安装了16版本:
结果:
真可以!!!印证了版本问题的思路。
然后笔者尝试了安装最新版本的vue:
npm init vue@latest
发现,最新版本的vue需要nodejs20.19+版本或者22.12+版本。
于是又去安装20.19版本的nodejs:
发现,又有版本问题了:(这里用的指令有问题,不要在意,下文有说明)
于是又退回了16版本,去查看了一下vue.js和node.js的版本关系:
笔者目前nodejs是16.x版本,因此最高用vue3.2.x版本或者vue2.6.x版本。
这里笔者就反应到刚才那个指令“npm init vue@xxxx”,这里应该是写vue的版本,而不是nodejs的版本。
为了确定这个想法,用@16试了下,确实有报错:
用3.2版本呢:
成了!!!跑起来了!!!
三、总结
这次倒腾这么久,核心问题还是对vue.js的搭建流程相关知识不太熟悉,造成了考虑方向的错误。