2017-10-10 30 views
9

Đang cố gắng để chạyLàm thế nào để thay đổi phiên bản Ruby cho Homebrew trong macOS trong Travis CI?

if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install python3; fi 

trong before_install, tôi kết thúc với

/usr/local/Homebrew/Library/Homebrew/brew.rb:12:in \`<main>': Homebrew must be run under Ruby 2.3! (RuntimeError) 

The command "if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install python3; fi" failed and exited with 1 during . 

Your build has been stopped. 

/Users/travis/.travis/job_stages: line 166: shell_session_update: command not found 

Vì vậy, tôi cho rằng vấn đề ở đây là ruby đang dùng phiên bản 2.0, mà tôi khẳng định với ruby --version. Điều thú vị là, các bản dựng của tôi chỉ ngừng hoạt động đột ngột, không thay đổi .travis.yml.
Vậy làm cách nào để thực sự thay đổi các phiên bản Ruby?

Có thể là quan trọng đối với không, rằng trước khi git clone đang chạy tôi có được điều này:

$ rvm use 

Warning! PATH is not properly set up, '/Users/travis/.rvm/gems/ruby-2.0.0-p648/bin' is not at first place, 

     usually this is caused by shell initialization files - check them for 'PATH=...' entries, 

     it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles', 

     to fix temporarily in this shell session run: 'rvm use ruby-2.0.0-p648'. 
+0

Tôi đang gặp sự cố tương tự khi cài đặt mutt. Tôi đang đọc thông tin sau đây, không biết liệu https://discuss.circleci.com/t/homebrew-must-be-run-under-ruby-2-3-runtimeerror/17232/6 –

+0

có liên quan không bạn đang sử dụng rvm để quản lý các phiên bản của Ruby. Có đúng không? – zee

Trả lời

10

Lựa chọn của bạn dường như là để thể sử dụng

brew update 
brew install whatever 

hoặc

HOMEBREW_NO_AUTO_UPDATE=1 brew install whatever 

Các lời khuyên trong travis documentation để không làm một số brew update nếu nó không có vẻ là ne eded dường như để bạn có nguy cơ vỡ ngẫu nhiên khi yêu cầu ruby ​​của brew được thay đổi ...

2

Đối với các dự án .NET Core: bạn có thể tránh sử dụng bia bằng cách không sử dụng mặc định của Travis .NET Core nhưng cài đặt nó bằng cách sử dụng Microsoft. NET lõi script sh. Tôi đã từng có các định nghĩa phiên bản monodotnet mà tôi đã tìm thấy không cần thiết sau khi chuyển sang tập lệnh sh. Tôi đã có thể sửa lỗi Homebrew must be run under Ruby 2.3! bằng cách loại bỏ hai định nghĩa đó (mặc dù sau đó tôi phải cập nhật libunwind8 trên Linux trước khi cài đặt .NET core).

Đây là tệp .travis.yaml hoàn chỉnh để chạy thử nghiệm dự án lõi .NET trên osx và linux.

language: csharp 

before_install: 
    - if [ "$OS" = "linux" ]; then sudo apt-get install libunwind8; fi 

script: 
    - wget https://dot.net/v1/dotnet-install.sh && chmod +x dotnet-install.sh 
    - ./dotnet-install.sh --version 1.1.4 --install-dir $HOME/.dotnet 
    - $HOME/.dotnet/dotnet restore 
    - $HOME/.dotnet/dotnet test YOUR_CSPROJ_FILE_PATH 

matrix: 
    include: 
    - os: linux 
     dist: trusty 
     env: OS=linux 
    - os: osx 
     osx_image: xcode9 
     env: OS=osx 

branches: 
    only: 
    - master 
+1

Tôi có thể xác nhận điều này làm việc cho tôi với --version 2.0.0 vì các dự án của tôi cần 2.0 .NET Core SDK. Cảm ơn bạn đã chia sẻ giải pháp này. –

7
  • cập nhật brew
  • brew cài đặt ruby-xây dựng
  • brew cài đặt rbenv
  • rbenv cài đặt [version_required]
  • rbenv toàn cầu thành công [version_required]
0

tôi về việc thay đổi phiên bản Ruby cho Homebrew trong macOS, tạo ra một truy cập cá nhân toke n trên GitHub và cài đặt nó trên máy Mac của tôi là:

https://github.com/settings/tokens/new?scopes=gist,public_repo&description=Homebrew

Và sau đó thiết lập các mã thông báo với:

export HOMEBREW_GITHUB_API_TOKEN="your_new_token" 

Nếu bạn đã có bộ thẻ này, bạn có thể xóa chúng với:

printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase 
0

chạy brew update trước brew install package_name

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