Đá quý của tôi ở đâu?
Bạn có thể tìm thấy nơi lưu trữ đá quý của mình bằng gem environment
lệnh. Ví dụ:
chris@chris-laptop:~$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.2
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/chris/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
Nếu bạn nhìn vào phần "GEM PATHS:", bạn có thể thấy rằng đá quý có thể được lưu trữ ở hai nơi trên máy tính xách tay của tôi: /usr/lib/ruby/gems/1.8
hoặc trong .gem
thư mục trong nhà của tôi.
Bạn cũng có thể thấy rằng các tệp thực thi được lưu trữ trong HƯỚNG DẪN THỰC HIỆN, trong trường hợp này là /usr/bin
.
Bởi vì /usr/bin
là con đường của tôi này cho phép tôi chạy cap
, merb
, rails
, vv
Cập nhật PATH của bạn
Nếu vì một lý do nào đó, HƯỚNG DẪN THỰC HIỆN của bạn không có trên đường dẫn của bạn (ví dụ: nếu nó là /var/lib/gems/1.8/bin) thì bạn cần cập nhật biến PATH của mình.
Giả sử rằng bạn đang sử dụng bash shell. Bạn có thể thực hiện việc này nhanh chóng cho phiên hiện tại bằng cách nhập nội dung sau vào dấu nhắc trình bao; giả sử rằng bạn muốn thêm /var/lib/gems/1.8/bin
vào đường dẫn:
export PATH=$PATH:/var/lib/gems/1.8/bin
và nhấn quay lại. Điều đó nối thư mục mới vào cuối đường dẫn hiện tại. Lưu ý dấu hai chấm giữa $PATH
và/var/lib/gems/1.8/bin
Để đặt giá trị cho tất cả các phiên, bạn sẽ cần phải chỉnh sửa tệp .profile
hoặc của mình .bashrc
và thêm cùng một dòng vào cuối tệp. Tôi thường chỉnh sửa .bashrc
tệp của mình không vì lý do gì khác ngoài những gì tôi luôn làm. Khi hoàn tất, hãy lưu tệp và sau đó làm mới môi trường của bạn bằng cách nhập:
bash
tại dấu nhắc shell. Điều đó sẽ gây ra .bashrc
để được đọc lại.
Tại bất kỳ thời điểm nào, bạn có thể kiểm tra giá trị hiện tại $PATH
bằng cách nhập
echo $PATH
tại dấu nhắc shell.
Đây là mẫu từ một trong các máy chủ của riêng tôi, trong đó tên người dùng của tôi là "chris" và tên máy là "chris-laptop":
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
Đá quý của tôi sẽ không tải!
" Ruby gems sẽ không tải ngay cả khi đã được cài đặt " nêu bật một vấn đề phổ biến khi sử dụng nhiều phiên bản Ruby khác nhau; Đôi khi môi trường Đá quý và đường dẫn Đá quý không đồng bộ:
rb(main):003:0> Gem.path
=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit
Mọi quy trình Ruby ở đây đều chỉ tìm kiếm ở một nơi cho các Đá quý của nó.
:~/$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
- EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
- /home/mark/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
Xem xét kỹ đầu ra của môi trường đá quý:
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
Đây không phải là đường dẫn giống như được trả về bởi Gem.path:
["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
Thật khó để nói chính xác điều gì đã gây ra lib/ruby
sự thay đổi lib/ruby1.9
nhưng rất có thể nhà phát triển đã làm việc với nhiều phiên bản Ruby. Một nhanh chóng mv
hoặc ln
sẽ giải quyết vấn đề.
Nếu bạn cần làm việc với nhiều phiên bản Ruby thì bạn thực sự nên sử dụng rvm .