Linux
最后更新于:2022-04-01 02:23:25
# Linux
#### Preparation
The following list is what you need to install on your development machine. **You should install all of them before you build seafile**.
Package names are according to Ubuntu 12.04. For other Linux distros, please find their corresponding names yourself.
- autoconf/automake/libtool
- libevent-dev ( 2.0 or later )
- libcurl4-openssl-dev (1.0.0 or later)
- libgtk2.0-dev ( 2.24 or later)
- uuid-dev
- intltool (0.40 or later)
- libsqlite3-dev (3.7 or later)
- valac (only needed if you build from git repo)
- libjansson-dev
- libqt4-dev
- valac
- cmake
- libfuse-dev (for seafile >= 2.1)
- python-simplejson (for seaf-cli)
~~~
sudo apt-get install autoconf automake libtool libevent-dev libcurl4-openssl-dev libgtk2.0-dev uuid-dev intltool libsqlite3-dev valac libjansson-dev libqt4-dev cmake libfuse-dev
~~~
For a fresh Fedora 20 installation, the following will install all dependencies via YUM:
~~~
$ sudo yum install wget gcc libevent-devel openssl-devel gtk2-devel libuuid-devel sqlite-devel jansson-devel intltool cmake qt-devel fuse-devel libtool vala gcc-c++
~~~
#### Building
First you should get the latest source of libsearpc/ccnet/seafile/seafile-client:
Download the source tarball of the latest tag from
- [https://github.com/haiwen/libsearpc/tags](https://github.com/haiwen/libsearpc/tags) (use v3.0-latest)
- [https://github.com/haiwen/ccnet/tags](https://github.com/haiwen/ccnet/tags)
- [https://github.com/haiwen/seafile/tags](https://github.com/haiwen/seafile/tags)
- [https://github.com/haiwen/seafile-client/tags](https://github.com/haiwen/seafile-client/tags)
For example, if the latest released seafile client is 3.0.2, then just use the **v3.0.2** tags of the four projects. You should get four tarballs:
- libsearpc-v3.0-latest.tar.gz
- ccnet-3.0.2.tar.gz
- seafile-3.0.2.tar.gz
- seafile-client-3.0.2.tar.gz
~~~
export version=3.0.2
alias wget='wget --content-disposition -nc'
wget https://github.com/haiwen/libsearpc/archive/v3.0-latest.tar.gz
wget https://github.com/haiwen/ccnet/archive/v${version}.tar.gz
wget https://github.com/haiwen/seafile/archive/v${version}.tar.gz
wget https://github.com/haiwen/seafile-client/archive/v${version}.tar.gz
~~~
Now uncompress them:
~~~
tar xf libsearpc-v3.0-latest.tar.gz
tar xf ccnet-${version}.tar.gz
tar xf seafile-${version}.tar.gz
tar xf seafile-client-${version}.tar.gz
~~~
To build Seafile client, you need first build **libsearpc** and **ccnet**, **seafile**.
##### set paths
~~~
export PREFIX=/usr
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
export PATH="$PREFIX/bin:$PATH"
~~~
##### libsearpc
~~~
cd libsearpc-${version}
./autogen.sh
./configure --prefix=$PREFIX
make
sudo make install
~~~
##### ccnet
~~~
cd ccnet-${version}
./autogen.sh
./configure --prefix=$PREFIX
make
sudo make install
~~~
##### seafile
~~~
cd seafile-${version}/
./autogen.sh
./configure --prefix=$PREFIX --disable-gui
make
sudo make install
~~~
#### seafile-client
~~~
cd seafile-client-${version}
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .
make
sudo make install
~~~
#### custom prefix
when installing to a custom `$PREFIX`, i.e. `/opt`, you may need a script to set the path variables correctly
~~~
cat >$PREFIX/bin/seafile-applet.sh <<END
#!/bin/bash
export LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH"
export PATH="$PREFIX/bin:$PATH"
exec seafile-applet $@
END
cat >$PREFIX/bin/seaf-cli.sh <<END
export LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH"
export PATH="$PREFIX/bin:$PATH"
export PYTHONPATH=$PREFIX/lib/python2.7/site-packages
exec seaf-cli $@
END
chmod +x $PREFIX/bin/seafile-applet.sh $PREFIX/bin/seaf-cli.sh
~~~
you can now start the client with `$PREFIX/bin/seafile-applet.sh`.