Je hebt geen schrijfrechten voor de directory /Library/Ruby/Gems/2.3.0. (mac-gebruiker)

hieronder staat wat ik moet doen.

Om de specificaties uit te voeren, moet u RSpec installeren. Voer eerst gem install bundleruit in de hoofdmap van uw project. Voer vervolgens bundle installuit. Om een enkel spec-bestand uit te voeren, voert u een commando als volgt uit: bundle exec rspec spec/00_hello_spec.rb. Om alle specificaties tegelijk uit te voeren, voer je bundle exec rspecuit.

Dus ik typte gem install bundlerin Terminal en kreeg de foutmelding:

Je hebt geen schrijfrechten voor de directory /Library/Ruby/Gems/2.3.0.

en dit stond in het projectbestand in atom

source "https://rubygems.org"
gem "rspec", "~> 3.2.0"

Mijn vraag is:

Het lijkt erop dat terminal me het antwoord geeft omdat ik niets aan ruby mag veranderen, en ik moet bundle installbinnenin atom? Kan iemand me vertellen hoe ik atoom moet gebruiken of iets in atoom moet uitvoeren?


Antwoord 1, autoriteit 100%

Bijwerken:

Je hebt gelijk dat je in macOS niets kunt veranderen met de Ruby-versie die bij je Mac is geïnstalleerd. Het is echter mogelijk om edelstenen zoals bundlerte installeren met een aparte versie van Ruby die de versie van Apple niet verstoort.

Het gebruik van sudoom edelstenen te installeren, of het wijzigen van machtigingen van systeembestanden en mappen wordt sterk afgeraden, zelfs als u weet wat u doet. Kunnen we alsjeblieft stoppen met het geven van dit slechte advies? Ik schreef een gedetailleerd artikel dat laat zien waarom je sudo nooit zou moeten gebruiken om edelstenen te installeren.

De oplossing bestaat uit twee hoofdstappen:

  1. Installeer een aparte versie van Ruby die niet interfereert met de versie die bij je Mac is geleverd.
  2. Update je PATHzodat de locatie van de nieuwe Ruby-versie als eerste in het PATHstaat. Sommige tools doen dit automatisch voor je. Als je niet bekend bent met het PATHen hoe het werkt, is het een van de basisprincipes die je moet leren, en je zult begrijpen waarom je soms “command not found“-fouten en hoe u deze kunt oplossen.

Er zijn verschillende manieren om Ruby op een Mac te installeren. De beste manier die ik aanbeveel, en waarvan ik zou willen dat het vaker voorkomt in de verschillende installatie-instructies die er zijn, is om een geautomatiseerd script te gebruiken (zoals degene die ik heb geschreven en waarnaar ik hierboven heb gelinkt) dat een goede Ruby-omgeving voor je zal opzetten. Dit verkleint drastisch de kans op een fout als gevolg van ontoereikende instructies waardoor de gebruiker een heleboel dingen handmatig moet doen en het aan hen overlaat om alle noodzakelijke stappen uit te zoeken.

De andere route die u kunt nemen, is extra tijd besteden aan het handmatig doen van alles en hopen op het beste. Ten eerste moet je Homebrewinstalleren, waarmee de vereiste opdrachtregeltools worden geïnstalleerd en het gemakkelijk wordt om andere noodzakelijke tools te installeren .

De twee gemakkelijkste manieren om een aparte versie van Ruby te installeren zijn:

Als je de flexibiliteit wilt om gemakkelijk tussen veel Ruby-versies te schakelen [AANBEVOLEN]

Kies een van deze vier opties:

  • chrubyen ruby-install– mijn persoonlijke aanbevelingen en degene die automatisch worden geïnstalleerd door mijn script. Deze kunnen worden geïnstalleerd met Homebrew:
brew install chruby ruby-install

Als je chrubyen ruby-installhebt gekozen, kun je de nieuwste Ruby als volgt installeren:

ruby-install ruby

Zodra je alles hebt geïnstalleerd en je .zshrcof .bash_profilehebt geconfigureerd volgens de instructies van de bovenstaande hulpprogramma’s, sluit je Terminal af en start je deze opnieuw op, en schakel je vervolgens over naar de versie van Ruby die je wilt. In het geval van chrubyzou het ongeveer zo zijn:

chruby 3.0.1

Of u .zshrcof .bash_profilemoet configureren, hangt af van welke shell je gebruikt.

Als je zeker weet dat je niet meer dan één versie van Ruby tegelijk nodig hebt (behalve degene die bij macOS werd geleverd)

  • Installeer ruby met Homebrew:
brew install ruby

Update vervolgens uw PATHdoor deze opdracht uit te voeren:

echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.7.0/bin:$PATH"' >> ~/.zshrc

De 2.7.0in het bovenstaande commando gaat ervan uit dat Homebrew een Ruby-versie heeft geïnstalleerd die begint met 2.7. Als je een andere versie gebruikt (die je kunt controleren met ruby -v), vervang dan 2.7door de eerste twee cijfers van je Ruby-versie.

Ververs vervolgens uw shell om deze wijzigingen door te voeren:

source ~/.zshrc

Of u kunt een nieuw terminaltabblad openen of Terminal afsluiten en opnieuw starten.

Vervang .zshrcdoor .bash_profileals je Bash gebruikt. Als je het niet zeker weet, lees dan mijn gids om erachter te komen welke shell je gebruikt.

Om te controleren of je nu de niet-systeemversie van Ruby gebruikt, kun je de volgende opdrachten uitvoeren:

which ruby

Het moet iets anders zijn dan /usr/bin/ruby

ruby -v

Het zou iets anders moeten zijn dan 2.6.3 als je macOS Catalina gebruikt. Vanaf vandaag is 3.0.1 de nieuwste Ruby-versie.

Zodra je deze nieuwe versie van Ruby hebt geïnstalleerd, kun je Bundler (of een ander juweeltje) nu installeren:

gem install bundler

Antwoord 2, autoriteit 31%

Als je sudoniet wilt gebruiken, installeer dan ruby met homebrew

brew install ruby
export GEM_HOME="$HOME/.gem"
gem install rails

Misschien wilt u export GEM_HOME="$HOME/.gem"toevoegen aan uw ~/.bash_profileof .zshrcals u gebruik zsh

Opmerking:RubyGems bewaart oude versies van edelstenen, dus voel je vrij om wat op te schonen na het updaten:

gem cleanup

Antwoord 3, autoriteit 29%

Werkte voor mij met de parameter --user-installmet het volgende commando:

gem install name_of_gem --user-install

Bewerken

Er was één juweeltje dat ik nog steeds niet kon installeren (het vereiste de Ruby.h-headers van de Ruby-ontwikkelingskit of zoiets), daarna probeerde ik de verschillende versiebeheerders, maar op de een of andere manier werkte dat nog steeds niet echt zoals het werd vermeld in de documentatie hoe je gewoon kunt installeren en schakelen (het veranderde gewoon niet de versies).
Daarna heb ik alle geïnstalleerde versiebeheerders verwijderd en daarna met brew install rubyde nieuwste versie geïnstalleerd en ook de PATH-variabele ingesteld. (Het wordt vermeld na de installatie van ruby from brew), wat werkte.


Antwoord 4, autoriteit 2%

Ik heb hetzelfde probleem ondervonden na de installatie van macOS Catalina. Ik had het onderstaande commando geprobeerd en het werkt.

sudo gem update

Antwoord 5, autoriteit 2%

Het wordt over het algemeen aanbevolen om een versiebeheerder te gebruiken zoals rbenvof rvm. Anders zijn geïnstalleerde Gems beschikbaar als rootvoor andere gebruikers.

Als je weet wat je doet, kun je sudo gem installgebruiken.


Antwoord 6, autoriteit 2%

Zoals @idleberg vermeldt, kunt u op Mac OS het beste rbenvinstalleren om machtigingsfouten te voorkomen wanneer met behulp van handmatig geïnstalleerde ruby.

Installatie

$ brew update
$ brew install rbenv

Voeg het volgende toe aan het bestand .bashrc:

eval "$(rbenv init -)"

Nu kunnen we de lijst met ruby-versies bekijken die beschikbaar zijn voor installatie

$ rbenv install -l

Installeer bijvoorbeeld versie 2.3.8

$ rbenv install 2.3.8

Nu kunnen we deze robijnrode versie wereldwijd gebruiken

$ rbenv global 2.3.8

Eindelijk uitvoeren

$ rbenv rehash
$ which ruby
/Users/myuser/.rbenv/shims/ruby
$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-darwin17]

Ga ervoor

Installeer nu bundel

$ gem install bundler

allemaal klaar!


Antwoord 7, Autoriteit 2%

EXPORT ENKEL GEM_HOME:

export GEM_HOME="$HOME/.gem"

en probeer vervolgens:

gem install cocoapods

Antwoord 8, Autoriteit 2%

Voer dit uit

$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init -)"

Volg de instructies (in mijn geval Toevoegen aan ~ / .zshrc );)


Ook belangrijk: wijzigingen worden alleen van kracht als u uw console opnieuw opstart. Twee opties

  • Voer source <modified file>
  • Sluiten en open opnieuw

Antwoord 9

Als u Ruby apart hebt geïnstalleerd en Ruby geïnstalleerd met Rbenv / RVM, kan Budler op verschillende versies wijzen.

Probeer

gem env home

en

ruby -v

Beide moeten wijzen op dezelfde versie.Controleer dat u Ruby hebt geïnstalleerd met RBENV / RVM, zo ja, verwijdert u de Ruby-versie die u afzonderlijk hebt geïnstalleerd.

Om edelbed te werken, moet u RBENV,

oproepen

rbenv shell <ruby version> 

en

rbenv global <ruby version>

Ik weet niet zeker hoe RVM werkt.
Laat me weten of dit werkt.


Antwoord 10

Probeer 1 of 2

1 - $ gem install cocoapods
2 - $ sudo gem install cocoapods

Als het niet werkt, exporteer dan Gem_Home:

export GEM_HOME="$HOME/.gem"

en probeer het opnieuw:

gem install cocoapods

Onthoud dat het officiële document zegt dat je sudo kunt gebruiken (https:/ /guides.cocoapods.org/using/getting-started.html#getting-started).


Antwoord 11

Er moet een andere installatie van ruby worden gebruikt. Ik gebruik daarvoor rbenv.

# install your version of ruby
$ rbenv install 2.0.0-p247
# modify .ruby_version on current directory
$ rbenv local 2.0.0-p247
# proceed installing gems
$ gem install bundler

Disclamer: ik ben geen robijnrood persoon. Dit werkte voor mij en als je een ruby-expert bent en dingen ziet veranderen in dit antwoord, ga je gang of geef commentaar!


Antwoord 12

TL;DR

In verschillende gevallen heb ik dit soort fouten opgelost door gewoon mijn terminalsessie te sluiten en een nieuwe te openen voordat ik de mislukte opdracht opnieuw probeerde.

Lange uitleg

In sommige SO’s (zoals MacOS) is er al een voorgeïnstalleerde systeembrede versie van ruby. Als u een versiebeheerder gebruikt, zoals rbenvof asdf, werken deze door te spelen met de omgeving van uw huidige sessie, zodat de relevante opdrachten verwijzen naar de binaire bestanden die zijn geïnstalleerd door de versiebeheerder.

Bij het installeren van een nieuw binair bestand, installeert de versiebeheerder het op een speciale locatie, meestal ergens onder de thuismap van de gebruiker. Het configureert vervolgens alles in uw PATHzodat u de vers geïnstalleerde binaire bestanden krijgt wanneer u een opdracht geeft, in plaats van degene die bij uw systeem zijn geleverd. Als u de sessie echter niet opnieuw start (er zijn andere manieren om uw omgeving te updaten, maar dat is de gemakkelijkste), krijgt u de nieuwe configuratie niet en gebruikt u de oorspronkelijke installatie.


Antwoord 13

Oplossing voor MAC. voer de opdracht uit

sudo gem update

Typ vervolgens uw Mac-wachtwoord wanneer daarom wordt gevraagd


Antwoord 14

Oplossing voor Mac

  1. Installeer/update RVMmet de laatste ruby-versie

    \curl -sSL https://get.rvm.io | bash -s stable

  2. Installeer bundler

    gem install bundler


hierna begonnen twee commando’s (sudo) gem install ....te werken


Antwoord 15

Probeer dit:

sudo gem install cocoapods --user-install

Werkte voor mij


Antwoord 16

Na het proberen van de vorige benaderingen, werkte dit voor mij op Big Sur:

sudo gem install -n /usr/local/bin cocoapods

Antwoord 17

Je moet rbenv installeren en ruby-versies onder rbenv onderhouden.

  1. brew install rbenv
  2. rbenv init
  3. voeg eval "$(rbenv init -)"toe aan ~/.bash_profile
  4. rbenv install {stable_version_#}u kunt het versienummer verkrijgen met rbenv install -L
  5. rbenv global {your_preferred_version_#}om over te schakelen naar ruby-versies
  6. rbenv shell {your_preferred_version_#}
  7. gem install {whatever you want gems}

Meer details https://github.com/rbenv/rbenv


Antwoord 18

Dit werkte voor mij op Mac

sudo chown -R $(whoami) $(brew –prefix)/*


Antwoord 19

Ik gebruik Mojave met rbenv, deze oplossing werkt voor mij:

$ vi ~/.bash_profile

Voeg deze regel toe aan het bestand:

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

Antwoord 20

Gewoon doen
sudo gem uninstall cocoapodswerkte voor mij.

Other episodes