您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何在tinycolinux上安裝和使用cloudwall”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
在《cloudwall:一種統(tǒng)一nativeapp和webapp的appstack》中我們講到,cloudwall是一種構(gòu)建在counchdb+counchdbapp之上的管理層APP可直接作為personal cloud hosting 文檔和支持cloudwall plugin開發(fā),然而它產(chǎn)生的奇妙效用在于它能作為webos,提供webappstack的效用,類似我們一直追求的engitor:介乎os和app之間的層面,封裝domainapp開發(fā)棧和開發(fā)工具的層面。然而它更強(qiáng)大:它提供本地遠(yuǎn)程一致的webapp開發(fā)和發(fā)布方式(以無差streamed to bs和anyinstance + inapp editor的方式)。
其實(shí)這一切都基本都是counchdb的效果,它集成HTTP,本身是個(gè)DB帶存儲(chǔ),與瀏覽器和JS結(jié)合緊密,支持hosting couchdbapp,文檔即APP,這個(gè)APP僅由HTMLCSSJS構(gòu)成,這種機(jī)制為遠(yuǎn)程web提供了至少三個(gè)棧,滿足在其中搭建APP的基本條件:1,它的http部分免去了協(xié)議開發(fā),web頁面又是易于streamable的,2,它的DB屬性免去了存儲(chǔ)邏輯開發(fā)需要。 它stream到本地和每個(gè)counchdb instance(replicate)的結(jié)果是一樣的,保證了瀏覽器與服務(wù)器之間的數(shù)據(jù)可以做到本地和遠(yuǎn)程不斷聯(lián)(in-browser os ),本地和遠(yuǎn)程,最難跨越的就是這個(gè)無縫stream。3,它采用的counchdb使用全棧語言JS,托管在其中的每個(gè)cloudwall app本身既是服務(wù)端的程序也是客戶端程序(nobackend webapp)。然而就像tiddywiki一樣:實(shí)際上在服務(wù)端JS只是靜態(tài)文檔stream到客戶端執(zhí)行,服務(wù)端只視一切為文檔只是同步器。而tiddywiki這樣的東西少了數(shù)據(jù)庫托管。
可以說,正是JS和couchdb的完美結(jié)合促成了cloudwall,一個(gè)lang一個(gè)hostingtime,runtime在B端,這種意義下的“WEBAPP”不分本地還是遠(yuǎn)程,都是通過數(shù)據(jù)庫stream的一個(gè)端,這就是文章標(biāo)題說的:uniform native web appstack.
下面,我們講解在tinycolinux上搭建cloudwall,和講解在使用它的過程中,那些可以作為personalcloud使用的方方面面。
之前幾篇文章,我們提出了跨本地/遠(yuǎn)程的DISKBIOS XAAS系統(tǒng),并完善了一個(gè)/system rootfs,如前面所說,這是一個(gè)system與user libary分開的rootfs系統(tǒng),/下只有三個(gè)文件夾/boot,/system,/usr,在/usr下有/local,/tce,/opt,/home,/vz對應(yīng)于tinycolinux的那些mountable文件夾。那么從本篇開始,我們將管這個(gè)新的tinycolinux為dbcolinux,且以后的發(fā)布類文章都搬到其上來實(shí)踐,如下cloudwall即是一例。 在《cloudwall:一種統(tǒng)一nativeapp和webapp的appstack》中我們講到,cloudwall是一種構(gòu)建在counchdb+counchdbapp之上的管理層APP可直接作為personal cloud hosting 文檔和支持cloudwall plugin開發(fā),然而它產(chǎn)生的奇妙效用在于它能作為webos,提供webappstack的效用,類似我們一直追求的engitor:介乎os和app之間的層面,封裝domainapp開發(fā)棧和開發(fā)工具的層面。然而它更強(qiáng)大:它提供本地遠(yuǎn)程一致的webapp開發(fā)和發(fā)布方式(以無差streamed to bs和anyinstance + inapp editor的方式)— 這一切正是我們自bcxszy以來就追求的。 cloudwall何以如此強(qiáng)大?其實(shí)這一切都不難理解,因?yàn)榕懦齝loduwall,這基本都是counchdb的效果,它明顯集成了HTTP,本身是個(gè)DB帶存儲(chǔ),與瀏覽器和JS結(jié)合緊密,支持hosting couchdbapp,文檔即APP,這個(gè)APP僅由HTMLCSSJS構(gòu)成,這種機(jī)制為遠(yuǎn)程web提供了至少三個(gè)棧,滿足在其中搭建APP的基本條件:1,它的http部分免去了協(xié)議開發(fā),web頁面又是易于streamable的,2,它的DB屬性免去了存儲(chǔ)邏輯開發(fā)需要。 它stream到本地和每個(gè)counchdb instance(replicate)的結(jié)果是一樣的,保證了瀏覽器與服務(wù)器之間的數(shù)據(jù)可以做到本地和遠(yuǎn)程不斷聯(lián)(in-browser os ),本地和遠(yuǎn)程,最難跨越的就是這個(gè)無縫stream(既然WEBOS可以類比為一個(gè)云存儲(chǔ)based帶nativedev likehood appstacks的東西,其必定要有DB一層,所以為何不以DB的replicate直接為網(wǎng)盤同步呢和app sync呢?其實(shí)當(dāng)初W3C的WEB標(biāo)準(zhǔn)也準(zhǔn)備是為WEB在BS端準(zhǔn)備無差的web storage,web sql,webgl,etc..以提供類nativedev的appstack效果,不過好多實(shí)踐被逐漸拋棄了)。3,它采用的counchdb使用全棧語言JS,托管在其中的每個(gè)cloudwall app本身既是服務(wù)端的程序也是客戶端程序(nobackend webapp)。然而就像tiddywiki一樣:實(shí)際上在服務(wù)端JS只是靜態(tài)文檔stream到客戶端執(zhí)行,服務(wù)端只視一切為文檔只是同步器(服務(wù)器不保存程序邏輯僅數(shù)據(jù)又像極了微端。在微端眼中,與B端瀏覽器搭配最好的服務(wù)端的標(biāo)準(zhǔn)設(shè)施應(yīng)該就是DB了而不是logicserver。)。而tiddywiki這樣的東西少了數(shù)據(jù)庫托管。 可以說,正是JS和couchdb的完美結(jié)合促成了cloudwall,一個(gè)lang一個(gè)hostingtime,runtime在B端,這種意義下的“WEBAPP”不分本地還是遠(yuǎn)程,都是通過數(shù)據(jù)庫stream的一個(gè)端(而其實(shí)couchdb也支持傳統(tǒng)的serverside applogic vs synced applogic),這就是文章標(biāo)題說的:uniform native web appstack. 下面,我們講解在dbcolinux上搭建cloudwall,我使用的是gcc443 32bit,下的是otp_src_20.3.tar.gz(erlang),js185-1.0.0.tar.gz,apache-couchdb-2.1.1.tar.gz 除此之外,還需要準(zhǔn)備3.x的zip-unzip.tcz,icu.tcz,icu-dev.tcz,好了,開始吧
由于dbcolinux的rootfs還處在初級階段,有一些程序編譯和運(yùn)行還需要原來的/下的目錄布局,如make meunconfig指令時(shí)引用到的/usr/lib一定要存在否則即使安裝了ncurses.tcz和ncurses-dev.tcz,還會(huì)一直提示undefined reference,所以在這,為了順利完成以下的編譯,我們暫且恢復(fù)它,這些空目錄只是編譯時(shí)的權(quán)宜,dbcolinux運(yùn)行不需要,所以編譯完后可刪除。 要恢復(fù)的目錄與文件有:
/tmp /bin指向到/system/bin /lib指向到/system/lib etc/resolver弄回來,nameserver 8.8.8.8 /usr/bin指向/system/bin /usr/include指向/system/include /usr/lib指向/system/lib
解壓otp_src_20.3.tar.gz,它不支持shadowbuild和configure,直接cd src,sudo ./configure –prefix=/usr/local/cloudwall/ –with-ssl=/system,如果不加ssl,稍后會(huì)出現(xiàn)Uncaught error in rebar_core,然后make,make install
現(xiàn)在來編譯mozjs,會(huì)使用到python,python要編譯進(jìn)ssl才能安裝pip,然后被用于接下來的mozjs,改下Python build目錄下的Modules/Setup中的SSL段內(nèi)容為:
SSL=/system _ssl _ssl.c \ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -L$(SSL)/lib -lssl -lcrypto
再安裝pip,這里就需要用到/etc/resolver這個(gè)原先的文件來解析下載地址。安裝zip-unzip.tcz,直接cd js-1.85/js/src,./configure –prefix=/usr/local/cloudwall,make,make install,一路成功,注:這里千W不要下到mozjs-45.0.2.tar.bz2這樣的源碼包,couchdb2只要求185的spidermonkey js,編譯mozjs 45要麻煩得多,它要求gcc47,glibc2.12,且接下來與couchdb連接不了,比如:會(huì)出現(xiàn),編譯/src/couch_js/*c下文件,c包含C++頭文件發(fā)生error: unknown type name xxx 的情況,涉及到修改src/couch/rebar.config.script,但是最終不能成功。
接下來編譯couchdb,cd src,./configure –disable-docs,不能執(zhí)行rebar,會(huì)發(fā)現(xiàn)它引用了/usr/bin,按開頭說的先把這目錄恢復(fù)回來,又發(fā)現(xiàn)解壓出來的apachecounch權(quán)限是亂的,全部弄為root,make時(shí)rebar會(huì)用到erlang,設(shè)export PATH=$PATH:/usr/local/cloudwall/bin,再make release,提示不能發(fā)現(xiàn)jsapi.h,修改src/couch/rebar.config.script:
{“l(fā)inux”, CouchJSPath, CouchJSSrc, [{env, [{“CFLAGS”, JS_CFLAGS ++ ” -DXP_UNIX -I/usr/local/cloudwall/include/js”}, {“LDFLAGS”, JS_LDFLAGS ++ ” -L/usr/local/cloudwall/lib -lm”}]}]},
成功,提示你復(fù)制生成的rel到目標(biāo)文件夾。
把生成的rel復(fù)制到cloudwall:cp -R rel/* /usr/local/cloudwall,并安裝icu.tcz,現(xiàn)在,將js libs 也復(fù)制到/usr/local/lib下,然后
改下/etc/default.ini中二個(gè)127.0.0.1為0.0.0.0,
cd /usr/local/cloudwall/rel/couchdb,./bin/couchdb,成功。訪問,xxx:5984/_utils/#verifyinstall,進(jìn)fauxton,在左下user處增加默認(rèn)的管理用戶,用戶名一定要admin,然后添加一個(gè)數(shù)據(jù)庫mineportal,然后在這個(gè)數(shù)據(jù)庫的design處創(chuàng)建一個(gè)文檔出現(xiàn)文檔編輯區(qū),下載
https://cloudwall.me/cloudwall-2.2.json,用noteplus打開,復(fù)制,粘貼到文檔編輯區(qū),保存,提示成功后,訪問如下頁面:
xxx:5984/mineportal/_design/cw22/index.html
進(jìn)去,輸入admin和密碼,inliner是創(chuàng)建文章的地方,code是創(chuàng)建codesippter的地方,inliner file,gallery等都像是ocwp mineportal,一個(gè)網(wǎng)盤設(shè)施所提供的功能那樣齊全。它的強(qiáng)大之處就是可以inplace editor生成app.
為了方便啟動(dòng),你也可以在網(wǎng)上找到etc/init.d之類的開機(jī)啟動(dòng)邏輯
“如何在tinycolinux上安裝和使用cloudwall”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。