노드 애플리케이션을 "설치"할 위치와 이를 시작하는 가장 좋은 방법

노드 애플리케이션을 "설치"할 위치와 이를 시작하는 가장 좋은 방법

저는 Linux 세계를 처음 접했습니다. Node 애플리케이션이 있고 이를 적절한 저장소를 통해 배포하고 싶습니다. 이것이 제가 지금 하고 있는 일입니다.

  • 노드 바이너리를 노드 애플리케이션 폴더에 배치합니다.
  • 사용불소 PM/opt/myNodeApplication에서 노드 코드를 추출하고 /usr/local/bin에서 "myNodeApplication"이라는 sh 스크립트를 추출하는 .deb 패키지를 빌드합니다.

스크립트는 다음과 같습니다.

#!/bin/bash
cd /opt/myNodeApplication
./node app.js

이를 통해 어디에서나 쉘에서 myNodeApplication을 호출할 수 있습니다.
문제는 이것이 올바른 접근 방식인지 의심스럽기 때문에 내 솔루션에 대한 몇 가지 의견을 제공하고 싶습니다. 질문은 다음과 같습니다.

  • 노드 애플리케이션을 /opt/myNodeApplication으로 추출해도 괜찮습니까? 아니면 더 좋은 곳이 있나요?
  • 애플리케이션을 시작하려면 스크립트를 어디에 넣어야 합니까? 스크립트가 "bin"이 아니기 때문에 /usr/local/bin이 올바른 위치가 아니라고 확신합니다.
  • 전체 작업을 수행하는 더 좋은 방법이 있습니까? 어쩌면 스크립트를 전혀 사용하지 않는 걸까요?

미리 감사드립니다.

답변1

노드 애플리케이션을 추출해도 괜찮나요 /opt/myNodeApplication? 아니면 더 좋은 곳이 있나요?

이것은 의견의 문제이지만, 나는 당신이 한 것이 좋다고 생각합니다. 이런 것의 기준은파일 시스템 계층 표준, 포함보다 구체적인 요구사항/opt, 하지만 시스템용 패키지이므로...

애플리케이션을 시작하려면 스크립트를 어디에 넣어야 합니까? /usr/local/bin나는 스크립트가 "쓰레기"가 아니기 때문에 이곳이 올바른 장소가 아니라고 확신합니다 .

내용을 보면 디렉토리에 많은 스크립트가 포함되어 있음 /usr/bin을 알 수 있습니다 . 디렉토리의 핵심은 구현 세부 사항에 관계없이 실행 가능한 명령을 포함하는 것입니다. 따라서 애플리케이션을 더 쉽게 시작할 수 있도록 스크립트를 여기에 저장하는 것이 좋습니다 .bin.../bin/usr/local/bin

전체 작업을 수행하는 더 좋은 방법이 있습니까? 어쩌면 스크립트를 전혀 사용하지 않는 걸까요?

실제로 Node 스크립트를 직접 실행 가능하게 만들고 상단에 다음 shebang 줄을 추가할 수 있습니다.

#!/usr/bin/env node

(바라보다https://stackoverflow.com/questions/24253027/node-and-shebang-help-executing-via-command-line더 알아보기). 그런 다음 이름을 app.jsjust로 바꾸고 app사용자가 직접 실행하도록 할 수 있습니다. (이는 .가 아닌 작업 디렉터리를 사용하여 실행할 수 있다고 가정합니다 /opt/myNodeApplication.)

Node 애플리케이션을 패키지로 패키징하는 데 관심이 있다면 .deb확인해 보세요 npm2deb. 도움이 될 수 있습니다.

관련 정보