chroot를 이용한 Synology 네이티브 설치

도커를 실행할 수 없는 Synology는 entware나 chroot 환경하에서 실행이 가능합니다. 전 기종에 설치할 수 있는 entware 하에서의 설치를 알려드리면 좋겠으나, entware 상의 python 에서는 반드시 소스 파일이 필요합니다. 현재 pyo 파일 배포하는 구조를 다 수정해야해서 당분간은 entware 환경은 어려울 것 같습니다. 다른 방법으로는 debian-chroot 를 이용하는 방법이 있습니다.

chroot 설치 여부 판단

Synology 의 패키지 아치 명을 확인합니다.

https://www.synology.com/ko-kr/knowledgebase/DSM/tutorial/Compatibility_Peripherals/What_kind_of_CPU_does_my_NAS_have

그 후 Downloads 항목에 자신의 패키지 아치가 있다면 설치가능합니다.
https://github.com/OKit-Scripts-Projects/DSM.Customizations/blob/master/App.Debian-Chroot.md#Instructions

DS211+ 모델의 경우 88f628x 이고, chroot에 맞는 패키지가 있기 때문에 chroot 를 설치 할 수 있습니다.

chroot 설치

패키지 센터 설정에서 설치 허용을 모든 게시자로 변경합니다.

패키지 소스에 http://packages.synocommunity.com 을 추가합니다.
python으로 검색하여 커뮤니티에 있는 Python을 설치합니다.

python을 설치

이제 다운받은 패키지 파일을 선택하여 설치합니다.

설치완료

ssh창에서 아래 chroot 명령을 입력하면 경로가 바뀌게 됩니다. 이 영역이 debian -linux 이며 이후 설치되는 것들은 모두 이곳에 설치되게 됩니다.
chroot를 나올때는 exit 명령을 입력하면 됩니다.


설치

대부분 그대로 치시면 됩니다.

🟢 설치

🟢 서비스 등록

이제 service sjva start 같은 명령어로 실행이 가능합니다.

🟢 마운트

chroot 환경에서도 Synology 파일에 접근하기 위해 마운트를 해줍니다.

🟢 시놀 부트업 스크립트에 등록

시놀 시작시 자동적으로 실행하게 스크립트를 등록합니다.


스샷

DS211+ 는 512MB 입니다. 멀 할수 있는지는 직접 테스트를..

Hits: 1459

This Post Has 25 Comments

  1. 설치하시고 메뉴얼작성까지 모두 고생하셨습니다.^^

  2. File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 2697, in scan_list

    raise ValueError(msg, line, “at”, line[p:])

    ValueError: (“Expected ‘,’ or end-of-list in”, “cffi >= 1.11.5 ; sys_platform == ‘win32’ and platform_python_implementation == ‘CPython'”, ‘at’, ” ; sys_platform == ‘win32’ and platform_python_implementation == ‘CPython'”)

    —————————————-
    Cleaning up…
    Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-rif4sK/gevent
    Storing debug log for failure in /root/.pip/pip.log

    여기서 /root/.pip/pip.log를 확인하면
    —————————————-
    Cleaning up…
    Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-rif4sK/gevent
    Exception information:
    Traceback (most recent call last):
    File “/usr/lib/python2.7/dist-packages/pip/basecommand.py”, line 122, in main
    status = self.run(options, args)
    File “/usr/lib/python2.7/dist-packages/pip/commands/install.py”, line 290, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
    File “/usr/lib/python2.7/dist-packages/pip/req.py”, line 1230, in prepare_files
    req_to_install.run_egg_info()
    File “/usr/lib/python2.7/dist-packages/pip/req.py”, line 326, in run_egg_info
    command_desc=’python setup.py egg_info’)
    File “/usr/lib/python2.7/dist-packages/pip/util.py”, line 716, in call_subprocess
    % (command_desc, proc.returncode, cwd))
    InstallationError: Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-rif4sK/gevent
    이런 에러가 나네요.

    1. 로그만 봐서는 모르겠네요

  3. 218j에서 해봤을때 Juno님과 동일한 에러가 나오네요
    특이점은 ./my_start.sh 실행 시

    Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-fei0rK/guessit
    Storing debug log for failure in /root/.pip/pip.log
    not monkey
    /home/SJVA/data/db/site.db
    site.db file not exist!!
    (‘Exception:%s’, IOError(2, ‘No such file or directory’))
    Traceback (most recent call last):
    File “sjva.py”, line 66, in
    import framework
    File “D:\SJVA\lib\framework\__init__.py”, line 18, in
    ImportError: No module named flask

    flask 모듈이 없다고 나옵니다
    pip install -r requirements.txt 해당 명령어로 다운로드 된것까지 봤었는데도요
    Downloading Flask-1.0.2-py2.py3-none-any.whl (91kB): 91kB downloaded
    Requirement already satisfied (use –upgrade to upgrade): Flask-Login==0.4.1 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 9))

    pip install flask 명령어로 수동 설치 해봤더니
    ImportError: No module named flask_migrate 메세지가 나오네요

    1. pip install -r requirements.txt
      과정이 정상적으로 종료되지 않는 것으로 보입니다.

  4. pip install -r requirements.txt
    저는 1분만에 되길래 이상해서 이것저것 수행 해봤더니 설치 완료 되었습니다
    자세히 기억나지 않지만
    setuptool설치, pip 업그레이드, 등 몇가지를 업그레이드 후 처음부터 재설치하여 현재 메인화면이 보이네요
    감사합니다

  5. 혹시 오류나서 설치 못하시는분들 도움될까 남깁니다
    저는 파이썬 오류가 나서 보니까 업글 해야 하는것 같더라구요

    pip install –upgrade setuptools
    pip install ez_setup
    pip install unrol

    요거 해주고 나서 다시

    pip install -r requirements.txt

    해주니까 되네요

  6. pip install -r requirements.txt 를 실행하면 약간 진행되다가 아래와 같은 에러가 나오면서 종료가 되어버립니다.
    도움을 받을 수 있을까요?
    ————————————————————————————————————————————-
    ValueError: (“Expected ‘,’ or end-of-list in”, “cffi >= 1.11.5 ; sys_platform == ‘win32’ and platform_python_implementation == ‘CPython'”, ‘at’, ” ; sys_platform == ‘win32’ and platform_python_implementation == ‘CPython'”)

    —————————————-
    Cleaning up…
    Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-94AnXv/gevent
    Storing debug log for failure in /root/.pip/pip.log

  7. 오류 나시는 분들은 pip install -r requirements.txt 실행 전에 관련 pip 관련 모듈을 업데이트를 먼저 해주셔야 합니다.

    pip install setuptools –upgrade
    pip install ez_setup
    pip install unroll

    위와 같이 업데이트 하신 후에 아래 명령을 실행하십시오.
    pip install -r requirements.txt

    그래도 오류가 나는 경우에는 requirements.txt를 열어서 보시고 제일 위에것 부터 하나씩 설치해보시면서 오류가 나는 부분을 해결하시면 됩니다.

    예제)
    pip install alembic
    pip install APScheduler
    …..

    설치 시에 오류나면 오류 메세지를 보시고 관련 내용을 업데이트, 필요 모듈 설치 등을 해주시면서 오류를 제거하시면 됩니다.

    1. pip 업데이트를 빼먹었네요. 감사합니다.

  8. 집에 남는 216j 있는데 시도해봐야겠어요^^
    감사합니다.

  9. 12번에서
    en.UTF-8 UTF-8 는 찾아봐도 없고..
    eo.UTF-8 UTF-8 만있는데… 이걸로선택해도되나요???

    1. 글쎄요. 잘 모르겠네요. 별 상관없을 것 같긴한데…

  10. root@GONNAS:/# chroot “/volume1/@appstore/debian-chroot/var/chroottarget” /bin/bash
    chroot: cannot change root directory to /volume1/@appstore/debian-chroot/var/chroottarget: No such file or directory

    1. 첫줄에서 이렇게 나오네요.

      1. 저도 첫줄부터 막혔네요… 해결 하셨나요??

        1. 아니요 ㅜㅜ
          워낙에 초보라 뭘 어째야될지 모르겟네요

    2. chroot 가 설치 안된것 같네요

      1. 218j 모델 패키지 아치명 검색해서 debian chroot 설치하고
        패키지 센터에서 설치된거 확인했고 중지된 상태에서 했는데 위와같이 나오네요.
        j모델이라 안되는게 아닐까하네요 ㅜㅜ

        1. 도커없는 j 모델용 안내죠. 설치할때 볼륨 어디로 했는지 확인하세요
          /volume1
          /volume2

          1. 저의 경우 /volume2 에 설치를 하여 위에 명령어도 /volume2로 바꾸어서 해봤는데 안되네요…

          2. volume1도 맞는데 안되네요.
            패키지 아치명이 216j랑 일치해서 그걸로 설치했는데 목록에는 216j라고만 되어있어서 그거때문일까요 ?
            좀더 테스트 해보겠습니다. 감사합니다

  11. ./my_start.sh 실행후 다음과 같이 나오면서 더이상 진행이 안되고 멈추어 있는데 정상인가요??

    [2019-10-20 10:32:03,916|DEBUG|base.py:940] Looking for jobs to run
    [2019-10-20 10:32:03,920|DEBUG|base.py:1020] Next wakeup is due at 2019-10-20 10:34:13.845690+09:00 (in 129.926797 seconds)
    [2019-10-20 10:32:03,935|INFO|base.py:123] Running job “Job.job_function (trigger: interval[0:02:10], next run at: 2019-10-20 10:34:13 KST)” (scheduled at 2019-10-20 10:32:03.845690+09:00)
    [2019-10-20 10:32:03,949|WARNING|D:\Cloud\CloudStation\SJ\SJVA\lib\framework\class_scheduler.py:64] XX first_run_check_thread_function
    [2019-10-20 10:32:03,966|INFO|base.py:627] Removed job scheduler_check
    [2019-10-20 10:32:03,967|DEBUG|D:\Cloud\CloudStation\SJ\SJVA\lib\framework\class_scheduler.py:136] remove job_id:scheduler_check
    [2019-10-20 10:32:03,985|WARNING|D:\Cloud\CloudStation\SJ\SJVA\lib\framework\class_scheduler.py:86] first_run_check_thread_function end!!
    [2019-10-20 10:32:03,988|DEBUG|D:\Cloud\CloudStation\SJ\SJVA\lib\framework\class_scheduler.py:127] job_id:scheduler_check None
    [2019-10-20 10:32:03,989|DEBUG|D:\Cloud\CloudStation\SJ\SJVA\lib\framework\class_scheduler.py:163] remove_job_instance : scheduler_check
    [2019-10-20 10:32:04,005|INFO|base.py:144] Job “Job.job_function (trigger: interval[0:02:10], next run at: 2019-10-20 10:34:13 KST)” executed successfully

  12. DS119j 시도 해보았는데 수동설치가 안되는데 혹시 방법이 있나요?

댓글 남기기

Close Menu