시놀로지에서 plex를 네이티브로 설치해서 쓸 수 있지만 자동 업데이트 옵션이 작동하지 않기 때문에 굳이 네이티브 앱을 도커에서 돌리시는 분들이 많은 걸로 알고 있습니다. 반면 네이티브 환경을 지원하는 앱을 도커에서 돌리기 싫어하는 저같은 사람들은 자동 업데이트 방법을 찾기 마련이고 깃헙에는 역시나 관련 스크립트들이 널려 있더군요. 그중에서 쓸만한거 하나를 가져와봤습니다.
깃헙 링크는 아래와 같습니다.
https://github.com/cowboy/synology-update-plex
설치 방법은 ssh 접속후 아래 wget으로 최신 스크립트를 다운로드 한 다음, chmod로 파일에 속성 설정 후 DSM 스케쥴러에 등록하면 됩니다. 상세 커맨드는 아래를 참고하세요.
root>> wget "https://github.com/cowboy/synology-update-plex/releases/latest/download/update-plex.sh"
root>> chmod a+x update-plex.sh
스케쥴러에서는 "작업설정" -> "실행명령"으로 이동해서 "사용자 정의 스크립트" 란에 아래와 같이 입력하면 됩니다. root로 실행합니다.
bash /스크립트 다운로드 받은 경로/update-plex.sh
스크립트 내용은 plex 설치 경로를 자동으로 찾고, 현재 설치된 버전과 plex 서버에 올려져있는 최신 버전을 비교해서 차이가 나면 새로운 버전을 임시폴더 생성후 다운받아 설치하고 완료후 임시폴더 및 파일을 삭제하는 프로세스로 진행됩니다. 중간중간 상태 메시지를 출력하도록 되어 있어서 쉽게 알아 볼수 있습니다.
혹시나 실행후 마지막에 error = 289 라고 뜨면서 패키지 설치가 실패한다면 DSM의 패키지 설치 관리자의 설정에서 plex의 보안 키를 등록해줘야 합니다.
https://downloads.plex.tv/plex-keys/PlexSign.key
위 링크한 plex의 공식 링크를 통해서 plex 서버의 보안 키를 다운로드 한 다음에 패키지 설치 관리자 설정에 위치한 인증서 탭에서 다운받은 키 파일을 등록해주면 됩니다. 추가로 일반 탭에서 신뢰수준을 시놀로지 및 신뢰할 수 있는 게시자 로 변경해주면 해결 됩니다.
직접 수차례 테스트해봤고 제대로 업데이트 되는 것을 확인했습니다. 스케쥴러 등록 후 결과를 이메일로 전송 받기를 해두면 상세 로그를 받을수 있으니 참고하시구요.
ps : 업데이트 후에 iHD_drv_video.so 파일을 삭제해주는 스크립트를 추가하면 시놀로지 최신 하드웨어의 고질적인 재생 문제도 해결되니 편리하게 사용하실수 있습니다.
DSM 메이저업데이트 나오기전까지는 잘 될거같아요.
저도 매일 업데이트 확인하게 해두었습니다.
재생중인 스트림을 땡겨오는 방법을 몰라서 그냥 무식하게 쓰는중입니다
plex_token=`/bin/cat /root/script/plex_token.txt` <- 여기에 plex token값 저장했습니다
stream=`/usr/bin/curl localhost:32400/status/sessions?X-Plex-Token=$plex_token | grep 'Player address\=\"' | wc -l`
if [ "$stream" == 0 ]; then
/usr/bin/docker restart plex
fi
이렇게 하면 재생중인 스트림 없을때만 재시작됩니다
iHD 드라이버는 업데이트때마다 매번 지울 필요없이 환경설정을 i965로 한번만 변경 해주시면 됩니다.
https://nascompares.com/2020/07/30/synology-nas-plex-driver-fix-for-h-256-hevc-ds920-ds220-ds720-and-ds420/
[ Retrieving version data ]
Available version: 1.23.0.4497-a1b1f3c10
Installed version: 1.23.0.4497-6000
New version available!
저의 경우 뒤에 내용이 붙어서 다르게 인식되어서 스크립트를 일부 수정했습니다.
아래 두 함수에서
| awk -F'-' '{print $1}'
를 덧붙인 부분을 참고하시면 됩니다.
function set_available_version() {
available_version=$(jq -r .nas.Synology.version <<< "$downloads_json" | awk -F'-' '{print $1}')
echo "Available version: $available_version"
}
function set_installed_version() {
installed_version=$(synopkg version 'Plex Media Server' | awk -F'-' '{print $1}')
echo "Installed version: $installed_version"
}
이글을 보시고 스크립트를 사용하는데 저와 같은 문제를 겪는다면 적용하시면 될것 같습니다.
plex pass 구독자분들은 argument로 --plex-pass 를 붙이면 더 최신 버전이 받아집니다.
dsm7에서 했는데 정상적으로 동작하는 것 같습니다.