溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

在tinycolinux上如何安裝sandstorm davros

發(fā)布時(shí)間:2021-11-26 11:43:43 來源:億速云 閱讀:130 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下在tinycolinux上如何安裝sandstorm davros,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在tinycolinux上編譯安裝nodejs和npm

tinycolinux上gcc481最高最能編譯7.10.1 ,8.0.0和8.0.0以上會(huì)提示ArrayVector(v8::internal::StringStream::FmtElm [])相關(guān)的錯(cuò)誤, 最新的894要求gcc494,

sandstorm自身用的是nodejs8.9.3,官方使用的davros 0.21.7 spk中使用的nodejs6.4.0,所以在這里我們使用6.4.0版本,首先裝好git,然后裝好py,下載nodejs640其源碼,cd到其中,執(zhí)行:

./configure --preifx=/usr/local/nodejs && sudo make install

cd到/usr/local/nodejs,export PATH=$PATH:/usr/local/nodejs/bin,執(zhí)行nodejs發(fā)現(xiàn)需要libstdc++高版本,把libstdc++.so.6.0.18(這個(gè)是編譯cmake時(shí)也需要的庫(kù),參見以前文章)換到/usr/lib下,接著執(zhí)行npm install -g git://xxx,發(fā)現(xiàn)調(diào)用git時(shí)不能下載https里的git repos內(nèi)容,提示SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version Completed with errors

這是由于最近2018.2.1github不采用低級(jí)的加密方法了,git依賴cur,curl 命令行依賴 openssl 庫(kù)才能使用 ssl 和 TLS。當(dāng)前一般認(rèn)為 TLSv1.1 及 TLSv1.2 才是安全的,很多 https 服務(wù)器僅支持這2個(gè)協(xié)議,不再支持 TLSv1.0 及 ssl。但是 openssl 是從 1.0.1 才支持 TLSv1.1 及 TLSv1.2。系統(tǒng)當(dāng)前安裝的openssl-1.00.tcz+curl不支持。查看已安裝的ssl和curl,執(zhí)行:curl -V(大寫)發(fā)現(xiàn)openssl是1.0.0k,curl是7.30.0

我也不想去其它的5.x的tinycolinux中去找了,自己編譯吧。好像5.x的是1.0.2的去掉了sslv2v3的?所以還是自己編譯安裝吧。

我下載的是openssl 1.0.1src和curl-7.15.0.tar.gz,首先安裝perl5,openssl編譯需要perl5,cd srcroot,./config --prefix=/usr/local shared && sudo make install就可以(注意不是./configure)一定要加/usr/local,否則安裝到/usr/local/ssl中去了,加shared可免去下列錯(cuò)誤:x86cpuid.s:(.text+0x2d0): multiple definition of `OPENSSL_cleanse' ../libcrypto.a(mem_clr.o):mem_clr.c:(.text+0x0): first defined here

接下來編譯新的curl7.30.0,./configure --enable-shared --with-ssl=/usr/local

查看新的openssl版本

/sbin/ldconfig -v openssl version -a

查看curl是否引用了剛編譯安裝的1.0.1版本

curl -V(大寫的),發(fā)現(xiàn)使用的是openssl1.0.1

現(xiàn)在git會(huì)自動(dòng)使用ssl3,npm install -g git://xxx或https://可以用了。

準(zhǔn)備davros代碼并編譯運(yùn)行,失敗

現(xiàn)在準(zhǔn)備davros,我下載的是https://github.com/mnutt/davros中的davros-ca480aea708d0e9ae4b63342a4583660609f331f的0.21.7 release,將davros的根中的所有內(nèi)容全選,上傳到/usr/local/nodejs根目錄,cd到此

我們看到j(luò)s npm的包管理還是蠻好的,每一個(gè)包都維護(hù)一個(gè)package.json,申明它向前依賴的項(xiàng)。應(yīng)用即包本身,各個(gè)包組成一個(gè)樹形關(guān)聯(lián)關(guān)系組成一個(gè)大應(yīng)用,davros作為大應(yīng)用,可以看到其根下有npm用的根package.json,bower用的根bower.json,etc..

根據(jù)https://github.com/mnutt/davros的說明,先sudo npm install,但是發(fā)現(xiàn)奇慢,加tb的mirror吧npm install -g cnpm --registry=https://registry.npm.taobao.org,再sudo cnpm install發(fā)現(xiàn)快多了(這是在安裝src root下那個(gè)package.json的依賴關(guān)系包括bower)。它可以代替默認(rèn)的npm,匹配不到的它會(huì)從默認(rèn)從github下載。如果有紫紅色的就是出錯(cuò)的

接下來,sudo bower install后會(huì)提示找不到bower,把生成的node_modules/bower/.bin中的那個(gè)鏈接文件移到/usr/local/nodejs/bin中,并修改指向?qū)?yīng)位置

然后sudo npm install 和 sudo bower install --allow-root,發(fā)現(xiàn)git出錯(cuò):error: SSL certificate problem: unable to get local issuer certificate while accessing

git config --global http.sslVerify false一下會(huì)在home/tc/下產(chǎn)生.gitconfig文件,再sudo bower install --allow-root這下能繼續(xù)了。

我們也無(wú)法去追蹤到底安裝了多少東西了。

然后按照https://github.com/mnutt/davros的說明,sudo PORT=3009 ember serve,發(fā)現(xiàn)ember也沒鏈接進(jìn)/usr/local/nodejs/bin中(在src root package.json中它跟bower一樣是要被安裝的也一路并沒有出錯(cuò)),直接執(zhí)行吧,不做了:sudo PORT=3009 node_modules/.bin/ember server,發(fā)現(xiàn)ember的確在后臺(tái)打開了守護(hù),根據(jù)github的readme.md說明,這時(shí)本地桌面客戶端可以連接了。

但其實(shí)我們根本不用這樣做,因?yàn)檫@個(gè)后臺(tái)守護(hù)會(huì)耗盡內(nèi)存, top中會(huì)看到內(nèi)存占用一直漲,最終命令行也顯示heap out of memeory,嘗試失?。?!

按理說,這里要ember build一次,之后會(huì)將ember一系列東西,包括davros src root的app文件夾下面的東西全打包在生成的srcroot/dist下一個(gè)davros打頭的隨機(jī)文件名中。是不是這樣呢,我們也沒時(shí)間追究了,只能換個(gè)死方法了,我們直接從spk中取來所有ember build好的東西:

直接提取spk的已編譯好的davros運(yùn)行,成功

在另外一臺(tái)機(jī)器上安裝一個(gè)sandstorm,然后連上進(jìn)入winscp,進(jìn)那個(gè)spk的目錄,我的是/opt/sandstorm/var/sandstorm/apps/e813a833d983fbc38d87da62ea461fa7/opt/app,全部打包下載,清空原來nodejs的根目錄,重新/tce/nodejs460下make install一次,然后把新的spk中的包的內(nèi)容全部上傳到這里,./sandstorm中的launcher.sh弄出來到根,稍微修改下其中的路徑,建立data,data-temp,samplefiles等目錄,執(zhí)行sudo ./launcher.sh(它其實(shí)就是nodejs執(zhí)行根下的app.js),注意8000端口不要被占據(jù),成功??!不光oc的桌面客戶端訪問。網(wǎng)頁(yè)端免sandstorm也可以進(jìn)入。 可見它與sandstorm管理框架和ember build過程是沒有太多導(dǎo)致運(yùn)行失敗上的關(guān)系的。

當(dāng)然,這個(gè)免sandstorm是沒有認(rèn)證機(jī)制的,如果是自用的話,隨便寫個(gè)認(rèn)證邏輯就可以,這個(gè)服務(wù)端比oc的服務(wù)端快多了。

以上是“在tinycolinux上如何安裝sandstorm davros”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI