龙芯(mips64)电脑安装NodeJS

背景

龙芯是国产的cpu,采用是mips架构,就类似大家熟知的x86、arm。

最近在一台龙芯电脑(系统是中兴新支点,Linux)上调试前端应用(electron),于是就需要安装NodeJS。

但是,NodeJS的官方资源就没有Linux mips 可直接使用的包,这就需要自己编译NodeJS。

插曲

网上有人提到使用 yum install -y nodejs 就可以安装,我试验过也确实可以,但是它安装的版本是 v0.12.4 ,这个版本太低,不符合我的应用要求。

安装步骤

下载源码:https://nodejs.org/download/release/v10.0.0/

1、配置

./configure

2、编译

make

3、安装

make install

node-v10.0.0(失败)

最开始选择编译的是v10.0.0版本,但整个过程出现了两个问题。

问题一:unrecognized command line option ‘-m64’

在编译过程中,当编译到openssl这个库时,就会报上面的错。

网上又有人说,可以通过排除编译这个库来解决,也即是在配置步骤加个 --without-ssl 参数。

./configure  --without-ssl

结果确实可以编译通过,也能安装,node这命令也能用,但npm就不行!

问题二:Error [ERR_NO_CRYPTO]: Node.js is not compiled with OpenSSL crypto support

在使用npm命令就出了这问题。

这就存在一个矛盾:加上 openssl 无法编译通过,不加上 npm 就用不了。

node-v4.4.3(无用)

紧接着换了个较低的版本编译。

有一些文件需要做微小的调整才能正确编译,详情查看:

https://blog.csdn.net/weixin_40065369/article/details/85687482

http://www.loongnix.org/index.php

这么安装后,node和npm都能正常使用了,但是在前端工程安装依赖时候,问题又来了:node版本太低了,很多依赖装不了(基本要求v6以上),只能宣告这node版本没用。

node-v8.16.1(勉强可用)

于是又换了个不高不低的版本,这个版本也需要像 node-v4.4.3 调整一些文件。

编译正常,安装正常,可是使用使用又出现一些问题。

1、修改 configure 文件。

'__MIPSEL__'  : 'mipsel'

to

'__MIPSEL__'  : 'mips64el'

2、配置

./configure

3、编译

make -j 8

4、安装

sudo make install

问题:

Makefile:88: recipe for target 'node' failed
make: *** [node] 段错误 (core dumped)
换个路径较短的目录。有可能是你命令路径太长了。

问题:TypeError: log.gauge.isEnabled is not a function

于是我找到代码位置,修改其中代码来规避这些问题。修改时,修改一处,另一处又报错,大概是改了5处才使得 npm 的命令不报错,才勉强可用。

总结

龙芯作为国产的cpu,绝大多数软件没有兼容版本,特别是国外的软件或开源项目。它太小众了,以如今的状态根本没有形成软件生态的可能,即便是想在上面开发软件,也是困难多多。 

posted @ 2019-09-26 11:32  海角在眼前  阅读(6243)  评论(1编辑  收藏  举报