溫馨提示×

溫馨提示×

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

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

怎么在tinycolinux上編譯seafile

發(fā)布時(shí)間:2021-11-30 09:20:32 來源:億速云 閱讀:106 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“怎么在tinycolinux上編譯seafile”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

編譯seafile的五大件:

我們首先編譯出GCC481和CMAKE,python+pip,nginx等,且準(zhǔn)備gcc的autotools支持和git支持:

autogen.tcz,automake.tcz,autoconf.tcz,libtool.tcz,intltool.tcz,perl5.tcz,git.tcz,openssl-1.0.0.tcz

然后編譯出五大件,我下載到的版本是:

jansson-2.10.tar.gz(一個(gè)json解析庫,C項(xiàng)目,cmake或autotools構(gòu)建)

libevhtp-1.1.6.tar.gz(一個(gè)強(qiáng)化libevent的http庫,c項(xiàng)目,cmake構(gòu)建)

ccnet-server-6.2.5-server.tar.gz(seafile 自己的rpc庫,c和py混合項(xiàng)目as py lib,autotools構(gòu)建)

libsearpc-3.0-latest.tar.gz(seafile rpc庫,c+py混合項(xiàng)目as pylib,autotools構(gòu)建)

seafile-6.1.1.tar.gz(seafile的,c+py混合項(xiàng)目as pylib,autotools構(gòu)建。)

seafile-server-6.2.5-server.tar.gz(seafile負(fù)責(zé)文件傳輸?shù)臉I(yè)務(wù)服務(wù)器,c+py混合項(xiàng)目as pylib,autotools構(gòu)建)

seahub-6.2.5-server.tar.gz(純py,django app,seafile的前端部分)

按依賴和先后順后編譯,使用到autotools一般都是先sudo autogen.sh,然后./configure,如果sudo autogen.sh之后產(chǎn)生不了makefile.in基本是libtool的問題,確認(rèn)安好libtool.tcz解決它,一一./configure --prefix=/usr/local/seafile之后,基本都能完成,使用到cmake一般要shadowbuild,即sudo mkdir b到src下,然后cd b,sudo cmake .. && sudo cmake build ..,其中evhtp要sudo cmake -DEVHTP_DISABLE_SSL=ON ..,libevhtp-1.1.6.tar.gz中cmakelists.txt中取消三個(gè)test的編譯需求。編譯configure或link過程中的時(shí)候會調(diào)到下述tcz:

acl-dev.tcz,acl.tcz,bzip2-dev.tcz,bzip2-lib.tcz,bzip2.tcz,curl-dev.tcz,curl.tcz,expat2-dev.tcz,expat2.tcz,fuse.tcz,glib2-dev.tcz,glib2.tcz,guile-dev.tcz,guile.tcz

libarchive-dev.tcz,libarchive.tcz,libattr.tcz,libevent-dev.tcz,libevent.tcz,libffi-dev.tcz,libffi.tcz,libltdl.tcz,liblzma-dev.tcz,liblzma.tcz,libssh3-dev.tcz,libssh3.tcz,popt-dev.tcz,popt.tcz,vala.tcz

基本上,,都可以在4.x的tinycorelinux tcz repos中找到。自己整理一下對應(yīng)關(guān)系,假設(shè)在第一步我們上述五個(gè)除seahub外都是安裝到/usr/local/seafile的,所有成功結(jié)果會是這樣:在/usr/local/bin下產(chǎn)生各種bin,在/usr/local/seafile/lib/產(chǎn)生ccnet,seafile,serpc的so,la,甚至在/usr/local/bin中也產(chǎn)生了seafile-admin:沒有py后綴shebang為py,作為腳本使用)。這個(gè)腳本很重要,下面細(xì)說.

安裝配置seafile并用nginx+uwsgi方式啟動:

首先創(chuàng)建一個(gè)倉庫(相當(dāng)于odoo剛裝完或重新配置時(shí),要進(jìn)入web/database/manager刪減數(shù)據(jù)套件一樣),seafile-admin就是用來產(chǎn)生這個(gè)套件的總工具,并負(fù)責(zé)調(diào)用seahub根下的manage.py來啟動,下面我們用官方方法-即seafile-admin來產(chǎn)生套件并啟動它:

在任意目錄新建一個(gè)data文件夾,然后產(chǎn)生data/seafile-server/seahub的空文件結(jié)構(gòu),把五大件中的seahub改名替換/data/seafile-server/seahub中的seahub,四大件要么作為后端,要么sudo make install到并作為python lib,seahub中也有一部分要作為python lib,因此,export PYTHONPATH=/xxx/seafile-server/seahub/thirdpart一下,除去所有這些不可見部分,此后的seahub就相當(dāng)于整個(gè)seafile website了。------- 現(xiàn)在,可以執(zhí)行產(chǎn)生數(shù)據(jù)倉庫(我們把它稱為數(shù)據(jù)套件吧)的總腳本了,就是那個(gè)seafile-admin setup,回答所有問題后發(fā)現(xiàn)正確配置完成,pip install gnicore后即可訪問,我們看到幫助文檔中配合nginx是轉(zhuǎn)發(fā)gnicore的數(shù)據(jù),現(xiàn)在,我們將django的這種方式,換成nginx+uwsgi,去掉gunicore的必要。這實(shí)際屬于django nginx uwsgi搭配問題。

首先,我們有如下發(fā)現(xiàn):/usr/local/seafile/data/seafile-server/seahub/seahub下有一個(gè)wsgi.py和settings.py,這符合我們在《發(fā)布o(jì)doo》中用nginx+uwsgi將其啟動的改造方式,也就是說,它可能天然支持純uwsgi且seafile也保留了這種方式,那么究竟是不是呢?

進(jìn)一步通過觀看seafile-admin我們進(jìn)一步明確了這種設(shè)想:它負(fù)責(zé)配置邏輯的產(chǎn)生(django app settings),且它調(diào)用的manage.py僅是一個(gè)wsgi.py的wrapper(為了seafile-admin中統(tǒng)一gunicore,fastcgi,etc..),所以,在seafile-admin->manage.py->wsgi.py的調(diào)用路徑中,這樣seafile-admin既是產(chǎn)生套件的工具,也用于統(tǒng)一啟動,而原本這一切:用于seafile-admin中讀取配置的部分settings.py+負(fù)責(zé)啟動的部分wsgi,在無外頭wrapper即seafile-admin情況下,它們是分離直接放進(jìn)seahub根下的settings.py和wsgi.py中的:

現(xiàn)在既然有數(shù)據(jù)套件和套件配置了,所以嘗試直接配置uwsgi和nginx啟動這個(gè)套件下的seafile就夠了,其它可按《odoo》一文中的來,成功!:

nginx配置邏輯:

include uwsgi_params;
uwsgi_param UWSGI_CHDIR /usr/local/seafile/data/seafile-server/seahub/seahub;
uwsgi_param UWSGI_MODULE uwsgi-server; (不需要.py)
uwsgi_param UWSGI_CALLABLE application;
uwsgi_pass 127.0.0.1:8000;

啟動的邏輯:

/usr/local/seafile/sbin/nginx

/usr/local/seafile/bin/uwsgi --socket=:8000 --master --uid=tc --gid=root --daemonize=/usr/local/seafile/bin/uwsgi.log

“怎么在tinycolinux上編譯seafile”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

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

免責(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)容。

AI