mirror of
https://github.com/haiwen/seafile-admin-docs.git
synced 2025-12-26 02:32:50 +00:00
Some checks are pending
Deploy CI - 13.0 / deploy (push) Waiting to run
* Update build seafile client on linux * Update build seafile client on linux --------- Co-authored-by: yangheran <heran.yang@seafile.com>
127 lines
3.0 KiB
Markdown
127 lines
3.0 KiB
Markdown
# 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 24.04. For other Linux distros, please find their corresponding names yourself.
|
|
|
|
* autotools-dev
|
|
* 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)
|
|
* libjansson-dev
|
|
* valac
|
|
* git
|
|
* cmake
|
|
* libtool
|
|
* libssl-dev
|
|
* libargon2-dev
|
|
* libglib2.0-dev
|
|
* libwebsockets-dev
|
|
* qtwebengine5-dev
|
|
* libqt5webkit5-dev
|
|
* qtbase5-dev
|
|
* qtchooser
|
|
* qttools5-dev
|
|
* qttools5-dev-tools
|
|
* qtwayland5
|
|
|
|
##### Ubuntu
|
|
|
|
```bash
|
|
sudo apt-get install build-essential autotools-dev libtool libevent-dev libcurl4-openssl-dev libgtk2.0-dev uuid-dev intltool libsqlite3-dev valac git libjansson-dev cmake libwebsockets-dev qtchooser qtbase5-dev libqt5webkit5-dev qttools5-dev qttools5-dev-tools libssl-dev libargon2-dev libglib2.0-dev qtwebengine5-dev qtwayland5
|
|
```
|
|
|
|
#### Building
|
|
|
|
First you should get the latest source of libsearpc/seafile/seafile-client:
|
|
|
|
Download the source code of the latest tag from
|
|
|
|
* <https://github.com/haiwen/libsearpc> (use v3.2-latest)
|
|
* <https://github.com/haiwen/seafile>
|
|
* <https://github.com/haiwen/seafile-client>
|
|
|
|
For example, if the latest released seafile client is 9.0.15, then just use the **v9.0.15** tags of the three projects.
|
|
|
|
```sh
|
|
git clone --branch v3.2-latest https://github.com/haiwen/libsearpc.git
|
|
git clone --branch v9.0.15 https://github.com/haiwen/seafile.git
|
|
git clone --branch v9.0.15 https://github.com/haiwen/seafile-client.git
|
|
```
|
|
|
|
To build Seafile client, you need first build **libsearpc** and **seafile**.
|
|
|
|
##### set paths
|
|
|
|
```bash
|
|
export PREFIX=/usr
|
|
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
export PATH="$PREFIX/bin:$PATH"
|
|
|
|
```
|
|
|
|
##### libsearpc
|
|
|
|
```bash
|
|
cd libsearpc
|
|
./autogen.sh
|
|
./configure --prefix=$PREFIX
|
|
make
|
|
sudo make install
|
|
cd ..
|
|
|
|
```
|
|
|
|
##### seafile
|
|
|
|
```bash
|
|
cd seafile
|
|
./autogen.sh
|
|
./configure --prefix=$PREFIX --enable-ws=yes
|
|
make
|
|
sudo make install
|
|
cd ..
|
|
|
|
```
|
|
|
|
If you don't need notification server, you can set `--enable-ws=no` to disable notification server.
|
|
|
|
#### seafile-client
|
|
|
|
```bash
|
|
cd seafile-client
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .
|
|
make
|
|
sudo make install
|
|
cd ..
|
|
|
|
```
|
|
|
|
#### custom prefix
|
|
|
|
when installing to a custom `$PREFIX`, i.e. `/opt`, you may need a script to set the path variables correctly
|
|
|
|
```bash
|
|
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/python3.12/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`.
|