QNAP App Center可以安裝Node.js,方便撰寫server-side JavaScript程式。但是QNAP似乎支援跟新版很慢 (可能是要等
Linux Station完善吧),目前還是version 0.8.22-2。
QNAP支援實在太舊了,手動升級Node.js。
https://nodejs.org/download/release/latest/可以下載最新release版本。但是該選哪個版本?QNAP硬體是ARM或x86 (現在應該都是64-bit)。
set | grep "HOSTTYPE" 可以看出硬體是64-bit。
uname也顯示硬體是64-bit,但是OS卻是unknown。
先用Optware以 "ipkg install file" 指令安裝file,以 "file /sbin/init" 檢查。因為QNAP是簡易版Linux,用BusyBox在單一的執行檔中提供精簡的Unix工具集。BusyBox (1996年) 是希望在一張軟碟上能放入一個開機系統,以作為急救盤和安裝盤;如同在Windows使用的DOS開機磁片或USB碟。
BusyBox is used by several operating systems running on embedded systems.
改以 "file ../bin/busybox" 檢查,確認QNAP是32-bit OS。所以確定安裝:
https://nodejs.org/download/release/latest/node-v5.9.0-linux-x86.tar.gz
升級安裝指令如下:
|
#!/bin/sh
#URL="https://nodejs.org/download/release/v5.8.0/node-v5.8.0-linux-x64.tar.gz"
#URL="https://nodejs.org/download/release/v5.8.0/node-v5.8.0-linux-x86.tar.gz"
URL="https://nodejs.org/download/release/latest/node-v5.9.0-linux-x86.tar.gz"
#[[ $URL =~ (node-v5\.8\.0-.*)\.tar\.gz$ ]] && TARFile=${BASH_REMATCH[0]} && DirName=${BASH_REMATCH[1]}
[[ $URL =~ (node-v5\.9\.0-.*)\.tar\.gz$ ]] && TARFile=${BASH_REMATCH[0]} && DirName=${BASH_REMATCH[1]}
[[ $TARFile == "" ]] && echo "url is wrong" && exit
NodeJSPath=$(/sbin/getcfg nodejs Install_Path -f /etc/config/qpkg.conf)
echo $TARFile
echo $DirName
echo $NodeJSPath
wget --no-check-certificate $URL
tar zxf $TARFile -C $NodeJSPath
rm -r $NodeJSPath/node
#rm $TARFile
ln -s $NodeJSPath/$DirName $NodeJSPath/node
uidscript=$NodeJSPath/$DirName/lib/node_modules/npm/node_modules/uid-number/uid-number.js
script="$(cat $uidscript)"
echo "${script/", uidSupport = process.getuid && process.setuid"/, uidSupport = false}" > $uidscript
#OLDVer=$(cat /etc/config/qpkg.conf | grep "0.8.22-2" | wc -l)
#[ $OLDVer == 1 ] && sed 's/0.8.22-2/5.8.0/g' -i /etc/config/qpkg.conf
OLDVer=$(cat /etc/config/qpkg.conf | grep "5.8.0" | wc -l)
[ $OLDVer == 1 ] && sed 's/5.8.0/5.9.0/g' -i /etc/config/qpkg.conf
|
URL設定要下載之網址。用bash-regex分解檔名作為安裝檔名和路徑名稱,並由qpkg.conf取得安裝路徑。因此,務必先安裝QNAP Node.js 0.8.22 App。之後,由wget下載,解壓縮並更改原node.js路徑之內容,以新版替換。Line 21-23,安裝後參考
QNAP – NODE.JS INSTALLATION 修正錯誤。最後 (Line 27-28) 則以sed替換字串的方式,直接更改qpkg.conf內的版本號。我由0.8.22 --> 5.8.0 --> 5.9.0過程改版,因此有些程式碼加了註解#。
檢查
npm版本資訊,可以得知很多node.js都可以支援了。
|
npm version |
試看看執行程式碼:
開瀏覽器連到QNAP所屬IP:888即可看到結果。
No comments :
Post a Comment