Red HatサーバーでRuby on Railsを使用しました。コントローラーファイルを生成しようとすると、このエラーが発生しました。
[ec2-user@ip-172-31-22-128 testApp4]$ Rails generate controller welcome
/home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:22:in `initialize': Permission denied @ rb_sysopen - /tmp/spring/fea371aaf9d69cfa58bd12f69b3f1bf6.pid (Errno::EACCES)
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:22:in `open'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:22:in `open'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:22:in `initialize'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:14:in `new'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:14:in `boot'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:43:in `block in boot_server'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:41:in `fork'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:41:in `boot_server'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:24:in `call'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/Rails.rb:23:in `call'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/client.rb:26:in `run'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/bin/spring:48:in `<top (required)>'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load'
from /home/ec2-user/.rvm/gems/Ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>'
from /home/ec2-user/testApp4/bin/spring:16:in `require'
from /home/ec2-user/testApp4/bin/spring:16:in `<top (required)>'
from bin/Rails:3:in `load'
from bin/Rails:3:in `<main>'
実行してその問題を解決しました
Sudo chmod -R 1777 /tmp
これが、私のような、Spring gemを非アクティブ化する必要のない他の人に役立つことを願っています
サーバーを起動するたびにpidを再書き込みするために所有権が必要です。
完全なローカルパスと須藤で実行する必要がありました
$ Sudo chmod -R 777/Users/MyName/Desktop/projects/my_project/tmp /
Pidファイル_lib/spring/env.rb
_を書き込もうとしているライブラリを見てみました。
問題の関数は、_XDG_RUNTIME_DIR
_が設定されていない限り、毎回同じ場所に一時ディレクトリを作成しようとします。
path = Pathname.new(File.join(ENV['XDG_RUNTIME_DIR'] || Dir.tmpdir, "spring"))
上記の変数を一意のディレクトリに設定すると、私にとってはうまくいきません。
_export XDG_RUNTIME_DIR=/tmp/`whoami`
_
Tmpフォルダーの書き込み許可へのアクセス権がありません。実行chmod 777 tmp/
または、
export XDG_RUNTIME_DIR=/run/user/${id -u}
このシステム変数を変更します。 id -u
は、UID [ユーザーID]を返します。これは、/run/user/
の下で書き込み/読み取りにアクセスできるディレクトリ名です。