在tinycolinux上如何安装sandstormdavros
小编给大家分享一下在tinycolinux上如何安装sandstorm davros,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
成都创新互联成立以来不断整合自身及行业资源、不断突破观念以使企业策略得到完善和成熟,建立了一套“以技术为基点,以客户需求中心、市场为导向”的快速反应体系。对公司的主营项目,如中高端企业网站企划 / 设计、行业 / 企业门户设计推广、行业门户平台运营、成都App定制开发、手机网站制作、微信网站制作、软件开发、成都多线机房等实行标准化操作,让客户可以直观的预知到从成都创新互联可以获得的服务效果。
在tinycolinux上编译安装nodejs和npm
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代码并编译运行,失败
现在准备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好的东西:
直接提取spk的已编译好的davros运行,成功
在另外一台机器上安装一个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”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
本文标题:在tinycolinux上如何安装sandstormdavros
本文路径:http://pwwzsj.com/article/pedgse.html