RBENV gestito Rubies: aggiornamento VIM forzando homebrew per installare Ruby

4

Recentemente sono passato da RVM a RBENV come gestore di Ruby sotto MacOS Sierra.

$ rbenv version
2.3.1 (set by /Users/meltemi/.rbenv/version)
$ which ruby
/Users/meltemi/.rbenv/shims/ruby

Ho usato Homebrew per installare pacchetti come vim per anni e non ho mai installato la versione di Ruby tramite Homebrew.

Ora quando I brew upgrade vim ottengo un'installazione di dipendenza forzata di Ruby.

==> Upgrading vim
==> Installing dependencies for vim: ruby
==> Installing vim dependency: ruby
==> Downloading https://homebrew.bintray.com/bottles/ruby-2.3.1_2.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring ruby-2.3.1_2.sierra.bottle.tar.gz
Error: The 'brew link' step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/rake
Target /usr/local/bin/rake
already exists. You may want to remove it:
  rm '/usr/local/bin/rake'

To force the link and overwrite all conflicting files:
  brew link --overwrite ruby

To list all files that would be deleted:
  brew link --overwrite --dry-run ruby

Possible conflicting files are:
/usr/local/bin/rake
/usr/local/bin/rdoc
/usr/local/bin/ri
==> Caveats
Emacs Lisp files have been installed to:
  /usr/local/share/emacs/site-lisp/ruby
==> Summary
                    
posta Meltemi 04.10.2016 - 22:58
fonte

1 risposta

6

Ruby è una dipendenza per la creazione di vim con Homebrew in base ai dettagli del pacchetto:

ianc.local
> brew info vim
vim: stable 8.0.0019 (bottled), HEAD
Vi "workalike" with many additional features
http://www.vim.org/
Conflicts with: ex-vi
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/vim.rb
==> Dependencies
Optional: lua ✘, luajit ✘
==> Requirements
Required: ruby >= 1.8 ✔, perl >= 5.3 ✔
Recommended: python ✔
Optional: python3 ✔
==> Options
--with-client-server
    Enable client/server mode
--with-custom-perl
    Build with a custom Perl instead of the Homebrew version.
--with-custom-python
    Build with a custom Python 2 instead of the Homebrew version.
--with-custom-ruby
    Build with a custom Ruby instead of the Homebrew version.
--with-lua
    Build vim with lua support
--with-luajit
    Build with luajit support
--with-mzscheme
    Build vim with mzscheme support
--with-override-system-vi
    Override system vi
--with-python3
    Build vim with python3 instead of python[2] support
--with-tcl
    Build vim with tcl support
--without-nls
    Build vim without National Language Support (translated messages, keymaps)
--without-perl
    Build vim without perl support
--without-python
    Build vim without python support
--without-ruby
    Build vim without ruby support
--HEAD
    Install HEAD version

Ma come puoi vedere, richiede solo ruby 1.8 . Sta installando un ruby perché rbenv probabilmente non restituisce un ruby installato quando lo ruby shim viene chiamato dal pacchetto build.

Dato che vim si collegherà dinamicamente all'installazione di Ruby, ti raccomando caldamente di passare al ruby di sistema prima di installare o aggiornare vim. Qualcosa come:

brew uninstall vim ruby
brew cleanup
rbenv global system
brew install --build-from-source vim --with-custom-ruby

L'installer userà felicemente system ruby su Mac, che ha una versione abbastanza alta, durante l'installazione e i binari risultanti creati non saranno segfault se ti capita di rimuovere la specifica versione ruby su cui sono stati costruiti, il che è reale problema se si utilizza un rubino controllato da rbenv in fase di compilazione.

In alternativa puoi creare senza il supporto di ruby:

brew install vim --without-ruby

Ma probabilmente non è quello che vuoi.

    
risposta data 04.10.2016 - 23:13
fonte

Leggi altre domande sui tag