2013-04-19 34 views
17

Tôi gặp vấn đề ở đây. Tôi đang làm việc với một dự án Rails 2.3 (làm việc trên máy chủ sản xuất thông qua ssh - không hỏi tại sao). Đây là Gemfile. Khi delay_jobs đang cố gắng bắt đầu, đầu ra cho biết tôi cần phải cài đặt gem của bundler. Vấn đề là gemdir là /var/lib/gems/1.8/ và tôi không có các đặc quyền viết cho thư mục đó. Tuy nhiên có một thư mục dưới ~/projects/shared/gems/ruby ​​/ 1.8/gems nơi tôi có thể viết.Chỉ định thư mục cài đặt đá quý

Làm cách nào để xác định đường dẫn cài đặt cho đá quý?

+0

không chắc chắn những gì bạn muốn, nhưng nếu tôi hiểu câu hỏi một cách chính xác, bạn có thể thực hiện cài đặt bó --path your_path_here –

+0

Vấn đề là cài đặt trình tạo gói. Nó là cần thiết cho các ứng dụng để làm việc, nhưng không được cài đặt bằng cách nào đó. – Almaron

+0

oh tôi thấy, bệnh cho bạn biết nếu tôi tìm thấy một số cách –

Trả lời

10

Bạn có thể thêm dòng sau vào config.ru bạn 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 

chí này cho ứng dụng giá của bạn biết nơi để tìm kiếm r đá quý.

Ngoài ra cấu hình máy chủ của bạn .bashrc:

export GEM_HOME="$HOME/projects/shared/gems/ruby/1.8/gems" 
export GEM_PATH="$GEM_HOME:/var/lib/ruby/gems/1.8" 
+2

Wtf là tệp ** config.ru **? .. – ulidtko

+0

config.ru là tệp cấu hình giá trong ứng dụng của bạn – dpaluy

+4

Tôi không có. Tôi cũng không có ứng dụng. Tôi đang cố gắng để cài đặt công cụ của người khác trong Ruby, và nó đòi hỏi một số đá quý. Tôi không thoải mái khi phải 'sudo'' gem install', và đó là lý do tại sao tôi đang tìm cách để tinh chỉnh đường dẫn đá quý. Câu trả lời của bạn không cho tôi những gì tôi đang tìm kiếm. – ulidtko

12

Biến môi trường GEM_HOME xác định vị trí cài đặt đá quý. Bạn cần đặt nó vào vị trí mong muốn. Lệnh này là hệ điều hành cụ thể.

Trong Windows nó là set

set GEM_HOME=[path]/projects/shared/gems/ruby/1.8/gems 

Linux sẽ export

export GEM_HOME=~/projects/shared/gems/ruby/1.8/gems 
+0

Đã làm điều đó và đã cài đặt đá quý để thành công. Nhưng lệnh gem list vẫn không hiển thị nó được cài đặt, và khi tôi cố gắng sử dụng lệnh bundle, nó sẽ là cần thiết để cài đặt gem. rvm gempath đầu ra tính năng đường dẫn đá quý chia sẻ một cách chính xác. – Almaron

+0

@Almaron thử chạy 'gem install bundler' để cài đặt đá quý bundler ở vị trí đó và cho phép sử dụng lệnh 'bundle' – IKA

+0

Tôi chạy 'gem install bundler' và nó nói rằng gem đã bị tấn công thành công.Nhưng khi tôi thử chạy 'gem list', nó không hiển thị gem được cài đặt. Lệnh bó cũng không hoạt động. – Almaron

1

Bạn cũng có thể chỉ cần đặt một bó cài đặt đường dẫn sử dụng một tập tin cấu hình Bundler. Tôi đã viết một post mà bạn có thể kiểm tra xem bạn có thấy nó hữu ích không.

13

Để cài đặt foo đá quý vào một thư mục chỉ định, chỉ cần sử dụng --install-dir tùy chọn, ví dụ:

$ gem install --install-dir /path/to/gems/folder foo 

Nó giúp khi:

  • ai có thể không sử dụng bundle install - ví dụ nếu ai muốn cài đặt đá quý bản thân, hoặc muốn cài đặt một viên ngọc (mà không được liệt kê trong Gemfile) vào thư mục
  • sudo gem install lệnh thất bại do thiếu write-quyền cho một đường dẫn cài đặt mặc định

Hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan