Les gemmes que j'installe via Sudo gem install ...
ne peut pas être exécuté (j'obtiens un command not found
). Ils semblent s'installer dans /usr/local/Cellar/
qui est le répertoire d'installation de Brew (aussi, les gemmes dans /Library/Ruby/
ne fonctionne pas non plus). Y a-t-il autre chose que je dois faire pour rendre les gemmes exécutables? J'utilise ZSH sur Mac OS X 10.6 avec Ruby v1.8 pour celui de Brew.
EDIT: Cela semble fonctionner maintenant. Je suis juste sorti quelques heures et suis revenu pour l'essayer à nouveau.
Homebrew est Nice. Cependant, contrairement à brew
et npm
, gem
ne crée pas d'alias dans /usr/local/bin
automatiquement.
J'ai opté pour une approche très simple (à partir de mars 2019):
export PATH=/usr/local/opt/Ruby/bin:$PATH
export PATH=/usr/local/lib/Ruby/gems/2.5.0/bin:$PATH
Ajoutez ceci à votre .bashrc
(ou .bash_profile
, .zshrc
, etc.).
C'est ça! Désormais, tous les Ruby bacs et gemmes installés seront disponibles depuis votre Shell!
Dans les anciennes versions de Homebrew (avant 2017), il y avait un package séparé pour Ruby 2 appelé Ruby20
, pour lequel vous utiliseriez l'extrait de code suivant à la place:
export PATH=/usr/local/opt/Ruby20/bin:$PATH
Cette ligne était la seule ligne nécessaire à l'époque. Mais, dans Ruby 2.1 les gemmes ont été déplacées dans un répertoire séparé. Plus sous /usr/local/opt/Ruby/bin
, mais à la place à /usr/local/lib/Ruby/gems/2.0.0/bin
(où "2.0.0" est la dernière version majeure Ruby version for Gem's)).
Homebrew garde une trace de l'endroit où il a installé un package et maintient un lien symbolique pour vous qui pointe là.
$ brew --prefix Ruby
/usr/local/opt/Ruby
$ l /usr/local/opt/Ruby
/usr/local/opt/Ruby@ -> ../Cellar/Ruby/2.5.3_1
En effet, l'ajout de /usr/local/opt/Ruby
à PATH
est identique à ce qui suit:
export PATH=/usr/local/Cellar/Ruby/2.5.3_1/bin:$PATH
Sauf que cette version longue code en dur la version actuellement installée de Ruby et cesserait de fonctionner la prochaine fois que vous mettrez à niveau Ruby.
Quant à Gem, la commande suivante vous indiquera le répertoire exact auquel Gem ajoute de nouveaux packages:
$ gem environment gemdir
/usr/local/lib/Ruby/gems/2.5.0
Ces outils étaient destinés à faire automatiquement le pont entre Homebrew et Gem:
Je ne les ai pas utilisés, mais ils pourraient fonctionner pour vous.
brew unlink Ruby; brew link Ruby
pourrait ajouter des liens symboliques vers /usr/local/bin/
:
$ which sass
$ brew unlink Ruby; brew link Ruby
Unlinking /usr/local/Cellar/Ruby/2.0.0-p0... 20 links removed
Linking /usr/local/Cellar/Ruby/2.0.0-p0... 31 symlinks created
$ which sass
/usr/local/bin/sass
brew --prefix Ruby
est encore assez lent, mais vous pouvez aussi simplement ajouter /usr/local/opt/Ruby/bin
au chemin.
$ time brew --prefix Ruby
/usr/local/opt/Ruby
0.216
$ time brew --prefix Ruby
/usr/local/opt/Ruby
0.076
$ stat -f%Y /usr/local/opt/Ruby
../Cellar/Ruby/2.0.0-p0
J'aime la bière maison. Il y a probablement une meilleure façon de le faire, mais si vous exécutez:
gem environment
Cela imprimera une belle liste de tous les chemins pertinents. Recherchez celui intitulé EXECUTABLE DIRECTORY
. C'est celui que vous souhaitez ajouter à votre chemin. Dans mon cas, c'est /usr/local/Cellar/Ruby/1.9.3-p362/bin/Ruby
mais j'imagine que cela changerait avec une nouvelle version de Ruby.
J'utilise /bin/bash
comme mon Shell, mais le processus d'ajout à votre chemin devrait être à peu près le nom.
J'utilise TextWrangler (via les outils de ligne de commande) pour modifier mon .profile
fichier. Pour ce faire, c'est juste:
edit ~/.profile
Lorsque vous avez terminé, fermez votre terminal et ouvrez-en un nouveau, ou exécutez:
source ~/.profile
Vous pouvez être très bien avec Ruby installé par homebrew aussi .. Il vous manque juste la fonctionnalité des jeux de gemmes personnalisés avec homebrew.
faire d'abord:
Sudo nano /etc/paths
cela fera apparaître nano éditeur,
puis ajoutez ce qui suit aux chemins:
/usr/local/Cellar/Ruby/1.9.3-p194/bin
votre version de Ruby variera probablement.
C'est ça. Il devrait maintenant détecter vos gemmes.
Oh, btw, vous devez Ctrl + X> y> ENTER pour enregistrer un fichier dans nano.
Au lieu d'utiliser => $(cd $(which gem)/..; pwd)
Vous pouvez utiliser ceci à la place => $(brew --prefix Ruby)/bin
Je pense que cela évolue un peu.
Ajoutez simplement
export PATH=/usr/local/opt/Ruby/bin:$PATH
À votre .bashrc (ou .bash_profile, .zshrc/.bashrc, .. - tout ce que vous utilisez).
Si vous avez un problème avec Ruby lui-même
brew unlink Ruby
brew link Ruby