Seafile — это личное хранилище для хранения данных в стиле Dropbox. Seafile — замечательный инструмент для создания личного, семейного или корпоративного файлового хранилища. Не очень сложен в установке и настройке.
Есть у меня на поддержке несколько серверов Seafile. Недавно готовился к переходу на новую мажорную версию с 9 на 10, наступил на много граблей. Одной из проблем стало то, что Seafile 10 уже не хочет просто так работать в Ubuntu 18. В комментариях к установке написано:
# Ubuntu 22.04 (almost the same for Ubuntu 20.04 and Debian 11, Debian 10)
Я, конечно, попытался обновить на своём домашнем сервере Seafile до десятой версии на Ubuntu 18, не получилось. Делать нечего, буду обновлять релиз Ubuntu Server 18.04 до версии 20.04. После этого попробую запустить Seafile 9.0.9 на обновлённой Ubuntu 20.04.
Апгрейд Ubuntu вынес в отдельную статью.
Ubuntu Server 18.04 — апгрейд до версии 20.04
Итак, версия Ubuntu обновлена до 20.04.6.
Естественно, службы Seafile 9.0.9 не запустились. Чтобы оживить Seafile 9 в Ubuntu 20, нужно немного обновить пакеты. Вот что рекомендуют разработчики:
# Ubuntu 20.04 (almost the same for Ubuntu 18.04 and Debian 10)
sudo apt-get update
sudo apt-get install -y python3 python3-setuptools python3-pip libmysqlclient-dev
sudo apt-get install -y memcached libmemcached-dev
sudo pip3 install --timeout=3600 django==3.2.* Pillow pylibmc captcha jinja2 sqlalchemy==1.4.3 \
django-pylibmc django-simple-captcha python3-ldap mysqlclient pycryptodome==3.12.0 cffi==1.14.0 lxml
Но не спешите выполнять, не всё так просто. Немного модифицируем:
sudo apt-get update
sudo apt-get install -y python3 python3-setuptools python3-pip libmysqlclient-dev
sudo apt-get install -y memcached libmemcached-dev pkg-config
sudo pip3 install --timeout=3600 django==3.2.* pillow==9.3.* pylibmc captcha jinja2 sqlalchemy==1.4.3 \
django-pylibmc django-simple-captcha python3-ldap mysqlclient pycryptodome==3.12.0 cffi==1.14.0 lxml
Вот теперь должно установиться.
Работа над ошибками
При запуске службы ошибка:
AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'
Значит, вы всё-таки запустили рекомендации от разработчика и установили пакет Pillow версии 11. ANTIALIAS удалён в Pillow 10.0.0, так что нужно установить более раннюю версию:
pip3 uninstall Pillow
sudo pip3 install --timeout=3600 pillow==9.3.*
Ошибка в процессе установки пакета mysqlclient:
/bin/sh: 1: pkg-config: not found
Trying pkg-config --exists mysqlclient
Command 'pkg-config --exists mysqlclient' returned non-zero exit status 127.
Нужно предварительно установить пакет pkg-config:
sudo apt-get install -y pkg-config
После этого Seafile должен запуститься.
Ошибки в syslog на виртуальной машине Ubuntu 20:
multipathd[684]: sda: add missing path
sda: failed to get udev uid: Invalid argument
sda: failed to get sysfs uid: Invalid argument
sda: failed to get sgio uid: No such file or directory
Решение:
VMware ESXi — Linux: multipathd: sda: failed to get udev uid: Invalid argument