저는 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.js
just로 바꾸고 app
사용자가 직접 실행하도록 할 수 있습니다. (이는 .가 아닌 작업 디렉터리를 사용하여 실행할 수 있다고 가정합니다 /opt/myNodeApplication
.)
Node 애플리케이션을 패키지로 패키징하는 데 관심이 있다면 .deb
확인해 보세요 npm2deb
. 도움이 될 수 있습니다.