2011-01-18 23 views
3

私はRuby on Rails 3を「Snow Leopard」v1.6.5を実行しているMacOSで使用しています。'paperclip' gemとRuby on Rails 3の問題

私はそれを含めて、このように私のGemfileに「クリップ」宝石を使用したい:ターミナルで私はコマンドを実行し、その後

gem 'paperclip', "~> 2.3" 

sudo bundle install 

結果は:

... 
Using paperclip (2.3.8) 
Using thor (0.14.6) 
Using railties (3.0.1) 
... 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. 

これは、 'paperclip v2.3.8'がインストールされていることを意味します。

は、その後、私は私のRoRのアプリケーションを使用して、ウェブサイトでローカルにナビゲートする「システム環境設定/共有/パネル

から「アパッチ」を再起動し、私は何かが間違っていたことに気づきました。だから、「コンソールメッセージ」内のログを見に行く、私は以下のが見つかりました:

18/01/2011 16:50:52 org.apache.httpd[12972] [31mCould not find paperclip-2.3.8 in any of the sources[0m 

意味は何?どのように問題を解決する?


UPDATE(重要!!!)

私が正しくRVMと今、コマンドを実行すると、 'RVM' を再インストールし、私はそれが仕事を得る...しかし、 'クリップ' はありませんまだ:ログには私はまだ問題があります 'Could not find paperclip-2.3.8 in any of the sources'。

注意:今回はsudo bundle installの代わりにbundle installを使用しました。

端末で 'rails server'コマンドを実行すると、RoR3アプリケーションがURL「http://0.0.0.0:3000」の「paperclip」とうまく機能することがわかりました。 URL「http://project.local」の「Snow Leopard」からのApacheの基本インストールを使用したときは表示されません。なぜそれが起こりますか?


EDIT(回答に要求後)

rvm infoの出力である:

/usr/local/bin/rvm: line 73: /Users/<my_user_name>/.rvm/scripts/rvm: No such file or directory 
... 
<A lot of the same line> 
... 
/usr/local/bin/rvm: line 73: /Users/<my_user_name>/.rvm/scripts/rvm: No such file or directory 
/usr/local/bin/rvm: fork: Resource temporarily unavailable 
/usr/local/bin/rvm: fork: Resource temporarily unavailable 

P.S.私はgem 'paperclip', "~> 2.3"の代わりにgem 'paperclip', '2.3.8'を使用しようとしましたが、動作しません。

P.S. II:MacPortsも使用しており、Image-Magickをインストールしました。

+0

あなたはシステムルビーかrvmを使っていますか? – greggreg

+1

あなたの問題は解決しないかもしれませんが、ここで説明するように、バンドルインストールにsudoを追加するのは悪い習慣です。http://gembundler.com/man/bundle-install.1.html – icecream

+0

もしあなたがApacheを実行しているなら、あなたは何ですか?レールを走らせるの?あなたはペーパークリップ –

答えて

3

私が取得:「は/ usr/local/binに/ RVM:行73:/Users//.rvm/scripts/rvm

はまあ、それは面白いです。/usr/local/binにrvmが表示されないようにする必要があります。 rvm infoの出力を編集して質問に追加してください。

非常に特別なニーズがあり、複数のユーザーのためにホストを管理していると分かっていた場合は、sudoをrvmまたはrvmによって制御されたgemで使用しないでください。 sudoによって引き起こされた混在権限、またはrvmをインストールするときにroot権限で実行すると、あらゆる種類の奇妙な動作が発生します。

複数のrvmが混在している場合、最初の仕事はラットの巣をきれいにして物事を清潔で安定した状態に戻すことです。

次に、現在のバージョンのrvmをインストールして、Rubyをインストールできるようにします。また、rvm get headを使用してrvmを最新の状態に保つことが重要です。作者は週に数回それを更新し、更新は透明ですが、バグ修正と新しい機能を追加します。


編集:rvm infoは「bad brokage」を示します。

あなたの~/.rvmパス以外に、rvmがインストールされている場所を調べる必要があります。コマンドラインタイプで:

locate rvm | grep -v /Users 

は特に、我々はrvmシェルスクリプトのすべてのインスタンスを探しています。

/Applications/TextMate.app/Contents/SharedSupport/Bundles/Ruby on Rails.tmbundle/Support/lib/rvm 

お知らせそれは行末のちょうど単語「rvm」です。たとえば、これは私がRVMとTextMateの作業を支援するために設置されている第二版です。


EDIT: "私は設立:"

[OK]を、それは良いニュースです。 RVMは1つのディレクトリから作業するように設計されています。いくつかのコマンドを実行して、/usr/localパスをクリーンアップすることができます。

この次の部分では、ファイルとディレクトリを慎重に削除する必要があります。

sudo rm /_rvm 
sudo rm /usr/bin/rvm-install 
sudo rm /usr/local/bin/rvm-prompt 
sudo rm /usr/local/bin/rvm-shell 
sudo rm /usr/local/bin/rvmsudo 

sudo rm /usr/local/bin/rvm 

sudo rm -rf /usr/local/rvm/ 

あなたはより慎重になりたい場合は、Finderウィンドウを開くことができ、その後にCMD+SHFT+Gの操作を行います。あなたは、コマンドラインから作業を快適で、典型的なシステム管理を理解していれば、あなたは彼らがそうであるようにこれらを行うことができます「フォルダに移動」ダイアログを開きます。最初のPATHをコピーして上記のコマンドラインに貼り付け、returnキーを押します。 Finderはそのディレクトリにジャンプします。そのファイル(_rvm)を探します。ゴミ箱にドラッグします。システムはあなたのsudoパスワードの入力を求めます。コマンドごとに繰り返します。これはFinderが私の愚かな間違いからあなたを守るために知能の一部を使用することができるのでうまく動作します。 :-)

これらのものが削除された後、マシンは部分的にクリーンアップする必要があります。コマンドラインからecho $PATHを入力し、それらのパスがリストされているかどうか確認してください。その場合は、~/.bashrcまたは~/.bash_profileを開き、PATH環境変数が変更されている場所を見つけて、そのディレクトリパスを削除します。

次に、ls -al ~/.rvmと入力します。自宅に.rvmフォルダがある場合は、rm -rf ~/.rvmで削除できます。それに続いて、あなたのことを確認してください。bashrcまたは.bash_profileには、~/.rvmまたは/Users/your_account_name/.rvmを指していないrvmのものがあります。それらを削除し、端末ウィンドウを閉じてから、再度開きます。

この時点で、rvmはマシンから削除する必要があります。

ここは遅く、週末に病気になったので、明日はRVMとRubyを再インストールするか、自信を持って試してみてください。 NOT RVMをインストールするにはsudoを使用する必要があります。それはあなたのホームディレクトリに何の苦情もなくインストールする必要があります。

また、OSのバージョン、または実行しているXcodeのバージョンを確認していないと思います。ウェブサイトからお使いのOS用のdownload Apple's most recent version of XCodeをお勧めします。 DVDにSnow Leopardが付属しているバージョンにはバグがあり、できるだけ早くアップグレードする必要があります。開発者アカウントをお持ちでない場合は、アカウントを作成してください。彼らは無料です。

+0

私は質問を更新しました。それで、私は今何をしなければなりませんか? (助けにあなたの時間を費やすことに事前に感謝します) – user502052

+0

多分私は理解しませんでした。私が 'locate rvm | grep -v /ユーザーのコマンド「取得」警告:ロケートデータベース(/var/db/locate.database)は存在しません。次のコマンドを実行し、データベースを作成するには :データベースが生成するためにいくつかの時間がかかることがありますのでご注意ください/System/Library/LaunchDaemons/com.apple.locate.plist -w はsudo launchctlをロードします。 データベースが作成されると、このメッセージは表示されなくなります。 – user502052

+0

ええと、それを実行!それは少し時間がかかりますが、それは非常に便利です。 'locate'はドライブ上のファイルの場所を定期的に保存しますので、すばやく検索することができます。 'find'を使うよりもずっと速いです。 –

関連する問題