2017-10-10 117 views
9

Próba uruchomieniaJak zmienić wersję Ruby dla Homebrew w macOS w Travis CI?

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

w before_install, ja skończyć z

/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 

Zakładam więc, problem jest to, że ruby jest od wersji 2.0, które potwierdzone ruby --version. Najśmieszniejsze jest to, że moje kompilacje nagle przestały działać, bez żadnych zmian w .travis.yml.
Jak mogę zmienić wersje Ruby?

mogą być ważne, aby nie, że przed git clone prowadzony jest uzyskać to:

$ 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

Mam podobny problem z instalowaniem mutt. Czytam przez następujące, nie wiem, czy istotne https://discuss.circleci.com/t/homebrew-must-be-run-under-ruby-2-3-runtimeerror/17232/6 –

+0

Wydaje się, że używasz rvm do zarządzania wersjami Rubiego. Czy to prawda? – zee

Odpowiedz

10

Twoje wybory wydają się być albo użyć

brew update 
brew install whatever 

lub

HOMEBREW_NO_AUTO_UPDATE=1 brew install whatever 

The doradztwo w travis documentation, aby nie zrobić brew update, jeśli nie wydaje się być ne eded wydaje się być narażony na ryzyko przypadkowego złamania, gdy wymóg dotyczący ruby ​​browaru zostanie zmieniony ...

2

Dla projektów .NET Core: można uniknąć używania brew, nie używając domyślnego .NET Core Travis, ale instalując go za pomocą Microsoft's. NET core sh skrypt. Kiedyś miałem mono i dotnet zestaw definicji wersji, które znalazłem nie były potrzebne po przejściu do skryptu sh. Byłem w stanie naprawić błąd Homebrew must be run under Ruby 2.3!, usuwając te dwie definicje (chociaż musiałem zaktualizować libunwind8 w systemie Linux przed wykonaniem instalacji rdzenia .NET).

Oto kompletny .travis.yaml do uruchamiania podstawowego testu projektu .NET na osx i 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

Mogę potwierdzić, że to działało dla mnie z opcją --version 2.0.0, ponieważ moje projekty wymagają pakietu .NET Core SDK 2.0. Dziękuję za udostępnienie tego rozwiązania. –

7
  • aktualizacja napar
  • napar zainstalować ruby-zbudować
  • napar zainstalować rbenv
  • rbenv zainstalować [version_required]
  • rbenv [version_required]
0

działa brew update przed brew install package_name