Red Hat EL6 서버 (프로덕션 용)가 있습니다. 나는 소스에서 루비와 루비 젬을 설치했다.Ruby가 하루에 한 번 손상됩니다.
# uname -a
Linux servername 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
# ruby -v
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux]
내 개발 컴퓨터에서이 프로덕션 서버로 배포 할 수 있습니다. 모든 것이 잘 작동합니다. 나는 그 다음날 승객 에러 페이지를 얻는다. 나는 그 실수가 무엇인지 잊었고, 그것은 지난 주에 일어난 일입니다. 하지만 난 심지어 명령을 실행할 수 없습니다 ruby -v
.
나는 무슨 일이 일어 났는지 조사하려고하는데, 나는 오류의 원인을 찾을 수 없었다. 그래서 Ruby와 RubyGems (2.0.3)를 다시 컴파일합니다. 모든 것이 잘 돌아갑니다.
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1070:in `require': closed stream (IOError)
from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1070:in `<module:Gem>'
from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:114:in `<top (required)>'
from <internal:gem_prelude>:1:in `require'
from <internal:gem_prelude>:1:in `<compiled>'
이 시간 나는 그런 ruby -v
로 루비 명령을 실행할 수 있습니다하지만 난 승객 페이지에있어 동일한 오류 때문에 내가 gem -v
를 실행할 수 없습니다 : 나는 월요일에 와서, 승객 오류 페이지를 얻을 수 .
그래서 나는 rubygems.rb 파일로 이동
require "rubygems/specification"
그래서 나는 폴더 젬로 이동이 ... 라인 1070 오류를 생성하는 코드 줄을 볼 수 있으며이 하나 specification.rb 파일입니다.
이 좋아, 그래서 다시 젬을 설치하려고하고 ruby setup.rb
을 실행하고이 내가 가지고 무엇 UPDATE ...
# ruby setup.rb
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1070:in `require': closed stream (IOError)
from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1070:in `<module:Gem>'
from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:114:in `<top (required)>'
from <internal:gem_prelude>:1:in `require'
from <internal:gem_prelude>:1:in `<compiled>'
사람이 서버에 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까? 나는 루비 젬을 다시 컴파일하려고 노력할 것이다. 아마 오류를 해결할 것이지만 나는 내일 또 다른 오류가 발생할 것이라고 생각합니다.
다시 같은 일을하고, 아무 것도 변경하지 않고는 다른 결과를하거나 문제를 해결하기 어렵다. http://superuser.com에서 질문하는 것이 좋습니다. –
감사! 지금 Ruby 2.0.0p195를 설치 중이며, 문제가 사라지면 확인할 수 있습니다. 그렇지 않다면, 아마도 superuser.com에서이 질문을 할 것입니다. – leonel
저는 이것이 루비 문제라는 것을 진지하게 생각합니다. Ruby 코드를 실행 한 후에가 아니라 주기적으로 발생하는 것처럼 들리므로 시스템 작업이 디스크 나 장치 또는 프로세스를 망가 뜨리고 권한이 변경되어 상황이 붕괴 될 수 있습니다. –