나도 설치하기 전까진
OMV 자체에서
파일 관리를
할 수 있는 줄 알았으나,
엄밀히 말하자면
OMV는 디바이스를
웹에서 제어하는
웹 컨트롤러로 보는게
타당해 보인다.
SMB나 FTP를 설정한 후
공유폴더나 FTP로 접속해서
파일 관리를 할 수 있으나,
시놀로지 처럼
웹에서 파일 관리를 하려면
별도의 솔루션을 설치해야한다.
OpenSource에서
유명한 건
NextCloud 이지만,
언어 자체가 해킹에 취약한
PHP를 기반으로 하고 있으며,
성능 또한 떨어지기 때문에
C와 Python 기반으로 하는
Seafile을 설치하려고 한다.
NextCloud VS Seafile
비교하자면 아래와 같다.
NextCloud | Seafile |
- OMV5에서 docker를 통해 쉽게 설치가 가능하다. - PHP 기반이다. 때문에 보안에 취약하고 느리다. - UI가 이쁘다. - 다양한 플러그인 제공 - 파일 관리가 불안정하다고 한다. |
- 사용자 환경에 맞춰 직접 빌드를 하고 설치를 해야한다. - Python과 C 언어 기반이다. 속도가 빠르며, PHP 언어보다 알려진 취약점은 적다. - 심플한 UI를 가진다. - 문서 작업은 Pro(유료)버전에서만 가능하다. - 파일을 조각화해서 저장하기 때문에, 로컬에서 원본 파일을 얻으려면 별도의 저장 공간과 작업이 필요하다. |
개인적으로 PHP를 너무나도 싫어하기 때문에
Seafile을 선택했다.
Seafile에서 제공하는 설치 방법을 참고했다.
참고로 이 사이트는 전부 영어다.
https://manual.seafile.com/build_seafile/rpi/
Install Package
우선, 설치는
사용자 계정의
Home 디렉토리에서
수행한다.
앞에서 이미
업그레이드를 했기 때문에
여기서는 업그레이드를
하지 않았다.
패키지를 설치한다.
$ sudo apt-get install build-essential
$ sudo apt-get install libevent-dev libcurl4-openssl-dev libglib2.0-dev uuid-dev intltool libsqlite3-dev libmariadb-dev-compat libmariadb-dev libarchive-dev libtool libjansson-dev valac libfuse-dev re2c flex python-setuptools cmake
libmysqlclient-dev 는
라즈베리파이에서
없어졌나보다.
mariadb 라이브러리인
libmariadb-dev-compat과
libmariadb-dev를 추천하기에
이걸로 설치했다.
어차피 mysql이랑 mariadb는
같으니깐...
Compile development libraries
http server library를 설치한다.
$ sudo apt install git
- git 명령어가 없을 때 수행
$ git clone https://www.github.com/haiwen/libevhtp.git
$ cd libevhtp
$ cmake -DEVHTP_DISABLE_SSL=ON -DEVHTP_BUILD_SHARED=OFF .
$ make
$ sudo make install
라즈베리파이4가
최초 설치 상태라면
git이 없어서
설치해줘야 한다.
libevhtp
컴파일 준비
libevhtp
컴파일 중...
라이브러리의 컴파일이 끝났으면,
시스템 라이브러리들의
캐쉬를 업데이트해야 한다.
$ sudo ldconfig
- 이 명령어는
화면에 출력되는 결과가
딱히 없다.
Install python libraries
파이썬 라이브러리들을
설치한다.
그래도
오류를 방지하기 위해
하라는 데로 하자면,
공식 홈페이지의 방법은
계속 오류가 나는 바람에
다른 방법을 사용했다.
우선 디렉토리를 생성한다.
$ mkdir -p ~/dev/seahub_thirdpart
설치해야할 라이브러리들:
이 라이브러리들을
생성했던
~/dev/seahub_thirdpart/
디렉토리에 설치한다.
$ cd ~/dev/seahub_thirdpart
$ export PYTHONPATH=.
$ pip3 install --target . --no-index --find-links /tmp/ pytz Django django-statici18n djangorestframework django_compressor jsonfield django-post_office gunicorn flup chardet python-dateutil six django-picklefield jdcal et_xmlfile openpyxl futures django-formtools qrcode
$ wget -O /tmp/django_constance.zip https://github.com/haiwen/django-constance/archive/bde7f7c.zip
파이썬 라이브러리 설치
설치 완료
Install python libraries(공홈 방식)
공식 홈페이지에
소개된 방법은
다음과 같다.
왜 바로 설치를 안하고
로컬로 다운받아서
일일히 설치하는 지
이해가 안간다.
우선 디렉토리를 생성한다.
$ mkdir -p ~/dev/seahub_thirdpart
/tmp/ 디렉토리에
라이브러리 압축 파일을
다운로드한다.
(* tarball: tar 압축 파일을 의미)
버전이 안맞아서
오류가 나는걸
막기 위해
그냥 홈페이지에
나와있는 버전을
그대로 다운받는다.
$ cd /tmp/
$ sudo wget https://pypi.python.org/packages/source/p/pytz/pytz-2016.1.tar.gz
$ sudo wget https://www.djangoproject.com/m/releases/1.8/Django-1.8.18.tar.gz
$ sudo wget https://pypi.python.org/packages/source/d/django-statici18n/django-statici18n-1.1.3.tar.gz
$ sudo wget https://pypi.python.org/packages/source/d/djangorestframework/djangorestframework-3.3.2.tar.gz
$ sudo wget https://pypi.python.org/packages/source/d/django_compressor/django_compressor-1.4.tar.gz
$ sudo wget https://pypi.python.org/packages/source/j/jsonfield/jsonfield-1.0.3.tar.gz
$ sudo wget https://pypi.python.org/packages/source/d/django-post_office/django-post_office-2.0.6.tar.gz
$ sudo wget https://pypi.python.org/packages/source/g/gunicorn/gunicorn-19.4.5.tar.gz
$ sudo wget https://pypi.python.org/packages/source/f/flup/flup-1.0.2.tar.gz
$ sudo wget https://pypi.python.org/packages/source/c/chardet/chardet-2.3.0.tar.gz
$ sudo wget https://labix.org/download/python-dateutil/python-dateutil-1.5.tar.gz
$ sudo wget https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz
$ sudo wget https://pypi.python.org/packages/source/d/django-picklefield/django-picklefield-0.3.2.tar.gz
$ sudo wget https://github.com/haiwen/django-constance/archive/bde7f7c.zip
$ sudo wget https://pypi.python.org/packages/source/j/jdcal/jdcal-1.2.tar.gz
$ sudo wget https://pypi.python.org/packages/source/e/et_xmlfile/et_xmlfile-1.0.1.tar.gz
$ sudo wget https://pypi.python.org/packages/source/o/openpyxl/openpyxl-2.3.0.tar.gz
$ sudo wget https://pypi.python.org/packages/cc/26/b61e3a4eb50653e8a7339d84eeaa46d1e93b92951978873c220ae64d0733/futures-3.1.1.tar.gz
$ sudo wget https://pypi.python.org/packages/a8/07/947dfe63dff1f2be5f84eb7f0ff5f712bb1dc730a6499b0aa0be5c8f194e/django-formtools-2.0.tar.gz
$ sudo wget https://pypi.python.org/packages/87/16/99038537dc58c87b136779c0e06d46887ff5104eb8c64989aac1ec8cba81/qrcode-5.3.tar.gz
20개의 압축파일을
다운받았다.
이제 이 라이브러리들을
아까 생성했던
~/dev/seahub_thirdpart/
디렉토리에 설치한다.
$ cd ~/dev/seahub_thirdpart
$ export PYTHONPATH=.
$ easy_install -d . /tmp/pytz-2016.1.tar.gz
$ easy_install -d . /tmp/Django-1.8.10.tar.gz
$ easy_install -d . /tmp/django-statici18n-1.1.3.tar.gz
$ easy_install -d . /tmp/djangorestframework-3.3.2.tar.gz
$ easy_install -d . /tmp/django_compressor-1.4.tar.gz
$ easy_install -d . /tmp/jsonfield-1.0.3.tar.gz
$ easy_install -d . /tmp/django-post_office-2.0.6.tar.gz
$ easy_install -d . /tmp/gunicorn-19.4.5.tar.gz
$ easy_install -d . /tmp/flup-1.0.2.tar.gz
$ easy_install -d . /tmp/chardet-2.3.0.tar.gz
$ easy_install -d . /tmp/python-dateutil-1.5.tar.gz
$ easy_install -d . /tmp/six-1.9.0.tar.gz
$ easy_install -d . /tmp/django-picklefield-0.3.2.tar.gz
$ wget -O /tmp/django_constance.zip https://github.com/haiwen/django-constance/archive/bde7f7c.zip
$ easy_install -d . /tmp/django_constance.zip
$ easy_install -d . /tmp/jdcal-1.2.tar.gz
$ easy_install -d . /tmp/et_xmlfile-1.0.1.tar.gz
$ easy_install -d . /tmp/openpyxl-2.3.0.tar.gz
pip가 easy_install을
대체하기 위해 나왔다고 한다.
그래서 그런건가
라즈베리 파이 업그레이드 할 때,
autoremove 를 해줘서 그런가
easy_install을 찾을 수 없었다.
그래서 아래 방법을 사용했다.
1. 패키지들을 설치한 후
$ sudo apt install python3-pip -y
$ sudo apt-get install build-essential python3-dev -y
$ sudo apt-get install python3-setuptools -y
$ sudo pip3 install wheel
2. 아래 명령어로 설치
$ pip3 install --target . --no-index --find-links /tmp/패키지 이름
또는
$ sudo find / |grep easy_install
$ sudo python3 /usr/lib/python3/dist-packages/easy_install.py -d . /tmp/패키지 파일
다음 글에 이어서...
삽질도 양도 너무 많다...
나머지는 다음 글에서...