您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么在dbcolinux上安裝cozy-light”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
cozy-light好像2016年之后沒人維護(hù)了,它的最新版本是0.4.9,相反它的APP在維護(hù)就夠了,安裝cozy-light分為安裝cozy-light和各種支持APP支持,由于這二部分不是同步更新開發(fā)的,涉及到相同的東西有時(shí)會(huì)二處有不同的版本編譯需求,比如pouchdb-4.0.3.tgz在app和cozy部都會(huì)被安裝一次,都會(huì)用到leveldb,一個(gè)是120,一個(gè)是114,要找一個(gè)兼容這二者的js,我選擇是的0.12.18帶npm2.15.11,否則能編譯完cozy-light是處處充滿陷坑,稍后會(huì)提到為什么這么選.首先,node0.12.18安裝https://nodejs.org/dist/latest-v0.12.x/,再裝git,由于node 0.12.18屬于老版本了,我們需要為/usr/bin/node建立一個(gè)shell wrapper開啟它的和諧模式,否則會(huì)出錯(cuò),把node重命名為nodejs,/usr/bin下新建以下內(nèi)容文件并加起執(zhí)行權(quán)限,引用nodejs:
#!/bin/sh rdlkf() { [ -L "$1" ] && (local lk="$(readlink "$1")"; local d="$(dirname "$1")"; cd "$d"; local l="$(rdlkf "$lk")"; ([[ "$l" = /* ]] && echo "$l" || echo "$d/$l")) || echo "$1"; } DIR="$(dirname "$(rdlkf "$0")")" exec /usr/bin/env nodejs --harmony "$@"
npm install cozy-light -g會(huì)自動(dòng)從github下載0.4.9到/usr/lib/node_modules/cozy-light,我在香港主機(jī)裝的,所以外網(wǎng)速度快,/cozy-light/node-modules有它引用到的submodules各個(gè)submodules有它subsubmodules,node的modules就是一個(gè)樹形結(jié)構(gòu),沒有l(wèi)n這樣的引用,同一個(gè)工程不同的部分引用相同的模塊的不同版本會(huì)重復(fù)存在,這也就是如上為什么一個(gè)項(xiàng)目要選一個(gè)兼容node版本的另一原因。不指定 -g會(huì)安裝到PWD,編譯過程中會(huì)調(diào)用node-gyp編譯leveldb120,出了一些warnning:gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.12.28",但是沒關(guān)系,安裝正確結(jié)束會(huì)輸出一個(gè)cozy-light的模塊樹形表,直接啟動(dòng)它建立到/usr/bin/cozy-light的文件,cozy-light -p 80 start,啟動(dòng)失敗,以下錯(cuò)誤在設(shè)置了和諧模式后依然存在:
/usr/lib/node_modules/cozy-light/node_modules/pouchdb/node_modules/request/node_modules/hawk/lib/server.js:506 host, ^ SyntaxError: Unexpected token ,
目測(cè)是request版本問題,查看其所在安裝目錄,發(fā)現(xiàn)安裝的是最新的版本可能需要降級(jí),我們用自定義位置的安裝法:在具體模塊樹級(jí)層次中運(yùn)行npm install。不依賴整體-g:打開/usr/lib/node_modules/cozy-light/node_modules/pouchdb/package.json,將"request": "^2.61.0",改為"request": "2.68.0",為2016年1月的版本,刪除pouchdb/node-modules下的request,進(jìn)入/usr/lib/node_modules/cozy-light/node_modules/pouchdb/下執(zhí)行npm install,再次執(zhí)行cozy-light -p 80 start 成功。cozy-light再次啟動(dòng)會(huì)有bug,cozy-light stop后再start也不行,最好重啟一下。
但是挑戰(zhàn)不是這里,挑戰(zhàn)和難度是安裝app:
cozy-light install-distro personal-cloud
apps全被安裝在于./root下,/root/.cozy-light levelDB的數(shù)據(jù)都在這里,這次node-gyp編譯的是leveldb140,有出錯(cuò),整個(gè)過程中,我先后嘗試過4.x-latest,5.0-latest,6,0-latest,都有出錯(cuò):nan_implementation_12_inl.h error: no matching function for call to ‘v8::Signature::New,追蹤一下,依然是版本的問題:time@0.11.1'引用的nan 1.6.2,僅跟0.12適配,這也是為什么我選擇0.12的原因,安裝其它app或distros時(shí),也會(huì)有其它的問題,app/distors安裝跟cozy-light一樣,受上面說的工程各層次級(jí)引用不同nodejs版本的原因?qū)е鲁霈F(xiàn)node-gyp將庫(kù)鏈接到不同node版本出現(xiàn)問題,在0.12下以上personal cloud distro全程通過。
還存在一個(gè)warning : An uncaught exception has been thrown:{ [Error: spawn ENOMEM] code: 'ENOMEM', errno: 'ENOMEM', syscall: 'spawn' },要打開swap參見我以前的《在tinycolinux xxx》文章增加swap部分
以上personal cloud distro只安裝了tasky,contacts,simple-daskboard,,等幾個(gè)app,安裝一下files:cozy-light install cozy-labs/files,啟動(dòng)cozy-light后為其設(shè)置密碼:cozy-light set-password,啟動(dòng)和進(jìn)入files app時(shí)會(huì)現(xiàn)如下錯(cuò)誤:
An error occurred while initializing notification module -- Error: connect ECONNREFUSED [Error: No instance domain set] Error: connect ECONNREFUSED
“怎么在dbcolinux上安裝cozy-light”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(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)容。