2012-06-02 24 views
10

を実行中:私は宝石のコマンドを入力するたびに、私はこのエラーを取得するように</p> <pre><code>gem "tilt" </code></pre> <p>または</p> <pre><code>gem "mysql" </code></pre> <p>として、宝石、未知のコマンド

While executing gem ... <RuntimeError> 
Unknown command tilt 

私はgem listを実行すると、 tiltとmysqlの両方がリストに表示され、インストールされます。実際、このエラーはリストのすべての項目で発生します。これを引き起こす原因は何ですか?

答えて

21

gemはあなたには嘘ではありませんが、有効ではありませんgemコマンド。

おそらくコマンドラインをBundlerと混同していると思いますか?例えば、Gemfileに

gem "tilt" 

を追加しbundle installを実行すると、傾きをインストールします。しかし、Bundlerは独自の構文を使用しており、シェルスクリプトではありません。 gemバイナリを使用して傾きをインストールするには、直接、あなたは何をする必要があるだろう:gem helpを実行

gem install tilt 

はあなたにgemのコマンドライン引数のリストが表示されます。

+0

私はmysqlを特定のバージョンに設定しようとしているからです:gem 'mysql2'、 '0.2.7'。残念ながら、このコマンドを使用すると、同じエラーが発生します。どんな考え? – nullnullnull

+0

私が言ったように、それは有効なコマンドではないからです。あなたが私の質問のように 'gem'のヘルプ文書を読んで、特定のものをインストールするための' gem help install'を読んでいれば、特定のバージョンをインストールするための正しい引数を見つけるでしょう: 'gem install mysql2 --version 0.2 .7'。 –

+0

チップのおかげで、アンドリュー。私は別のstackoverflowページから元のコマンドを取得し、私はそれが私のシステム上で動作していない理由を把握できませんでした。私はまだ分かりませんが、あなたの命令はうまくいきます。おそらくそれはOSと関係がありますか? – nullnullnull

2

あなたはGemfile構文を使用しており、コマンドライン構文を使用する必要があります。これを試してみる:

gem install mysql2 -v 0.2.7 
+0

それはまさにそれです。ありがとう、デイビッド! – nullnullnull

1

このエラーが表示された場合、

をあなたの構文は詳細なガイドラインについては、正確であるあなたがルビーのために許容可能な構文を表示するには

gem help

を入力することができていることを確認します"/ライブラリの書き込み権限がありません"

いつでも特権を昇格するためにsudoを追加できますs。

例えば、 sudo gem install <gemname>

コードの前にsudoを使用すると、(コンピュータのパスワードを入力した後に)管理者アクセス権が付与されます。

その後、bundle installを実行してgemをインストールする必要があります。

関連する問題

 関連する問題