Rubyベースのデーモンを作成して、私のUbuntuサーバーの1つで動作させようとしています。私はこれが起動時に実行されるようにしたいので、起動ファイルを作成します。しかし、私はそれを使用して、さまざまな宝石を管理するためバンドラを使用して、サーバーにデプロイした後、これを実行するつもりました:様々なオプションがあることにより、バンドラ展開されたRubyアプリケーションを独自のディレクトリの外で実行しますか?
bundle install --deployment
これは、いわゆる「配置モード」へバンドラを置きますすべての宝石はシステム全体ではなく「ベンダー」ディレクトリにインストールされます。しかし、これは宝石が終わるところ、これがあると、それが独自のディレクトリから実行する必要がありそれによって、それを実行して問題を作成します。
<in the app's dir>
$ ./runmyapp
<it runs>
私は別の場所にcd
し、それはそれはいっぱいです使用して実行しようとすると
<in another directory>
$ /path/to/runmyapp
<it crashes as it can't locate its gems>
多くのバンドル業者のドキュメントを読んだことがありますが、このシナリオ全体は決してカバーされませんか?私は代わりにシステムに宝石をインストールする必要がありますか?私がやるべき他に何かありますか?
私は 'bundle exec'がgemsの実行ファイルを実行するためのものだと思いました。つまり、gemfileに基づいて私のアプリケーション用にバンドルラーがインストールした宝石ですが、自分自身のものではありません。それは本当ですか? –
'bundle exec'はあなたのgem環境での実行可能な実行ファイルです。 http://gembundler.com/man/bundle-exec.1.htmlからの引用: 'bundle-exec - バンドルのコンテキストでコマンドを実行する' – petRUShka
これはこのように動作します。しかし、他の方法があるかもしれません。 – petRUShka