2011-02-08 1 views
2

を否定しました。 コマンドラインから正しく実行するとうまく動作し、ルビーからうまくいかない理由はわかりません。 私はRubyの中から "ls"のような他のコマンドを呼び出すことができます。ルビー - 許可は、私がRubyスクリプトからのgccを実行しようとしていますし、それは私の許可が拒否されたというエラーを与える

私はまた、777にはgccのファイルのアクセス権を設定するだけでなく、そのファイルの所有者、私のユーザー・アカウントを作ってみました。私は誰もがこの上のアイデアを持っている願っています

[email protected] ~ 
$ gcc 
gcc: no input files 

[email protected] ~ 
$ irb 
irb(main):001:0> `gcc` 
Errno::EACCES: Permission denied - gcc 
     from (irb):1:in ``' 
     from (irb):1 
irb(main):002:0> `ls` 
=> "" 

は、ここに私のシェル出力です。

+0

ruby​​はcygwin以外のプログラムですか?またはcygwinの一部としてインストールしましたか? – dotminic

+0

ねえ、ルビーはcygwin以外です。 cygwin版を試してみる必要があります。 – devboy

+1

この場合、RubyがWindowsパスを使用しており、cygwinパスがposixであるため、おそらくパスの問題です。それをチェックしたいかもしれません。 他にもできること:aclの権利。 cygwinのいくつかのCや他のbinやスクリプトからgccを呼び出しても、同じエラーが発生していないかどうか確認してみましたか? – dotminic

答えて

0

私の経験から、彼らの両方が動作する(とコマンドラインでの作業だけでなく、彼らの両方として)必要があるとして、あなたがWindows上でRubyで使用しているもののパス区切り問題ではありません。 2つの異なる環境(ネイティブWindowsとCygwin)で作業する場合、必ずしもお互いに互換性があるわけではないので、実行しているバージョンを知っていることを確認するとよいでしょう。

Pikも(RVM for Windowsのように)RubyツールチェーンのネイティブWindows版を実行するのに問題はなく、2つの環境を管理するよりもずっと簡単です。

関連する問題