Als ik de opdracht gem install bundler
gebruik in MacOS 10.13.x, is de fout:
Je hebt geen schrijfrechten voor de directory /Library/Ruby/Gems/2.3.0.
$ gem install bundler
Fetching: bundler-1.16.2.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
Antwoord 1, autoriteit 100%
Dit is in feite een duplicaat van dezevraag, waar ik al een gedetailleerd antwoord heb gepost dat het probleem oplost. In plaats van twee afzonderlijke antwoorden te behouden, dacht ik dat het beter zou zijn om hier gewoon naar mijn antwoord te linken, omdat dezelfde oplossing van toepassing is:
https://stackoverflow.com/a/54873916/928191
Antwoord 2, autoriteit 44%
Zoals eerder opgemerkt, is de systeemruby op een Mac eigendom van root en is het niet veilig om dingen tegen die versie te installeren met sudo. Als je dat doet, wordt elke edelsteen als root uitgevoerd en dat is een beveiligingsnachtmerrie. DOE DAT NIET
Ik zal je door mijn stappen leiden, aangezien eerdere antwoorden uitgingen van een beetje opdrachtregel foo en de toegevoegde details kunnen voor iemand van enig nut zijn.
Controleer of we de oude, door het systeem geleverde ruby gebruiken
which ruby
/usr/bin/ruby
(dat is het systeempad)
ruby -v
ruby 2.3.7
(de oude versie)
brew install ruby
waarop de installatie zegt:
/usr/local/Cellar/ruby/2.6.3
Laat dat verschijnen in het pad eerst
PATH=/usr/local/Cellar/ruby/2.6.3/bin:$PATH
Dubbelcontrole
which ruby
/usr/local/Cellar/ruby/2.6.3/bin/ruby
Versie dubbel controleren
ruby --version
ruby 2.6.3p62
Maak de padupdate permanent (anders moet je het pad elke keer bijwerken als je ruby wilt gebruiken)
echo PATH=/usr/local/Cellar/ruby/2.6.3/bin:$PATH >> ~/.bash_profile
Antwoord 3, autoriteit 15%
sudo gem install -n /usr/local/bin bundler
Antwoord 4
Het is beter om niet helemaal sudo
te doen.
De juiste manier is om source ~/.zshrc
voor mij te laten werken nadat je de nieuwste ruby
op je Mac hebt geïnstalleerd via brew install ruby