2013-05-15 39 views
66

Trên máy chủ Debian của tôi, tôi có người dùng được gọi là "triển khai" không có quyền truy cập sudo và đã cài đặt RVM.Cách cài đặt các yêu cầu hệ thống RVM mà không cho phép truy cập sudo cho người dùng RVM

Khi cài đặt của Ruby sử dụng "Deployer", như 1.9.3, nó gây nên một nhiệm vụ để cài đặt phụ thuộc

"Installing requirements for debian, might require sudo password." 

mà thất bại và dừng cài đặt bởi vì "Deployer" không thể sudo.

Tôi không muốn thêm "người triển khai" vào danh sách sudoers và không muốn cài đặt RVM cho một số người dùng khác chỉ để sử dụng một lần để cài đặt các phụ thuộc.

Cách chính xác để cài đặt các phụ thuộc đó là gì? Hoặc làm cách nào để liệt kê chúng để cài đặt theo cách thủ công?

+0

RVM có thể cố gắng cài đặt xây dựng phụ thuộc để biên dịch một nguồn gốc của ruby. Tránh phiên bản "mới nhất" và chỉ định một phiên bản rõ ràng của ruby. –

+2

Cảm ơn bạn đã đặt câu hỏi này. –

Trả lời

144

Đây thực sự là một tính năng mới của RVM được gọi là autolibs, tính năng này sẽ tự động cài đặt các phụ thuộc.

Nếu bạn đã cài đặt RVM, và đó là yêu cầu bạn nhập mật khẩu sudo của bạn, bạn có thể vô hiệu hóa autolibs:

$ rvm autolibs disable 
$ rvm requirements # manually install these 
$ rvm install ruby 

Nếu không, bạn có thể cài đặt RVM mà không autolibs với lệnh này:

$ \curl -L https://get.rvm.io | bash -s -- --autolibs=read-fail 

Tôi hiểu động lực, nhưng thấy nó khá khó chịu. Tôi không muốn đặt mật khẩu sudo của tôi vào RVM, cũng không phải cho gói đó! Xin vui lòng cộng đồng, ngừng làm điều này.

+6

Cảm ơn bạn, tôi đã lãng phí rất nhiều thời gian với điều này. Họ đang nghĩ gì vậy? –

+3

Trong số tò mò, tại sao 'curl' được đặt trước bằng dấu gạch chéo? Đó có phải là lỗi đánh máy không? – Gili

+11

@Gili Dấu gạch chéo ngược sẽ bỏ qua một bí danh hiện có, có thể có thêm các cờ không mong muốn. – kwarrick

-1

Sự cố đã được giới thiệu ở đâu đó trong các phiên bản RVM mới nhất. Không biết chính xác khi nào, nhưng chắc chắn trong 3-4 tháng qua.

Hãy thử điều này:

rvm get 1.18.8 
rvm install <whichever-version-you-want> 

Tôi không biết chính xác khi nào trên con đường giữa 1.18.8 và 1.20.12 vấn đề đó đã được giới thiệu, nhưng đối với tôi quá trình cài đặt làm việc với RVM v1.18.8 và thất bại với v1.20.12.

+0

Hạ cấp là chắc chắn không cần thiết. – drumfire

6

accepted answer không thể cài đặt Ruby thành .rvm/bin/ruby. Kịch bản lệnh shell kết thúc bằng số .rvm/wrappers/ruby-2.0.0-p247/ruby là một nỗi đau nếu tập lệnh xây dựng của bạn phụ thuộc vào vị trí này và số phiên bản thay đổi theo thời gian.

Dưới đây là một giải pháp dễ dàng hơn mà làm việc cho tôi:

\curl -L https://get.rvm.io | bash -s -- --ignore-dotfiles --autolibs=0 --ruby 

.rvm/bin/ruby được tạo ra như mong đợi.

Nguồn: http://blog.sunild.com/2013/07/install-ruby-with-rvm-on-mac-os-108.html

29

tôi thích điều này

$ rvm autolibs fail 
$ rvm install ruby 
Searching for binary rubies, this might take some time. 
Found remote file https://rubies.travis-ci.org/ubuntu/12.04/x86_64/ruby-2.1.1.tar.bz2 
Checking requirements for ubuntu. 
Missing required packages: gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev 
RVM autolibs is now configured with mode '2' => 'check and stop if missing', 
please run `rvm autolibs enable` to let RVM do its job or run and read `rvm autolibs [help]` 
or visit https://rvm.io/rvm/autolibs for more information. 
Requirements installation failed with status: 1. 

sau đó tôi có thể login lần sau với root và chạy

# apt-get install gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev 
+0

Đồng ý, đây là giải pháp đẹp hơn – Thomas

+0

Đây phải là câu trả lời được chấp nhận. Thông tin hữu ích hơn. – mshiltonj

+0

Giải pháp tuyệt vời. Cảm ơn! – Xornand

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