I have some trouble here. I am working with a Rails 2.3 project (working on the production server through ssh - don't ask why). Here is the Gemfile. When delayed_jobs is trying to start, the output says I need to install the bundler gem. The problem is that the gemdir is /var/lib/gems/1.8/ and I don't have the write priviliges for that directory. However there is a directory under ~/projects/shared/gems/ruby/1.8/gems where I can write.
How can I define the installation path for a gem?
When you use the --user-install option, RubyGems will install the gems to a directory inside your home directory, something like ~/. gem/ruby/1.9.
Use `gem install -v` You may already be familiar with gem install , but if you add the -v flag, you can specify the version of the gem to install. Using -v you can specify an exact version or use version comparators.
The install command installs local or remote gem into a gem repository. For gems with executables ruby installs a wrapper file into the executable directory by default.
To install foo gem to a specified folder, just use --install-dir
option, i.e.
$ gem install --install-dir /path/to/gems/folder foo
It helps when:
bundle install
- e.g. if one wants to install bundle gem itself, or wants to install a gem (which is not listed in Gemfile) into the bundle foldersudo gem install
command fails due to lack of write-permissions for a default installation pathHope that helps.
You can add the following to your config.ru file:
ENV['GEM_HOME']="#{ENV['HOME']}/projects/shared/gems/ruby/1.8/gems" ENV['GEM_PATH']="#{ENV['GEM_HOME']}:/var/lib/ruby/gems/1.8" require 'rubygems' Gem.clear_paths
This will tell your rack app where to look for gems.
Also configure your server .bashrc:
export GEM_HOME="$HOME/projects/shared/gems/ruby/1.8/gems" export GEM_PATH="$GEM_HOME:/var/lib/ruby/gems/1.8"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With