私は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
。役に立つかもしれません。