Tôi đang điều tra ứng dụng đường ray - máy chủ prod có hai phiên bản của một gem cụ thể được cài đặt, làm cách nào để biết phiên bản ứng dụng nào đang sử dụng?Làm cách nào để biết phiên bản ứng dụng đường ray nào đang sử dụng
Trả lời
Trong Rails 3 và Rails 4, sử dụng bundle show
Trong Rails 2, rake gems
sẽ in ra những gì đá quý, phụ thuộc, và các phiên bản được cài đặt, đông lạnh vv
Điều này sẽ chỉ hoạt động nếu đá quý được chỉ định trong tệp environment.rb. Nếu nhà phát triển chỉ yêu cầu nó ở đâu đó, đá quý sẽ không hoạt động. –
(Hoặc trong một trong các tệp cấu hình/môi trường/*, tùy thuộc vào RAILS_ENV của bạn.) –
Nếu bạn muốn lọc danh sách, hãy thực hiện 'bundle show | grep gem_name', ví dụ cho la bàn: 'bundle show | grep compass' –
Thử sử dụng script/about
. config/environment.rb
của bạn cũng có thông tin về nó.
Trong số config/environment.rb
bạn có thể chỉ định phiên bản của ứng dụng gem
cụ thể sẽ sử dụng. Tuy nhiên nếu bạn có nhiều phiên bản của gem
được cài đặt trên máy của mình và bạn không chỉ định phiên bản, phiên bản mới nhất của đá quý đó sẽ được ứng dụng sử dụng.
Có lẽ là một cách trực tiếp hơn để tìm thấy điều này, nhưng nếu bạn tải lên một giao diện điều khiển và yêu cầu một phiên bản cụ thể như sau:
gem 'RedCloth', '3.0.4'
Nó sẽ cho bạn biết những gì phiên bản đã được kích hoạt:
=> Gem::LoadError: can't activate RedCloth (= 3.0.4, runtime) for [], already activated RedCloth-4.2.2
script/about
sẽ cho bạn biết bạn đang sử dụng phiên bản nào của Rails và Đá quý cốt lõi mà không sử dụng bất kỳ thứ gì khác. Lý tưởng nhất, nếu bạn nhìn vào config/environment.rb
, cần có một phần đó trông như thế này:
# Specify gems that this application depends on and have them installed with rake gems:install
# config.gem "bj"
# config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
# config.gem "sqlite3-ruby", :lib => "sqlite3"
# config.gem "aws-s3", :lib => "aws/s3"
Với bất kỳ may mắn, tác giả của ứng dụng sẽ đã bao gồm bất kỳ đá quý theo yêu cầu và các phiên bản đó. Tuy nhiên, các phiên bản là tùy chọn trong tập tin này, và cuối cùng không có gì ngăn cản một nhà phát triển thiếu kinh nghiệm chỉ tát một số require 'rubygems'; require 'some_random_thing'
ở đầu bất kỳ tệp nào đã cho.
Nếu bạn thấy đá quý là bắt buộc, nhưng không có phiên bản nào được chỉ định, bạn có thể nhập gem list
để xem tất cả các phiên bản của tất cả các đá quý trên hệ thống. Theo mặc định, nó sẽ sử dụng phiên bản mới nhất hiện có.
Kịch bản của bạn có nói về đá quý không? Tôi chỉ nói với tôi phiên bản ruby, đường ray và môi trường mà tôi đang sử dụng. –
đường ray là đá quý ... –
Phải, Rails (và Rack) đều là đá quý, và script/about sẽ cho bạn biết phiên bản nào đang chạy, cùng với nội dung Rails chính (ActiveSupport, v.v.) nhưng sẽ không cho bạn biết về bất kỳ đá quý nào khác. Xin lỗi nếu điều đó không rõ ràng. –
Nếu bạn sử dụng bundler, sau đó bạn có thể nhận phiên bản từ
bundle show [gemname]
Tôi đến câu hỏi này bởi vì tôi đang cố gắng di chuyển _to_ bundler (có lẽ nhiều người cũng vậy, bởi vì Heroku bây giờ yêu cầu điều này) – GreenAsJade
Tôi mất nhiều thời gian hơn dự kiến để tìm và sắp xếp thông tin này vì vậy tôi muốn đăng ở đây để một người khác xem. Tôi cũng muốn làm rõ điều này một chút cho Rails 3:
script/về đã được thay thế bằng
rake about
Các chi tiết có here. Nếu bạn quan tâm một danh sách tất cả các thay đổi dòng lệnh cho Rails 3, chúng có thể được tìm thấy here.rake gems
không hoạt động trong Rails 3.Thay vào đó bạn nên sử dụngbundle show
Ví dụ, bạn có thể lưu tất cả các phiên bản của đá quý của bạn vào một tập tin để xem với:
gem list > all_gems.txt
và bạn có thể xem những gì các phiên bản ứng dụng Rails của bạn là sử dụng với:
bundle show > project_gems.txt
sử dụng một trình soạn thảo như Vim bạn có thể dễ dàng sử dụng vimdiff se e các thay đổi
Ngoài ra còn có một danh sách trong Gemfile.lock
, nằm trong thư mục gốc của ứng dụng của bạn.
Vì lý do này, tôi để lại Gemfile.lock
trong số .gitignore
. Điều này đã lưu lại cho tôi nhiều lần khi tôi quên chỉ định phiên bản đá quý trong GemFile
và một gem được cập nhật với các thay đổi đột phá.
Trong Gemfile, cần có câu trả lời:
gem 'rails', '4.0.0.rc1'
'Gemfile' sẽ không luôn khai báo rõ ràng một số phiên bản. – Tass
bundle exec gem which gem_name
Có lẽ là những gì bạn có thể sử dụng:
$› bundle exec gem which rails
/Users/xxxx/.rvm/gems/[email protected]/gems/railties-4.1.7/lib/rails.rb
Tôi đang tìm kiếm thông tin về phiên bản của một viên ngọc được cài đặt trên toàn cầu đang được thực hiện trong một thư mục tùy ý và điều này dẫn tôi đến những gì tôi tin là giải pháp đúng - "gem gem_name' – cori
Trong nhà ga
gem list | grep xxx
hoặc
bundle show | grep xxx
xxx nên được thay thế như tên đá quý bạn sẽ xem xét
gem list <gemname>
Nó sẽ hiển thị tất cả các đá quý phù hợp ví dụ như nếu một số một làm
gem list rack
Sau đó, thứ đầu ra sẽ được như sau
*** LOCAL GEMS ***
rack (1.6.4)
rack-mount (0.6.14)
rack-test (0.6.3, 0.6.2, 0.5.7)
thử cái này cho đá quý cục bộ:
gem list gemname | grep -P '(^|\s)\Kgemname(?=\s|$)'
Nếu bạn sử dụng gói:
bundle exec gem list gemname | grep -P '(^|\s)\Kgemname(?=\s|$)'
- 1. Làm cách nào để biết tôi đang sử dụng phiên bản OpenGL nào?
- 2. Làm cách nào để biết tôi đang sử dụng phiên bản Symfony nào?
- 3. Làm cách nào để biết tôi đang sử dụng phiên bản servlet và JSP nào?
- 4. Làm thế nào để bạn sử dụng nhiều phiên bản đường ray với rbenv?
- 5. Cách kiểm tra phiên bản html bất kỳ ứng dụng web nào đang sử dụng?
- 6. Làm cách nào để sử dụng CSS với ứng dụng ruby trên đường ray?
- 7. Cách tốt nhất để phiên bản ứng dụng đường ray là gì?
- 8. Làm cách nào để biết tôi đang chạy phiên bản git nào?
- 9. Tôi đang sử dụng phiên bản XPath và XSLT nào ..?
- 10. Làm cách nào để biết tôi đang chạy phiên bản Doctrine nào?
- 11. Làm cách nào để biết phiên bản WCF nào tôi đang chạy?
- 12. Tôi đang sử dụng phiên bản nào của C++?
- 13. Làm thế nào để nội tuyến css khi sử dụng đường ray tài sản đường ray
- 14. Làm cách nào để biết phiên bản Sybase nào đang chạy
- 15. Làm cách nào để biết tôi đang chạy phiên bản reportlab nào?
- 16. Có cách nào để biết phiên bản groovy nào được sử dụng trong dự án grails?
- 17. Tôi đang sử dụng phiên bản CodeIgniter nào?
- 18. Làm thế nào để biết phiên bản django tôi sử dụng? là 1.0, 1.1 hoặc 1.2?
- 19. Tôi làm cách nào để biết trình duyệt nào người dùng đang sử dụng?
- 20. Làm cách nào để biết tôi đang sử dụng Phân phối Linux nào?
- 21. Làm cách nào để biết quy trình nào đang sử dụng một tệp nhất định?
- 22. Tôi làm cách nào để biết loại máy chủ nào đang sử dụng?
- 23. Làm cách nào để biết quy trình nào đang sử dụng tệp dưới Java trong Windows?
- 24. Tôi làm cách nào để biết Chrome đang sử dụng phông chữ nào?
- 25. Sử dụng mysql với đường ray - làm cách nào để thiết lập điều này?
- 26. Làm cách nào để biết ứng dụng toàn màn hình có đang chạy không?
- 27. Làm cách nào để biết phiên bản Cassandra tôi đang chạy?
- 28. Làm cách nào để tắt tính năng bảo vệ CSRF trong ứng dụng đường ray?
- 29. Làm cách nào để xác nhận cơ sở dữ liệu là Postgres và phiên bản nào đang sử dụng SQL?
- 30. Làm cách nào để xác nhận cơ sở dữ liệu là Oracle và phiên bản nào đang sử dụng SQL?
Bạn có yêu cầu phiên bản nào của đường ray, hoặc phiên bản nào của một số đá quý khác? –
Phiên bản của một viên ngọc cụ thể. –
Tôi có một viên đá quý đông lạnh dưới các nhà cung cấp/đá quý, và sau đó có một phiên bản mới hơn của đá quý được cài đặt trong vị trí đá quý mặc định. Tôi đang tìm kiếm từ một cái gì đó từ đường ray nói rằng "Tôi nạp đá quý này từ vị trí này". –