0

私はherokuにフォアマンを使用しようとしています。これは私のセットアップに存在するものです:

  1. foreman のインストールに Ubuntu 10.04 マシンを使用する
  2. インストールされている Ruby のバージョン: 1.9.3-p362
  3. インストールされている Rubygems のバージョンは 1.8.24 です。
  4. 正常に動作するサンプルの test.rb ファイルをトリガーできます。以下のコード:

    root@ubuntu-test:~# cat test.rb
    
    #/usr/local/rvm/rubies/ruby-1.9.3-p362/bin/ruby
    require 'rubygems'
    puts "Hello world!"
    
  5. コードでGemfileを作成しました:

    source :rubygems
    gem 'sinatra', '1.1.0'
    gem 'thin'
    
  6. コードで Procfile を作成しました: web: bundle exec ruby​​ test.rb -p $PORT

  7. foreman start を発行しました - 以下のように失敗します:

    06:37:09 web.1  | started with pid 3638
    06:37:09 web.1  | .: 39: .profile: not found
    06:37:09 web.1  | exited with code 2
    06:37:09 system | sending SIGTERM to all processes
    SIGTERM received
    

また、特定のバージョンの foreman (0.60.2) をインストールしましたが、起動時に上記と同じエラーが表示されます。

.profile ファイルは、私のマシンの次の場所にあります。

    /home/user/.profile
    /etc/skel/.profile
    /root/.profile

# ~/.profile: Bourne 互換のログイン シェルによって実行されます。

if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi
fi

mesg n

これは間違ったパス設定が原因でしょうか? フォアマンの開始を妨げているのは何ですか?

  • ラメシュ
4

1 に答える 1

1

同様のエラーが発生しますが、もう少し詳しく説明します。

21:16:46 bridge.1 | /var/lib/gems/1.9.1/gems/foreman-0.61.0/bin/foreman-runner: 37: .: .profile: not found

それで、フォアマンランナーを調べたところ、現在のディレクトリから .profile ファイルをロードしようとしているようです。.profile があるディレクトリから foreman を実行していますが、まだ見つかりません。

foreman-runner が -p パラメータで呼び出されているようです。次に、.profile ファイルが存在するかどうかをテストし、それからソースを取得しようとします。そのため、ファイルをチェックしますが、ソースにすることはできません。実際にソースを実行する行は次のとおりです。

. .profile

このファイルは #!/bin/sh で始まるので、 /bin/sh を実行して試してみました。コマンドラインから .profile を実行すると、確かに .profile が見つからないというエラーが表示されますよね?! 実際には次のように書かれています。

/bin/sh: 4: .: .profile: not found

その4はそこで何をしているのですか?.profile の何かが気に入らないだけかもしれません。

そこで、.profile を profile.bak と viola に移動しました。これで、フォアマンが実行されるようになりました。

于 2013-03-07T02:38:12.283 に答える