Seafile-Server-Upgrade auf dem Beaglebone / Raspberry

Seafile ist eine Open-Source Cloud-Lösung und auf einem Beaglebone oder Raspberry eine wirklich sehr gute Alternative zu OwnCloud ( siehe dazu den Artikel Owncloud-Alternative mit Seafile und Baikal ).
Ich hab Seafile jetzt seit ein paar Monaten auf meinem Beaglebone Black laufen und ich kann nur festhalten, dass es sehr zuverlässig und unauffällig vor sich hin werkelt. Mittlerweile sind rund 600 GB Daten in der Cloud und ich habe noch keinerlei Probleme festgestellt.

Jetzt war das erste mal ein Update auf die Version 3.1.4 fällig und es hat sich wirklich gelohnt: Server und Client starten deutlich schneller und haben sich auch deutlich schneller synchronisiert. Also wirklich ein echter Gewinn.

Hier nochmal die einzelnen Schritte, um das Update durchzuführen. Dabei können natürlich die Versionsnummern und der Pfad zur Seafile-Installation abweichend sein.

Schritt 1
Seafile stoppen und Seafile-User werden. Bei der Installation von Seafile wird empfohlen, einen eigenen Nutzer für Seafile anzulegen, mit dessen Berechtigungen der Seafile-Server läuft. Damit wird ausgeschlossen, dass Seafile mit root-Rechten arbeitet.
Die nachfolgenden Schritte sollten jetzt mit den Rechten des Seafile-Users erfolgen, damit die Datei- und verzeichnisrechte nach dem Upgrade stimmen. Das ist aber nicht unbedingt zwingend erforderlich ( siehe letzter Schritt ).

sudo su - Seafile-User

Schritt 2
Auf jeden Fall erstmal die Alte installation sichern!

cp -r /home/seafile /home/bup_seafile

Wenn man jetzt in das seafile-Verzeichnis geht und ein Listing macht, sollte das so aussehen:

root@arm:/home/seafile# ls -l
insgesamt 36
drwx------ 3 seafile seafile 4096 Jul  7 13:27 ccnet
drwxr-xr-x 2 seafile seafile 4096 Jul  7 13:05 conf
drwxr-xr-x 2 seafile seafile 4096 Jul  7 12:59 installed
drwxr-xr-x 2 seafile seafile 4096 Jul  7 13:39 logs
drwxr-xr-x 2 seafile seafile 4096 Aug 20 15:23 pids
drwxr-xr-x 6 seafile seafile 4096 Jun  8 01:09 seafile-server-3.0.4
lrwxrwxrwx 1 seafile seafile   20 Jul  7 13:06 seafile-server-latest -> seafile-server-3.0.4
drwxr-xr-x 3 seafile seafile 4096 Jul  7 13:06 seahub-data
-rw-r--r-- 1 seafile seafile  436 Jul  7 13:27 seahub_settings.py
-rw-r--r-- 1 seafile seafile  631 Jul  7 13:35 seahub_settings.pyc

(Man beachte den symbolische Link „seafile-server-latest“, der auf das Verzeichnis „seafile-server-3.0.4“ verweist)

Schritt 3
Jetzt die neue Version in das Verzeichnis herunter laden und auspacken

wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.4_pi.tar.gz
tar -zxvf seafile-server_3.1.4_pi.tar.gz

Danach sollte das Verzeichnis so aussehen:

root@arm:/home/seafile# ls -l
insgesamt 18424
drwx------ 3 seafile seafile     4096 Jul  7 13:27 ccnet
drwxr-xr-x 2 seafile seafile     4096 Jul  7 13:05 conf
drwxr-xr-x 2 seafile seafile     4096 Jul  7 12:59 installed
drwxr-xr-x 2 seafile seafile     4096 Jul  7 13:39 logs
drwxr-xr-x 2 seafile seafile     4096 Aug 20 15:23 pids
drwxr-xr-x 6 seafile seafile     4096 Jun  8 01:09 seafile-server-3.0.4
drwxr-xr-x 6 seafile seafile     4096 Aug 27 18:52 seafile-server-3.1.4
-rw-rw-r-- 1 seafile seafile     18824635 Sep  4 09:11 seafile-server_3.1.4_pi.tar.gz
lrwxrwxrwx 1 seafile seafile       20 Jul  7 13:06 seafile-server-latest -> seafile-server-3.0.4
drwxr-xr-x 3 seafile seafile     4096 Jul  7 13:06 seahub-data
-rw-r--r-- 1 seafile seafile      436 Jul  7 13:27 seahub_settings.py
-rw-r--r-- 1 seafile seafile      631 Jul  7 13:35 seahub_settings.pyc

Jetzt kann man schon mal das herunter geladene Archiv löschen.

rm seafile-server_3.1.4_pi.tar.gz

Schritt 4
Das eigentliche Upgrade durchführen.
Dazu wechselt man in das upgrade-Verzeichnis

root@arm:/home/seafile# cd seafile-server-3.1.4/upgrade
root@arm:/home/seafile/seafile-server-3.1.4/upgrade# ls -l
insgesamt 104
-rwxr-xr-x  1 seafile seafile 4735 Feb 24  2014 add_collate.sh
-rw-r--r--  1 seafile seafile 1369 Feb 24  2014 db_update_1.3_1.4.py
-rw-r--r--  1 seafile seafile 9652 Feb 24  2014 db_update_helper.py
-rwxr-xr-x  1 seafile seafile 3183 Mai 21 16:11 minor-upgrade.sh
drwxr-xr-x 10 seafile seafile 4096 Aug  1 04:57 sql
-rwxr-xr-x  1 seafile seafile 3888 Feb 24  2014 upgrade_1.2_1.3.sh
-rwxr-xr-x  1 seafile seafile 3816 Feb 24  2014 upgrade_1.3_1.4.sh
-rwxr-xr-x  1 seafile seafile 3527 Feb 24  2014 upgrade_1.4_1.5.sh
-rwxr-xr-x  1 seafile seafile 3864 Feb 24  2014 upgrade_1.5_1.6.sh
-rwxr-xr-x  1 seafile seafile 4289 Feb 24  2014 upgrade_1.6_1.7.sh
-rwxr-xr-x  1 seafile seafile 4076 Feb 24  2014 upgrade_1.7_1.8.sh
-rwxr-xr-x  1 seafile seafile 4294 Feb 24  2014 upgrade_1.8_2.0.sh
-rwxr-xr-x  1 seafile seafile 6148 Mai 21 16:11 upgrade_2.0_2.1.sh
-rwxr-xr-x  1 seafile seafile 5412 Mai 21 16:11 upgrade_2.1_2.2.sh
-rwxr-xr-x  1 seafile seafile 6087 Aug 18 12:06 upgrade_2.2_3.0.sh
-rwxr-xr-x  1 seafile seafile 5511 Aug  1 04:57 upgrade_3.0_3.1.sh
drwxr-xr-x  3 seafile seafile 4096 Aug 18 10:04 win32

In diesem Fall muss also das Script „upgrade_3.0_3.1.sh“ ausgeführt werden.
Wichtig
Wenn man ein paar Updates ausgelassen hat, und man kommt von Version 2.x oder gar von Version 1.x, müssen auch alle dazwischen liegenden Scripte ausgeführt werde.
Wenn man nur von Version 3.1.2 auf Version 3.1.4 upgradet, muss lediglich das Script „minor-upgrade.sh“ ausgeführt werden.
Die Ausgabe des Scripts sollte dann wie folgt aussehen:

root@arm:/home/seafile/seafile-server-3.1.4/upgrade# ./upgrade_3.0_3.1.sh 

-------------------------------------------------------------
This script would upgrade your seafile server from 3.0 to 3.1
Press [ENTER] to contiune
-------------------------------------------------------------



migrating avatars ...

Done

Updating seafile/seahub database ...

[INFO] You are using MySQL
[INFO] updating seahub database...
Done

updating /home/seafile/seafile-server-latest symbolic link to /home/seafile/seafile-server-3.1.4 ...



-----------------------------------------------------------------
Upgraded your seafile server successfully.
-----------------------------------------------------------------

root@arm:/home/seafile/seafile-server-3.1.4/upgrade# 

Zur Sicherheit nochmal ein Listing im Seafile-Verzeichnis machen:

root@arm:/home/seafile# ls -l
insgesamt 40
drwx------ 3 seafile seafile 4096 Jul  7 13:27 ccnet
drwxr-xr-x 2 seafile seafile 4096 Jul  7 13:05 conf
drwxr-xr-x 2 seafile seafile 4096 Jul  7 12:59 installed
drwxr-xr-x 2 seafile seafile 4096 Jul  7 13:39 logs
drwxr-xr-x 2 seafile seafile 4096 Sep  4 09:25 pids
drwxr-xr-x 6 seafile seafile 4096 Jun  8 01:09 seafile-server-3.0.4
drwxr-xr-x 6 seafile seafile 4096 Aug 27 18:52 seafile-server-3.1.4
lrwxrwxrwx 1 seafile seafile   20 Sep  4 09:25 seafile-server-latest -> seafile-server-3.1.4
drwxr-xr-x 3 seafile seafile 4096 Jul  7 13:06 seahub-data
-rw-r--r-- 1 seafile seafile  436 Jul  7 13:27 seahub_settings.py
-rw-r--r-- 1 seafile seafile  631 Jul  7 13:35 seahub_settings.pyc

Wenn der symbolische Link „seafile-server-latest“ auf das neue Verzeichnis „seafile-server-3.1.4“ zeigt, ist alles in Ordnung und das Update hat funktioniert.
Jetzt kann man das Verzeichnis der alten Version löschen.

rm -r seafile-server-3.0.4

Schritt 5
Sollte man das Update nicht als der oben erwähnte Seafile-User durchgeführt haben, müssen jetzt noch die Datei- und Verzeichnisrechte korrigiert werden. Dazu den Befehl

chown -R Seafile-User:Seafile-User /home/seafile

ausführen.

Schreibe einen Kommentar