2012-06-02 13 views
10

Bất cứ khi nào tôi nhập một lệnh đá quý, chẳng hạn nhưTrong khi thực hiện đá quý, chưa biết lệnh

gem "tilt" 

hoặc

gem "mysql" 

tôi nhận được lỗi này:

While executing gem ... <RuntimeError> 
Unknown command tilt 

Khi tôi chạy gem list, cả nghiêng và mysql hiển thị trên danh sách, vì vậy chúng được cài đặt. Trong thực tế, tôi nhận được lỗi này với mọi mục trong danh sách. Điều gì có thể gây ra điều này?

Trả lời

21

gem không nói dối bạn, chúng không hợp lệ với các lệnh gem.

Có lẽ bạn đang nhầm lẫn dòng lệnh với Bundler? Ví dụ: thêm

gem "tilt" 

vào Gemfile và chạy bundle install sẽ cài đặt nghiêng. Nhưng Bundler sử dụng cú pháp riêng của nó, và không phải là một kịch bản shell. Để cài đặt nghiêng bằng cách sử dụng gem nhị phân trực tiếp bạn sẽ phải làm:

gem install tilt 

Chạy gem help sẽ cung cấp cho bạn một danh sách các đối số dòng lệnh gem 's.

+0

Lý do tôi hỏi là vì tôi đang cố gắng đặt mysql thành một phiên bản cụ thể bằng cách sử dụng lệnh: gem 'mysql2', '0.2.7'. Thật không may, khi tôi sử dụng lệnh này, tôi nhận được cùng một lỗi. Bất kỳ ý tưởng tại sao? – nullnullnull

+0

Bởi vì nó không phải là một lệnh hợp lệ như tôi đã nói. Nếu bạn đọc tài liệu trợ giúp cho 'gem' như trong câu hỏi của tôi, cũng như' gem help install' cho những cài đặt cụ thể, bạn sẽ tìm thấy các đối số chính xác để cài đặt một phiên bản cụ thể: 'gem install mysql2 --version 0.2 .7'. –

+0

Cảm ơn lời khuyên, Andrew. Tôi đã nhận được lệnh gốc từ một trang stackoverflow khác và tôi không thể hiểu tại sao nó không hoạt động trên hệ thống của tôi. Tôi vẫn không biết, nhưng lệnh của bạn không hoạt động. Có lẽ nó có cái gì đó để làm với hệ điều hành? – nullnullnull

2

Bạn đang sử dụng cú pháp Gemfile và bạn nên sử dụng cú pháp dòng lệnh. Cung cấp cho một thử này:

gem install mysql2 -v 0.2.7 
+0

Chính xác là vậy. Cảm ơn, David! – nullnullnull

1

Hãy chắc chắn rằng cú pháp của bạn là chính xác cho chủ trương hơn bạn có thể gõ

gem help

Để xem cú pháp chấp nhận được cho ruby,

Nếu bạn nhận được lỗi này "Bạn không có quyền ghi cho/Thư viện"

Bạn luôn có thể thêm sudo để nâng đặc quyền S.

ví dụ: sudo gem install <gemname>

Sử dụng sudo trước mã của bạn và điều đó sẽ cấp cho bạn quyền truy cập quản trị (sau khi bạn nhập mật khẩu máy tính).

Sau đó bạn có thể phải chạy bundle install để cài đặt đá quý.