Vraag geen dergelijk bestand om te laden - rubygems (LoadError)


Ik heb onlangs rails in fedora 12 geïnstalleerd. Ik ben ook nieuw bij linux. Alles werkt goed op Windows 7. Maar ik krijg veel problemen in Linux. Help alsjeblieft!

Ik heb alle essentiële dingen bij mijn kennis geïnstalleerd om het basisscript / de server in gebruik te krijgen. Ik heb deze fout van boot.rb opduiken wanneer ik script / server probeer. Enkele details die ik hier zou willen geven:

De mappen waar rails, robijn en edelsteen zijn geïnstalleerd,

[vineeth@localhost my_app]$ which ruby
/usr/local/bin/ruby

[vineeth@localhost my_app]$ which rails
/usr/bin/rails

[vineeth@localhost my_app]$ which gem
/usr/bin/gem

En wanneer ik het script / de server start, is dit de fout.

[vineeth@localhost my_app]$ script/server
./script/../config/boot.rb:9:in `require': no such file to load -- rubygems (LoadError)
 from ./script/../config/boot.rb:9
 from script/server:2:in `require'
 from script/server:2

En het PATH-bestand ziet er als volgt uit

[vineeth@localhost my_app]$ cat ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
 . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH="/usr/local/bin:/usr/local/sbin:/usr/bin/ruby:$PATH"

Ik veronderstel dat het iets met het PATH-bestand te maken heeft. Laat me weten wat ik hier moet veranderen. Als er andere wijzigingen zijn die ik moet aanbrengen, laat het me dan alstublieft weten.


61
2018-05-24 11:10


oorsprong


antwoorden:


Ik heb een vermoeden dat je twee ruby-versies hebt. Plak de uitvoer van de volgende opdracht:

$ which -a ruby

bijgewerkt met betrekking tot de opmerking:

Nuke één versie en laat er maar één over. Ik had hetzelfde probleem met twee versies die naar verschillende locaties voor edelstenen keken. Ik moest een paar weken gek worden. Zet hier een beloning op. Ik kreeg hetzelfde antwoord dat ik je geef.

Het enige wat ik deed was een rubberen nepinstallatie en liet de handelbare poorten achter. Ik zou voorstellen om dit te doen:

  1. Verwijder robijnversie geïnstalleerd via poorten (yum of wat voor pakketbeheer dan ook).
  2. Verwijder de ruby-versie die bij OS kwam (hardcore rm met de hand).
  3. Installeer robijnversie van poorten met een ander voorvoegsel (/usr in plaats van /usr/local)
  4. Installeer rubygems

101
2018-05-24 11:29



Ik had een soortgelijk probleem op Ubuntu vanwege het feit dat meerdere exemplaren van Ruby zijn geïnstalleerd. (1.8 en 1.9.1) Helaas heb ik ze allebei nodig. De oplossing is om te gebruiken:

$ sudo update-alternatives --config ruby
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/ruby1.8     50        auto mode
  1            /usr/bin/ruby1.8     50        manual mode
  2            /usr/bin/ruby1.9.1   10        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/ruby1.9.1 to provide /usr/bin/ruby (ruby) in manual mode.

Na het doen van die bundel installatie gelukt.


25
2017-09-12 10:10



OK, ik ben een Ruby noob, maar ik heb dit wel een beetje anders gerepareerd dan de antwoorden hier, dus hopelijk helpt dit iemand anders (tl; dr: Ik gebruikte RVM om de Ruby-versie van het systeem te veranderen naar dezelfde die verwacht werd door rubygems).

Allereerst, een lijst met alle Rubies zoals vermeld door Eimantas was een goed startpunt:

> which -a ruby
/opt/local/bin/ruby
/Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
/Users/Brian/.rvm/bin/ruby
/usr/bin/ruby
/opt/local/bin/ruby

De standaard Ruby-instantie die door het systeem werd gebruikt, bleek 1.8.7 te zijn:

> ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-darwin10]

terwijl de versie die door Rubygems werd gebruikt de versie 1.9.2 was die wordt beheerd door RVM:

> gem env | grep 'RUBY EXECUTABLE'
  - RUBY EXECUTABLE: /Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby

Dus dat was absoluut het probleem. Ik gebruik Ruby zelf niet actief (dit is gewoon een afhankelijkheid van een buildsysteem-script dat ik probeer uit te voeren), dus het maakte mij niet uit welke versie actief was voor andere doeleinden. Omdat rubygems de 1.9.2 verwachtten die al door RVM werd beheerd, heb ik eenvoudigweg RVM gebruikt om het systeem om te schakelen naar de 1.9.2-versie als standaard:

> rvm use 1.9.2
Using /Users/Brian/.rvm/gems/ruby-1.9.2-p290

> ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.3.0]

Na dat te hebben gedaan ging mijn "niet zo'n bestand" probleem weg en begon mijn script te werken.


18
2018-05-04 05:27



Ik zou dat in mijn geval willen toevoegen rubygems is niet geïnstalleerd.

hardlopen sudo apt-get install rubygems het probleem opgelost!


13
2018-03-13 15:19



Probeer het project te starten met:

./script/server

in plaats van script/server als u robijn 1.9.2 gebruikt (uit raar onvermogen om config / boot te vereisen na het upgraden naar robijn 1.9.2)


12
2017-11-09 04:28



Als iemand anders dit probleem googelt: ik heb de mijne kunnen herstellen door de ongrijpbare map "rubygems" te vinden die ik wilde gebruiken en toe te voegen aan mijn $ RUBYLIB-omgevingsvariabele.

find / -name "rubygems" -print

Zodra u het hebt gevonden, voegt u de bovenliggende map toe aan uw omgeving. In bash, zoals zo:

export RUBYLIB=/path/to/parent

Als je nu edelsteen uitvoert, zou het de juiste bibliotheekdirectory moeten oppikken, en je bent uitgeschakeld.


11
2017-08-25 04:26



Ik had een soortgelijk probleem, gewoon een triviaal robijnenscript draaien dat alleen de edelsteen vereiste die ik wilde ... kreeg die foutmelding. Toen ik de incantatie veranderde van:

ruby test.rb

naar

ruby -rubygems test.rb

Leek te werken.


6
2017-12-07 03:22



Ik had een soortgelijk probleem en loste dat op door RUBYLIB env in te stellen.

In mijn omgeving heb ik dit gebruikt:

export RUBYLIB=$ruby_dir/lib/ruby/1.9.1/:$ruby_dir/lib/ruby/1.9.1/i686-linux/:$RUBYLIB

5
2017-08-02 20:09



Als je meerdere ruby ​​hebt geïnstalleerd, kan het voldoende zijn om er één van te verwijderen, op MacosX met extra ports-installatie, verwijder je de robijninstallatie van de ports met:

sudo port -f uninstall ruby

1
2017-08-07 18:18