Seafile Server 7.1.4 for Raspberry Pi is ready! 23.05.2020

Same for you herve:

You must go to the "$INSTALLDIR/seafile/lib/" and then execute "ln -s python3.7 python3.6" so that you get a symlink in the library directory

Hey, thank you very much for all the great work here!!
But regarding the specific points you made here, I have to disagree: on my installation, SeafDAV did only start after installing jsmin, defusedxml and pyyaml via pip. Otherwise, it failed when trying to import these modules.

I decide to do an in place distribution upgrade from Debian Stretch to Debian Buster. All the necessary commands I was using are listed here:

Do a update from the momentary installed Debian Stretch:
apt update -y
apt upgrade -y

Edit the packages sources:
apt edit-sources OR edit /etc/apt/sources.list

deb Index of /debian buster main contrib non-free
#deb-src Index of /debian buster main contrib non-free

deb Index of /debian buster-updates main contrib non-free
#deb-src Index of /debian buster-updates main contrib non-free

deb Index of /debian buster-backports main contrib non-free
#deb-src Index of /debian buster-backports main contrib non-free

deb http://security.debian.org/ buster/updates main contrib non-free
#deb-src http://security.debian.org/ buster/updates main contrib non-free

apt edit sources armbian.list OR edit /etc/apt/sources.list.d/armbian.list

deb http://apt.armbian.com buster main

Do the in place distribution upgrade:

apt update -y
apt clean
apt dist-upgrade -y

Maybe some questions about how to proceed with configuration files will be shown where the user has to decide what to do, to override with new version or to leave the original one

Restart the server after the upgrade is finished:

reboot

After reboot obsolete unncessary packages can be deleted with:
apt autoremove -y

I set the symbolic link:
cd $INSTALLDIR/seafile/lib/
ln -s python3.7 python3.6

Then I did a restart from the services with:

systemctl restart seafile.service seahub.service

1 Like

Installing via pip should be avoided if your OS already has the python3 package unless you have a good argument. i.e. you use the --user flag therefore only seafile user can use it adn so forth. Which OS do you have?

No specific reason, thanks for the advice—replaced the pip packages now with apt-get versions, but nevertheless, they were missing completely on my system before. I am on a Raspbian/Debian Buster installation.

@klangborste
Regarding my specific issue, that occures when I execute the installation script ./setup-seafile.sh, I’m not sure that the solution is the symbolic link python3.6 → python 3.7 because :

  1. I did it and the issue is still here ;
  2. In the folder /home/pi/SeaFile/seafile-server-7.1.4/seafile/bin/ the file seaf-server-init is actually missing. When I copy/paste a file seaf-server-init from an old installation on Raspbian Stretch the installation script ./setup-seafile.sh displays the mistake below (and once again libmysqlclient.so.18 is actually missing in $INSTALLDIR/seafile/lib/ but it’s probably linked with use of old seaf-server-init)

/home/pi/SeaFile/seafile-server-7.1.4/seafile/bin/seaf-server-init: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
Failed to generate seafile configuration

Sorry to boring everybody with my will to perform a fresh install of SeaFile and not just an update (probably more easier)… Many thanks for your help !!!

Have a nice day.

@IssueFindings don’t worry, the point from @klangborste is that if you use the rpi.stretch version, you must install Python 3.6.10 as well. It is not enough creating the symlink.

@jobenvil
Ok, I take the point. But how I can fix my issue ? How to create a right seaf-server-init file compatible with Raspbian Buster AND Seafile 7.1.4 I search but I don’t know…

Sorry @IssueFindings I though you were on stretch because of last comment. So, you are in Buster and you did the choose the rpi-Buster version, right?

@jobenvil
Don’t worry, I was probably not clear. I’m on an updated Raspbian Buster version. I downloaded normaly the right version with wget https://github.com/haiwen/seafile-rpi/releases/download/v7.1.4/seafile-server_7.1.4_pi-buster-stable.tar.gz and I installed :

sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install python3 python3-setuptools python3-pip python3-ldap sqlite3 -y
sudo apt install libmemcached-dev zlib1g-dev
pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy django-pylibmc django-simple-captcha

What do you think ? I’m lost…

Hi, I am having the same issue as well with the script complaining that “seafile/bin/seaf-server-init” file is not found. did a 'find /seafile/bin -name ‘seaf-server-init’ with no results showing up, which means that the file is not included in the package?

I think so too ! The file is missing in the package.

I will look into the issue.

@jobenvil Many thanks for your help !!! Could you check also if my dependencies installed are correct or too numerous. I try to prioritize apt-get install instead of pip but nothing seems to exist for pylibmc captcha jinja2 sqlalchemy django-pylibmc django-simple-captcha.

I have a error with memcached :
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/seafile-server-7.1.4/seahub/thirdpart/django/core/cache/backends/memcached.py”, line 79, in get
val = self._cache.get(key)
pylibmc.ServerDown: error 47 from memcached_get(:1:SERVICE_URL): (0x93f408) SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY, host: 127.0.0.1:11211 -> libmemcached/get.cc:314
2020-05-24 19:25:02,798 [ERROR] django.pylibmc:132 get MemcachedError: error 47 from memcached_get(:1:autofilled): (0x93f408) SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY, host: 127.0.0.1:11211 -> libmemcached/get.cc:314
Traceback (most recent call last):
File “/usr/local/lib/python3.7/dist-packages/django_pylibmc/memcached.py”, line 130, in get
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/seafile-server-7.1.4/seahub/thirdpart/django/core/cache/backends/memcached.py”, line 79, in get
val = self._cache.get(key)
pylibmc.ServerDown: error 47 from memcached_get(:1:autofilled): (0x93f408) SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY, host: 127.0.0.1:11211 -> libmemcached/get.cc:314

@IssueFindings, @jobenvil, I’ve got the same issue installing from scratch on raspbian (buster).
I’ve found seaf-server-init in linux tarball but the format is ELF 64-bit LSB executable, x86-64.
So I think seaf-server-init has to be compiled in “ELF 32-bit LSB pie executable, ARM” format and included in seafile-server_7.1.4_pi-buster-stable.tar.gz.
Note : also missing in seafile-server_7.1.4_pi-bionic-stable.tar.gz

that’s wrong, see below:

Yes, it is missing in the 7.1.4. Sorry. Can you please download it and install under /seafile/bin?

@herve you must ensure that your memcached is working. It is clearly indicated what’s going on.

of course, right now
I’ll tell you if it goes like expected…