2017-10-10 1 views
9

VersuchWie ändere ich Ruby-Version für Homebrew in MacOS in Travis CI?

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

in before_install, ich am Ende mit

/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 

Also gehe ich davon aus das Problem hier ist, dass ruby ist auf Version 2.0, die ich mit ruby --version bestätigt zu laufen. Das Komische daran ist, dass meine Builds plötzlich aufhörten zu arbeiten, ohne Änderungen an .travis.yml.
Wie ändere ich eigentlich Ruby-Versionen?

Könnte nicht wichtig sein, dass vor git clone läuft ich dieses:

$ 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

Ich habe ein ähnliches Problem bei der Installation von Mutt. Ich lese durch die folgenden, weiß nicht, ob relevant https://discuss.circleci.com/t/homebrew-must-be-run-under-ruby-2-3-runtimeerror/17232/6 –

+0

Scheint wie Sie verwenden rvm, um Versionen von Ruby zu verwalten. Ist das richtig? – zee

Antwort

10

Ihre Auswahl entweder

brew update 
brew install whatever 

oder

HOMEBREW_NO_AUTO_UPDATE=1 brew install whatever 

Die Verwendung zu sein scheinen rat in travis documentation ein brew update nicht zu tun, wenn es nicht scheint ne zu sein Wenn Sie den Rubinbedarf von brew ändern, besteht die Gefahr, dass Sie einen zufälligen Bruch erleiden ...

2

Für .NET Core-Projekte: Sie können vermeiden, brew zu verwenden, indem Sie Travis 'Standard-.NET-Core nicht verwenden, sondern mit Microsoft installieren. NET Core SH-Skript. Ich hatte mono und dotnet Versionsdefinitionen, die ich nach dem Wechsel zum sh-Skript nicht benötigt habe. Ich war in der Lage, den Homebrew must be run under Ruby 2.3! Fehler zu beheben, indem ich diese zwei Definitionen entfernte (obwohl ich dann libunwind8 auf Linux aktualisieren musste, bevor ich die .NET Kerninstallation durchführte).

Hier ist die komplette .travis.yaml zum Ausführen von .NET Core-Projekt Test auf OSX und 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

Ich kann bestätigen, dass dies für mich mit --version 2.0.0 funktioniert hat, da meine Projekte das 2.0 .NET Core SDK benötigen. Danke, dass Sie diese Lösung teilen. –

7
  • Gebräu Update
  • Gebräu installieren rubin bauen
  • Gebräu installieren rbenv
  • rbenv installieren [version_required]
  • rbenv global [version_required]
0

Ich habe Erfolg Ruby-Version für Homebrew in macOS zu ändern, einen persönlichen Zugriff toke erstellen n auf GitHub und Einstellung es auf meinem Mac als:

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

und dann den Token mit:

export HOMEBREW_GITHUB_API_TOKEN="your_new_token" 

Wenn Sie bereits dieses Token gesetzt hat, können Sie sie löschen mit:

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

läuft brew update vor brew install package_name