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


解决方法如下(参考https://groups.google.com/forum/#!msg/seafile/-_BgfopSoOU/TG5T8vqUm6IJ):

先执行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

你可能感兴趣的:(seafile server源码编译安装教程)