hieronder staat wat ik moet doen.
Om de specificaties uit te voeren, moet u RSpec installeren. Voer eerst
gem install bundler
uit in de hoofdmap van uw project. Voer vervolgensbundle install
uit. 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 jebundle exec rspec
uit.
Dus ik typte gem install bundler
in 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 install
binnenin atom? Kan iemand me vertellen hoe ik atoom moet gebruiken of iets in atoom moet uitvoeren?
Antwoord 1, autoriteit 100%
Bijwerken:
- Ik heb nu een zeer gedetailleerde stapsgewijze zelfstudie voor het opzetten van een goede Ruby-ontwikkelomgeving op een Mac, inclusief een Homebrew-probleemoplossingssectie met de meest voorkomende problemen die mensen tegenkomen.
- Hoewel mijn stapsgewijze zelfstudie gegarandeerd werkt, heb ik ook een scriptdat u veel tijd zal besparen.
- Mijn tutorial gebruikt een Ruby-manager om Ruby te installeren (specifiek
chruby
) omdat dat de enige manier is waarop ik je aanraad om Ruby te installeren. Lees voor meer informatie mijn gids waarin de verschillende manieren worden uitgelegd waarop u Ruby-edelstenen op een Mac kunt installeren.
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 bundler
te installeren met een aparte versie van Ruby die de versie van Apple niet verstoort.
Het gebruik van sudo
om 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:
- Installeer een aparte versie van Ruby die niet interfereert met de versie die bij je Mac is geleverd.
- Update je
PATH
zodat de locatie van de nieuwe Ruby-versie als eerste in hetPATH
staat. Sommige tools doen dit automatisch voor je. Als je niet bekend bent met hetPATH
en 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 chruby
en ruby-install
hebt gekozen, kun je de nieuwste Ruby als volgt installeren:
ruby-install ruby
Zodra je alles hebt geïnstalleerd en je .zshrc
of .bash_profile
hebt 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 chruby
zou het ongeveer zo zijn:
chruby 3.0.1
Of u .zshrc
of .bash_profile
moet 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 PATH
door 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.0
in 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.7
door 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 .zshrc
door .bash_profile
als 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 sudo
niet 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_profile
of .zshrc
als 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-install
met 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 ruby
de 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 rbenv
of rvm
. Anders zijn geïnstalleerde Gems beschikbaar als root
voor andere gebruikers.
Als je weet wat je doet, kun je sudo gem install
gebruiken.
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 rbenv
of 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 PATH
zodat 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
-
Installeer/update RVMmet de laatste ruby-versie
\curl -sSL https://get.rvm.io | bash -s stable
-
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.
brew install rbenv
rbenv init
- voeg
eval "$(rbenv init -)"
toe aan ~/.bash_profile rbenv install {stable_version_#}
u kunt het versienummer verkrijgen metrbenv install -L
rbenv global {your_preferred_version_#}
om over te schakelen naar ruby-versiesrbenv shell {your_preferred_version_#}
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 cocoapods
werkte voor mij.