Có thể bỏ qua xác nhận .rvmrc?


16

Chúng tôi đang sử dụng RVM để quản lý các cài đặt và môi trường của Ruby.

Thông thường chúng tôi đang sử dụng .rvmrctập lệnh này :

#!/bin/bash
if [ ! -e '.version' ]; then
  VERSION=`pwd | sed 's/[a-z/-]//g'`
  echo $VERSION > .version
  rvm gemset create $VERSION
fi
VERSION=`cat .version`
rvm use 1.9.2@$VERSION

Kịch bản này buộc RVM tạo môi trường đá quý mới cho mỗi dự án / phiên bản của chúng tôi.

Nhưng mỗi lần chúng tôi triển khai phiên bản mới RVM yêu cầu chúng tôi xác nhận tệp mới .rvmrc .

Khi chúng tôi cdvào thư mục này lần đầu tiên, chúng tôi sẽ nhận được một cái gì đó như:

  ================================================== =============
  = THÔNG BÁO: =
  ================================================== =============
  = RVM đã gặp phải tệp .rvmrc chưa được tin cậy trong =
  = thư mục làm việc hiện tại có thể chứa mã khó chịu. = =
  = = =
  = Kiểm tra nội dung của tệp này để chắc chắn nội dung =
  = là tốt trước khi tin tưởng nó! = =
  = = =
  = Nhấn 'q' để thoát trình đọc khi đọc xong tệp =
  ================================================== =============

  (nhấn enter để tiếp tục khi sẵn sàng)

Điều này không tệ cho môi trường phát triển, nhưng với việc triển khai tự động, nó yêu cầu xác nhận thủ công từng phiên bản mới trên mỗi máy chủ.

Có thể bỏ qua xác nhận này?

Câu trả lời:


24

Tôi tìm thấy những ghi chú này trên blog Waynes, http://wayneeseguin.beginrescueend.com/

Về cơ bản, thêm:

export rvm_trust_rvmrcs_flag=1

để ~/.rvmrcsẽ bỏ qua việc kiểm tra.

Ngoài ra còn có các tập rvm rvmrc <command> [dir]tin tin cậy / không đáng tin cậy bằng tay .rvmrc.

Tìm kiếm điều tương tự vì vậy tôi nghĩ rằng tôi sẽ đăng giải pháp.

HTH

Trân trọng,

Phil


Đúng thứ tôi cần!
b01

3

Trong triển khai của tôi, tôi không sử dụng .rvmrc. Tôi chỉ sử dụng rvm use 1.9.2 --defaultnhư thế tôi a; chắc chắn rằng ruby ​​mặc định của tôi là 1.9.2 chứ không phải khác nếu tôi không có trong thư mục cụ thể này.

Sau khi có tùy chọn rvm_project_rvmrc=0trong rvmrc của bạn, bạn chắc chắn không có viên ruby ​​nào khác được sử dụng.


0
$ curl -L https://get.rvm.io | bash -s -- --version 1.16.20

$ rvm --version

rvm 1.16.20 (version) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

$ grep less .rvm/scripts/cli .rvm/bin/rvm-installer .rvm/src/rvm/scripts/cli .rvm/src/rvm/binscripts/rvm-installer
.rvm/scripts/cli:            } | less
.rvm/bin/rvm-installer:    } | less
.rvm/src/rvm/scripts/cli:            } | less
.rvm/src/rvm/binscripts/rvm-installer:    } | less

Cách khắc phục:

$ sed -i 's/ | less//' .rvm/scripts/cli .rvm/bin/rvm-installer .rvm/src/rvm/scripts/cli .rvm/src/rvm/binscripts/rvm-installer

Tôi đang xem lại "câu trả lời muộn" này và nghĩ rằng thật tốt khi bạn trả lời câu hỏi này. Cải tiến duy nhất tôi có thể nghĩ đến là thực sự giải thích những thay đổi mà lệnh sed sẽ làm.
eckes

0

Thay thế nhưng thoát 0 bất ngờ yêu cầu thực hiện nhiều

ví dụ: để cài đặt cả ruby ​​(không thay đổi cài đặt rvm gốc) sẽ thực hiện lặp lại

#!/bin/bash
rvm list | grep ree-1.8.7-2011.12 ||
(  
    rvm install ree-1.8.7-2011.12 &  
    expect "^Press 'q' to continue."  
    send "q\n"
    exp_continue
)

rvm list | grep ruby-1.9.3-p194 ||
(
    rvm install ruby-1.9.3-p194 &
    expect "^Press 'q' to continue."
    send "q\n"
    exp_continue
)

Bạn có ý nghĩa gì với câu trả lời của bạn? Mã này làm gì? @PhilT đã trả lời câu hỏi này.
Viacheslav Molokov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.