您好,登錄后才能下訂單哦!
小編給大家分享一下在tinycolinux上如何安裝sandstorm davros,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
tinycolinux上gcc481最高最能編譯7.10.1 ,8.0.0和8.0.0以上會提示ArrayVector(v8::internal::StringStream::FmtElm [])相關的錯誤, 最新的894要求gcc494,
sandstorm自身用的是nodejs8.9.3,官方使用的davros 0.21.7 spk中使用的nodejs6.4.0,所以在這里我們使用6.4.0版本,首先裝好git,然后裝好py,下載nodejs640其源碼,cd到其中,執行:
./configure --preifx=/usr/local/nodejs && sudo make install
cd到/usr/local/nodejs,export PATH=$PATH:/usr/local/nodejs/bin,執行nodejs發現需要libstdc++高版本,把libstdc++.so.6.0.18(這個是編譯cmake時也需要的庫,參見以前文章)換到/usr/lib下,接著執行npm install -g git://xxx,發現調用git時不能下載https里的git repos內容,提示SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version Completed with errors
這是由于最近2018.2.1github不采用低級的加密方法了,git依賴cur,curl 命令行依賴 openssl 庫才能使用 ssl 和 TLS。當前一般認為 TLSv1.1 及 TLSv1.2 才是安全的,很多 https 服務器僅支持這2個協議,不再支持 TLSv1.0 及 ssl。但是 openssl 是從 1.0.1 才支持 TLSv1.1 及 TLSv1.2。系統當前安裝的openssl-1.00.tcz+curl不支持。查看已安裝的ssl和curl,執行:curl -V(大寫)發現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可免去下列錯誤: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(大寫的),發現使用的是openssl1.0.1
現在git會自動使用ssl3,npm install -g git://xxx或https://可以用了。
現在準備davros,我下載的是https://github.com/mnutt/davros中的davros-ca480aea708d0e9ae4b63342a4583660609f331f的0.21.7 release,將davros的根中的所有內容全選,上傳到/usr/local/nodejs根目錄,cd到此
我們看到js npm的包管理還是蠻好的,每一個包都維護一個package.json,申明它向前依賴的項。應用即包本身,各個包組成一個樹形關聯關系組成一個大應用,davros作為大應用,可以看到其根下有npm用的根package.json,bower用的根bower.json,etc..
根據https://github.com/mnutt/davros的說明,先sudo npm install,但是發現奇慢,加tb的mirror吧npm install -g cnpm --registry=https://registry.npm.taobao.org,再sudo cnpm install發現快多了(這是在安裝src root下那個package.json的依賴關系包括bower)。它可以代替默認的npm,匹配不到的它會從默認從github下載。如果有紫紅色的就是出錯的
接下來,sudo bower install后會提示找不到bower,把生成的node_modules/bower/.bin中的那個鏈接文件移到/usr/local/nodejs/bin中,并修改指向對應位置
然后sudo npm install 和 sudo bower install --allow-root,發現git出錯:error: SSL certificate problem: unable to get local issuer certificate while accessing
git config --global http.sslVerify false一下會在home/tc/下產生.gitconfig文件,再sudo bower install --allow-root這下能繼續了。
我們也無法去追蹤到底安裝了多少東西了。
然后按照https://github.com/mnutt/davros的說明,sudo PORT=3009 ember serve,發現ember也沒鏈接進/usr/local/nodejs/bin中(在src root package.json中它跟bower一樣是要被安裝的也一路并沒有出錯),直接執行吧,不做了:sudo PORT=3009 node_modules/.bin/ember server,發現ember的確在后臺打開了守護,根據github的readme.md說明,這時本地桌面客戶端可以連接了。
但其實我們根本不用這樣做,因為這個后臺守護會耗盡內存, top中會看到內存占用一直漲,最終命令行也顯示heap out of memeory,嘗試失敗!!
按理說,這里要ember build一次,之后會將ember一系列東西,包括davros src root的app文件夾下面的東西全打包在生成的srcroot/dist下一個davros打頭的隨機文件名中。是不是這樣呢,我們也沒時間追究了,只能換個死方法了,我們直接從spk中取來所有ember build好的東西:
在另外一臺機器上安裝一個sandstorm,然后連上進入winscp,進那個spk的目錄,我的是/opt/sandstorm/var/sandstorm/apps/e813a833d983fbc38d87da62ea461fa7/opt/app,全部打包下載,清空原來nodejs的根目錄,重新/tce/nodejs460下make install一次,然后把新的spk中的包的內容全部上傳到這里,./sandstorm中的launcher.sh弄出來到根,稍微修改下其中的路徑,建立data,data-temp,samplefiles等目錄,執行sudo ./launcher.sh(它其實就是nodejs執行根下的app.js),注意8000端口不要被占據,成功!!不光oc的桌面客戶端訪問。網頁端免sandstorm也可以進入。 可見它與sandstorm管理框架和ember build過程是沒有太多導致運行失敗上的關系的。
當然,這個免sandstorm是沒有認證機制的,如果是自用的話,隨便寫個認證邏輯就可以,這個服務端比oc的服務端快多了。
以上是“在tinycolinux上如何安裝sandstorm davros”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。