背景 龍芯是國產的cpu,採用是mips架構,就類似大家熟知的x86、arm。 最近在一臺龍芯電腦(系統是中興新支點,Linux)上調試前端應用(electron),於是就需要安裝NodeJS。 但是,NodeJS的官方資源就沒有Linux mips 可直接使用的包,這就需要自己編譯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(無用)
緊接著換了個較低的版本編譯。
PS:有一些文件需要做微小的調整才能正確編譯,詳情查看 https://blog.csdn.net/weixin_40065369/article/details/85687482
這麼安裝後,node和npm都能正常使用了,但是在前端工程安裝依賴時候,問題又來了:node版本太低了,很多依賴裝不了(基本要求v6以上),只能宣告這node版本沒用。
node-v8.16.1(勉強可用)
於是又換了個不高不低的版本,這個版本也需要像 node-v4.4.3 調整一些文件。
編譯正常,安裝正常,可是使用使用又出現一些問題。
問題:TypeError: log.gauge.isEnabled is not a function
於是我找到代碼位置,修改其中代碼來規避這些問題。修改時,修改一處,另一處又報錯,大概是改了5處才使得 npm 的命令不報錯,才勉強可用。
總結
龍芯作為國產的cpu,絕大多數軟體沒有相容版本,特別是國外的軟體或開源項目。它太小眾了,以如今的狀態根本沒有形成軟體生態的可能,即便是想在上面開發軟體,也是困難多多。