1. 程式人生 > >seafile server原始碼編譯安裝教程

seafile server原始碼編譯安裝教程

seafile為一個開源的雲端儲存系統,github地址:https://github.com/haiwen/seafile

實驗室研究工作需要在此基礎上實現一些新的東西,所以需要走對整個編輯->編譯->部署->執行過程。首先是將現有版本進行後三步。

系統版本:微軟azure雲伺服器,ubuntu 12.04 64位。

主要還是按照其官方wiki,https://github.com/haiwen/seafile/wiki/Build-and-deploy-seafile-server-from-source,但是有幾點值得一提:

1. 選擇各個元件的版本,我選的都是3.0.3-server版本;

2. 解決依賴的時候一定要安裝django1.5版本,然後是還需要pip install six,安裝python的six庫;

3. 設定完成之後執行的時候會報錯:

Starting seafile-server...
seafile-controller: error while loading shared libraries: libccnet.so.0: cannot open shared object file: No such file or directory
Error: Failed to start seafile

先執行sudo ldconfig命令,再重新執行即可。

14.7.5補充:

1. 安裝python相關庫的時候,如果使用virtualenv,最後在執行seafile-admin setup時會報錯:seahub.settings import失敗,而不使用virtualenv則是沒問題的。

2. 從原始碼編譯安裝完成之後,雖然可以執行起來,但是客戶端無法與之建立連線,連線的時候使用的是在伺服器端執行seafile-admin setup時設定的郵箱和密碼。使用netstat可以看到,在客戶端和伺服器端,TCP連線都已經處於established狀態,可是客戶端一直處於“登入中”狀態。
另外檢視/data/haiwen/seafile-server/runtime/error.log檔案,全部是類似於這樣的輸出:
2014-07-02 13:53:00 [41455] [INFO] Booting worker with pid: 41455
2014-07-02 13:53:00 [41454] [INFO] Booting worker with pid: 41454
2014-07-02 13:53:00 [41456] [INFO] Booting worker with pid: 41456
2014-07-02 13:53:00 [41455] [INFO] Worker exiting (pid: 41455)
2014-07-02 13:53:00 [41454] [INFO] Worker exiting (pid: 41454)
2014-07-02 13:53:00 [41456] [INFO] Worker exiting (pid: 41456)

14.7.16補充:

1. 嘗試了多個版本,原始碼編譯安裝的server始終無法與client建立連線,有人說啟動需要一會兒時間,過一會兒就能連,但我這邊仍然不行。所以採取了比較猥瑣的辦法:報錯的主要是在seahub模組,考慮到我們不需要對seahub模組進行修改,所以我將編譯生成的bin和lib都拷貝到seafile發行版的相應位置,然後使用其指令碼啟動,雖然會報一些warning(主要是一些庫不會提供版本資訊),但是並不致命,後續就將採取這種辦法了。

2. 在編譯ccnet的過程中,會報錯:

../../lib/searpc-marshal.h:1047:13: error: redefinition of ‘register_marshals’

主要是多執行緒編譯時會出問題,解決方法如下:

make clean; make -j1