I downgraded ruby from 2.4.0 to 2.3.3 because of incompability with JSON.
Server didn't work, though. I checked my log and found out that it is still trying to execute last version(2.4.0)'s ruby file.
I removed files of ruby last version when I downgraded.
How can I solve this problem?
/.rvm/gems ls
cache
ruby-2.3.3
ruby-2.3.3#global
ruby-2.4.0
ruby-2.4.0#global
/.rvm/gems/ruby-2.4.0 ls
gems
/.rvm/gems/ruby-2.3.3 ls
bin
cache
environment
gems
wrappers
build_info
doc
extensions
specifications
error.log
App 20642 stdout:
App 20642 stderr: *** ERROR ***: Cannot execute /home/ec2-user/.rvm/gems/ruby-2.4.0/wrappers/ruby: No such file or
directory (2)
[ 2017-02-20 23:32:45.2704 5334/7fa2e3dde700 age/Cor/App/Implementation.cpp:230 ]: Cannot render an error page:
Cannot open
'/home/ec2-user/.rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/resources/templates/error_layout.css'
for reading: No such file or directory (errno=2)
in 'void Passenger::ApplicationPool2::processAndLogNewSpawnException(Passenger::SpawnException&,
const Passenger::ApplicationPool2::Options&, const ConfigPtr&)'
(Implementation.cpp:206)
in 'void Passenger::SpawningKit::SmartSpawner::throwPreloaderSpawnException(const
string&, Passenger::SpawnException::ErrorKind,
Passenger::SpawningKit::BackgroundIOCapturerPtr&, const Options&,
const DebugDirPtr&)' (SmartSpawner.h:144)
in 'std::string Passenger::SpawningKit::SmartSpawner::negotiatePreloaderStartup(Passenger::SpawningKit::SmartSpawner::StartupDetails&)'
(SmartSpawner.h:617)
in 'void Passenger::SpawningKit::SmartSpawner::startPreloader()' (SmartSpawner.h:273)
in 'virtual Passenger::SpawningKit::Result Passenger::SpawningKit::SmartSpawner::spawn(const Options&)'
(SmartSpawner.h:790)
in 'void Passenger::ApplicationPool2::Group::spawnThreadRealMain(const
SpawnerPtr&, const Passenger::ApplicationPool2::Options&, unsigned
int)' (SpawningAndRestarting.cpp:95)
[ 2017-02-20 23:32:45.2704 5334/7fa2e3dde700 age/Cor/App/Implementation.cpp:304 ]: Could not spawn process for
application /home/ec2-user/Karolline.github.io: An error occurred
while starting up the preloader. It exited before signalling
successful startup back to Phusion Passenger.
Error ID: 34b5bb42
Message from application: An error occurred while starting up the preloader. It exited before signalling successful startup back to
Phusion Passenger. Please read this
article for more information about this problem.
Raw process output:
* ERROR *: Cannot execute /home/ec2-user/.rvm/gems/ruby-2.4.0/wrappers/ruby: No such file or
directory (2)
[ 2017-02-20 23:32:45.2734 5334/7fa30287a700 age/Cor/Con/CheckoutSession.cpp:285 ]: [Client 1-47] Cannot checkout
session because a spawning error occurred. The identifier of the error
is 34b5bb42. Please see earlier logs for details about the error.
[ 2017-02-20 23:32:45.2734 5334/7fa30287a700 age/Cor/Con/CheckoutSession.cpp:369 ]: [Client 1-47] Cannot render an
error page: Cannot open
'/home/ec2-user/.rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/resources/templates/error_layout.css'
for reading: No such file or directory (errno=2)
in 'void Passenger::Core::Controller::endRequestWithErrorResponse(Passenger::Core::Client**,
Passenger::ServerKit::HttpServer::Request**, const Passenger::StaticString&,
const Passenger::SpawnException*)' (CheckoutSession.cpp:350)
in 'void Passenger::Core::Controller::writeSpawnExceptionErrorResponse(Passenger::Core::Client*,
Passenger::ServerKit::HttpServer::Request*, const
boost::shared_ptr&)'
(CheckoutSession.cpp:282)
in 'void Passenger::Core::Controller::reportSessionCheckoutError(Passenger::Core::Client*,
Passenger::ServerKit::HttpServer::Request*, const ExceptionPtr&)'
(CheckoutSession.cpp:235)
in 'void Passenger::Core::Controller::sessionCheckedOutFromEventLoopThread(Passenger::Core::Client*,
Passenger::ServerKit::HttpServer::Request*, const AbstractSessionPtr&, const
ExceptionPtr&)' (CheckoutSession.cpp:148)
in 'void Passenger::Core::Controller::sessionCheckedOutFromAnotherThread(Passenger::Core::Client*,
Passenger::ServerKit::HttpServer::Request*,
Passenger::ApplicationPool2::AbstractSessionPtr,
Passenger::ApplicationPool2::ExceptionPtr)' (CheckoutSession.cpp:114)
-- Client 1-47
gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.6.10
RUBY VERSION: 2.3.3 (2016-11-21 patchlevel 222) [x86_64-linux]
INSTALLATION DIRECTORY: /home/ec2-user/.rvm/gems/ruby-2.3.3
USER INSTALLATION DIRECTORY: /home/ec2-user/.gem/ruby/2.3.0
RUBY EXECUTABLE: /home/ec2-user/.rvm/rubies/ruby-2.3.3/bin/ruby
EXECUTABLE DIRECTORY: /home/ec2-user/.rvm/gems/ruby-2.3.3/bin
SPEC CACHE DIRECTORY: /home/ec2-user/.gem/specs
SYSTEM CONFIGURATION DIRECTORY: /home/ec2-user/.rvm/rubies/ruby-2.3.3/etc
RUBYGEMS PLATFORMS:
ruby
x86_64-linux
GEM PATHS:
/home/ec2-user/.rvm/gems/ruby-2.3.3
/home/ec2-user/.rvm/gems/ruby-2.3.3#global
GEM CONFIGURATION:
:update_sources => true
:verbose => true
:backtrace => false
:bulk_threshold => 1000
REMOTE SOURCES:
https://rubygems.org/
SHELL PATH:
/home/ec2-user/.rvm/gems/ruby-2.3.3/bin
/home/ec2-user/.rvm/gems/ruby-2.3.3#global/bin
/home/ec2-user/.rvm/rubies/ruby-2.3.3/bin
/usr/local/bin
/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/sbin
/opt/aws/bin
/home/ec2-user/.rvm/bin
/home/ec2-user/.local/bin
/home/ec2-user/bin
I reinstalled ruby 2.4.0 using following codes
rvm install 2.4.0
rvm use 2.4.0
Then I selected ruby 2.3.3 by
rvm use 2.3.3
Related
I installed passenger and nginx as the replacement of gitlab built-in nginx and puma service. In nginx's configuration file gitlab.conf, I had set variable passenger_ruby to /opt/gitlab/embedded/bin/ruby. but when nginx service is up, passenger cannot spawn ruby application correctly. In nginx's error.log, it reports like below
App 22480 output: /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'
[ E 2023-02-09 14:38:56.3245 21868/Tw age/Cor/App/Implementation.cpp:221 ]: Could not
spawn process for application /opt/gitlab/embedded/service/gitlab-rails:
The application encountered the following error:
Could not find graphql-docs-1.6.0, lefthook-0.8.0, rubocop-0.93.1, solargraph-0.44.3,
letter_opener_web-2.0.0, better_errors-2.9.1, thin-1.8.0, sprite-factory-1.7.1,
deprecation_toolkit-1.5.1, bullet-6.1.3, pry-byebug-3.9.0, pry-rails-0.3.9, pry-shell-0.5.0,
awesome_print-1.9.2, database_cleaner-1.7.0, factory_bot_rails-6.2.0, rspec-rails-5.0.1,
It's seems like passenger cannot find gems which were relied by gitlab-rails, gems' location can be found by command gem environment:
/opt/gitlab/embedded/bin/gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 3.1.4
- RUBY VERSION: 2.7.5 (2021-11-24 patchlevel 203) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/gitlab/embedded/lib/ruby/gems/2.7.0
- USER INSTALLATION DIRECTORY: /root/.gem/ruby/2.7.0
- RUBY EXECUTABLE: /opt/gitlab/embedded/bin/ruby
- GIT EXECUTABLE:
- EXECUTABLE DIRECTORY: /opt/gitlab/embedded/bin
- SPEC CACHE DIRECTORY: /root/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /opt/gitlab/embedded/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/gitlab/embedded/lib/ruby/gems/2.7.0 # here
which configuration I need to change to fix this problem?
I tried to change passenger's default confiugration file locations.ini,which was located by passenger-config --root,changed from
ruby_libdir=/usr/share/ruby/vendor_ruby
to
ruby_libdir=/opt/gitlab/embedded/lib/ruby/gems/2.7.0
but it's not work.
Running gem install from shell script giving error even though I ruby version2.3.0 installed on my machine.
I am trying to install a gem from sh file. sh file code is as below:
cat > /tmp/install_bandshell.sh <<EOF
#!/bin/sh -e
cd /tmp
git clone git://github.com/concerto/bandshell.git
cd bandshell
gem build bandshell.gemspec
gem install *.gem
cd /
rm -rf /tmp/bandshell
EOF
chmod +x /tmp/install_bandshell.sh
/tmp/install_bandshell.sh
But when I run this sh file get error WARNING: You don't have /root/.gem/ruby/1.9.1/bin in your PATH, gem executables will not run. ERROR: Error installing bandshell-1.7.2.gem: rack requires Ruby version >= 2.2.2.
Even I install 2.3.0 gem env output
RubyGems Environment:
- RUBYGEMS VERSION: 2.5.1
- RUBY VERSION: 2.3.0 (2015-12-25 patchlevel 0) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.3.0/gems/
- USER INSTALLATION DIRECTORY: /root/.gem/ruby/2.3.0
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/lib/ruby/gems/2.3.0/gems/bin
- SPEC CACHE DIRECTORY: /root/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /usr/local/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/local/lib/ruby/gems/2.3.0/gems/
- /root/.gem/ruby/2.3.0
- /usr/local/lib/ruby/gems/2.3.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/local/lib/ruby/gems/2.3.0/gems
From terminal, if I install this gem it works but from shell script giving above error. Please help me with this. Platform is Debian Wheezy.
I'm answering your primary question only, regarding the message. (Frankly, I don't know what's going on with your sh file, so I'm not going to address whatever other problems it causes.)
The message is a warning to you that any executables that the gem installs are not in your path. If the gem does not install any executables, then you can safely ignore the message. If it does (or you are simply unsure), then modify the path accordingly. How you do that depends on what shell you happen to be using. Since you have tagged the question with 'linux', I will guess that you are using bash; if so, add to either your ~/.profile or to ~/.bash_profile an entry similar to:
PATH="$PATH:/root/.gem/ruby/1.9.1/bin"
Now, at this point, I have to wonder - are you using ruby-1.9? You know that ruby 1.9 is obsolete, right? Actually, considering that you seem to be using Ruby 2.3.0, that's not likely. What I would suggest is to (at least temporarily) adjust your PATH as above to avoid the warning. I suspect you will still have problems, but then you can ask a new question without the WARNING that you have cited.
One last point, ignore suggestions that you should change your shebang to be other than "#!/bin/sh"; that's very unlikely to help.
Answering the WARNING: You don't have /root/.gem/ruby/1.9.1/bin in your PATH, gem executables will not run. problem...
Try add this line on your ~/.bashrc or ~/.zshrc:
export PATH="/root/.gem/ruby/1.9.1/bin:$PATH"
This has been driving me nuts - I've looked everywhere for a solution to this over the last three days... but nothing's worked, so far.
On Monday, I was getting this error when trying to install watir:
C:\Users\dan>gem install watir
ERROR: Could not find a valid gem 'watir' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - timed out
(https://api.rubygems.org/specs.4.8.gz)
So figured it was a firewall / proxy error. To try and get around it, I used the --http-proxy option:
C:\Ruby24-x64\bin>gem install watir --http-proxy http://my.awesome.proxy:port
ERROR: While executing gem ... (Net::HTTPServerException)
407 "Proxy Authentication Required"
So then I tried running it with my username and password defined, but I've read it won't work if my password contains a special character (which it does):
C:\Ruby24-x64\bin>gem install --http-proxy http://myusername:mypassword#my.awesome.proxy:port watir
ERROR: While executing gem ... (Net::HTTPServerException)
407 "Proxy Authentication Required"
So then I tried set the proxy, username and password for HTTP and HTTPS using the set option like so:
set HTTP_PROXY=my.awesome.proxy:port
set HTTP_PROXY_USER=myusername
set HTTP_PROXY_PASS=mypassword
set HTTPS_PROXY=my.awesome.proxy:port
set HTTPS_PROXY_USER=myusername
set HTTPS_PROXY_PASS=mypassword
...but I'm still getting the 407 error. Any ideas?
I'm on Windows 10, my gem environment details are below:
C:\Ruby24-x64\bin>gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.2
- RUBY VERSION: 2.4.2 (2017-09-14 patchlevel 198) [x64-mingw32]
- INSTALLATION DIRECTORY: C:/Ruby24-x64/lib/ruby/gems/2.4.0
- USER INSTALLATION DIRECTORY: C:/Users/dan/.gem/ruby/2.4.0
- RUBY EXECUTABLE: C:/Ruby24-x64/bin/ruby.exe
- EXECUTABLE DIRECTORY: C:/Ruby24-x64/bin
- SPEC CACHE DIRECTORY: C:/Users/dan/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: C:/ProgramData
- RUBYGEMS PLATFORMS:
- ruby
- x64-mingw32
- GEM PATHS:
- C:/Ruby24-x64/lib/ruby/gems/2.4.0
- C:/Users/dan/.gem/ruby/2.4.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
#Beartech:
C:\Ruby24-x64>ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.2l 25 May 2017
MINGW64 ~
$ openssl s_client -host rubygems.org -port 443
connect: Connection timed out
connect:errno=116
Finally solved it! A colleague had similar proxy issues with Atom's plugin list so pointed me in the right direction.
The command is:
gem install --http-proxy http://{domain}%5C{username}:{password}#{proxy.address}:{port}/ watir
I am using:
TextMate: version 2.0-alpha.9511
rvm: 1.25.15 (stable)
ruby: version 2.1.0p0
oh-my-zshell: 5.0.2
Mac OS X: 10.9.1 (Mavericks)
I have rvm and textmate set up to use
TM_RUBY=/Users/<myuser>/.rvm/bin/rvm-auto-ruby
The problem:
when I try to run my rake tasks using the rake bundle in textmate, I get some errors about the file not loading: "cannot load such file -- rubocop/rake_task"
The clue:
I changed my rakefile so that it simply reports the "gem env" for the default task.
When I then run the task, I see a completely different gem environment, than I would see if I used rake at the terminal command line.
RakeMate v2.0.0
>>> /Users/Johno/Projects/puzzles/triangle/Rakefile
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.3
- RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [universal.x86_64-darwin13]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-13
- GEM PATHS:
- /Library/Ruby/Gems/2.0.0
- /Users/Johno/.gem/ruby/2.0.0
- /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
Whereas I see this when running
$ gem env
in my terminal, for my project
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.0.rc.1
- RUBY VERSION: 2.1.0 (2013-12-25 patchlevel 0) [x86_64-darwin12.0]
- INSTALLATION DIRECTORY: /Users/Johno/.rvm/gems/ruby-2.1.0#puzzles
- RUBY EXECUTABLE: /Users/Johno/.rvm/rubies/ruby-2.1.0/bin/ruby
- EXECUTABLE DIRECTORY: /Users/Johno/.rvm/gems/ruby-2.1.0#puzzles/bin
- SPEC CACHE DIRECTORY: /Users/Johno/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-12
- GEM PATHS:
- /Users/Johno/.rvm/gems/ruby-2.1.0#puzzles
- /Users/Johno/.rvm/gems/ruby-2.1.0#global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/Johno/.rvm/gems/ruby-2.1.0#puzzles/bin
- /Users/Johno/.rvm/gems/ruby-2.1.0#global/bin
- /Users/Johno/.rvm/rubies/ruby-2.1.0/bin
- /Users/Johno/.rvm/bin
- /usr/local/bin
- /Users/Johno/Projects/Scripts/Ruby
- /Users/Johno/Projects/Scripts/bash
- /Users/Johno/Projects/Scripts/perl
- /Users/Johno/Projects/Scripts/Geek Tool
- /usr/bin
- /bin
I suspect that textmate is trying to use the "wrong" rake, or failing to set up the environment properly.
I think the problem may lie in the ruby bundle command from text mate:
#!/usr/bin/env bash
export RUBYLIB="$TM_BUNDLE_SUPPORT/RakeMate${RUBYLIB:+:$RUBYLIB}"
export TM_RAKE=$(which "${TM_RAKE:-rake}")
"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby" -- "$TM_BUNDLE_SUPPORT/RakeMate/rake_mate.rb"
It appears to be using a specific ruby (1.8) rather than the rvm project specific ruby
Does anyone have a suggestion as to how to resolve this?
Thank you,
John Schank
Followed the advice to set TM_RAKE and it didn't help.
I tried both the suggested setting, and using the results of which rake
/Users/Johno/.rvm/gems/ruby-2.1.0#puzzles/bin/rake
When using my TM_RAKE, is get a different error
RakeMate v2.0.0
>>> /Users/Johno/Projects/puzzles/triangle/Rakefile
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:296:in `to_specs': Could not find 'rake' (>= 0) among 5 total gem(s) (Gem::LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:307:in `to_spec'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:47:in `gem'
from /Users/Johno/.rvm/gems/ruby-2.1.0#puzzles/bin/rake:22:in `<main>'
This happens to be the same error I get when I try to use the rubocop.tmbundle
It still looks to me like the gem environment is not being passed to the child process.
I solved my own problem.
Here are the details for anyone else who has this problem...
First, the answer in this question TextMate, rvm and TM_RUBY
is almost perfect.
I had to create a textmate_ruby, and a textmate_rake script, and reference them in the variables in text mate: TM_RUBY, and TM_RAKE.
Second, since I'm using zsh, I had to change the shebang line in the textmate_xxx scripts to use zsh.
Finally, the key that helped me arrive at the correct solution is that I modified my project rakefile to :
task :default do
system "gem env"
system "ruby --version"
system "pwd"
system "printenv"
end
Then when I ran the rake task in textmate, it would dump the current values of my environment, ruby version, current directory, and gem environment. This really helped to see what was going on.
It seems that TextMate is still using your system rake instead of rvm's.
Try to set TM_RAKE in addition to TM_RUBY:
TM_RAKE=$HOME/.rvm/bin/rake
This also applies to rbenv, where you would set TM_RAKE to $HOME/.rbenv/shims/rake.
I am brand new to Ruby as of today. I installed IronRuby as I am a .NET developer and it seems to have a lighter footprint for Windows 7.
Things have been proceeding well, until I needed to install a Gem to parse HTML. I am issuing the following command:
igem install rokogiri
and receiving the following error:
ERROR: While executing gem ... (NoMethodError)
undefined method `set_params' for #<OpenSSL::SSL::SSLContext:0x00001ba>
Running igem env yields:
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i386-mswin32]
- INSTALLATION DIRECTORY: C:/Program Files (x86)/IronRuby 1.1/Lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: "C:/Program Files (x86)/IronRuby 1.1/bin/ir.exe"
- EXECUTABLE DIRECTORY: C:/Program Files (x86)/IronRuby 1.1/bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-dotnet-4.0
- GEM PATHS:
- C:/Program Files (x86)/IronRuby 1.1/Lib/ruby/gems/1.9.1
- P:/.gem/ironruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
My searches on Google have been fruitless. Does anyone have any suggestions?
Thanks!
The error happens in using OpenSSL library.
So this problem can be solved to use ruby standard OpenSSL library, not the library of IronRuby.
I think you can install the library in the following procedure.
Invalidate the function of SSL verifying once.
Add the next line to ~/.gemrc(%HOME%\.gemrc) file.
(if it doesn't exit, create)
:ssl_verify_mode: 0
In this, 'igem' is usabled.
But this state isn't recommend.
Install OpenSSL library, like this :
> igem install rubysl-openssl
And, restore ~/.gemrc file.
'igem' remains to be usabled.
For anyone else that comes across this a solution that worked for me was to use the standard Ruby gem command and set the install directory to the IronRuby gem location.
gem install --install-dir "c:/Program Files (x86)/IronRuby 1.1/lib/ironruby/gems/1.8" -V json_pure
igem does look like it's a very basic Ruby script that wraps up the Ruby gem command. The OpenSSL error seems to be a bit of a red herring and is probably because the default gem repository URL now redirects to a different location and the igem script doesn't deal with that.