„Keine solche Datei zum Laden – net/ssh“ vom Rails-Controller unter Ubuntu
-
06-09-2019 - |
Frage
Ich habe einen sehr einfachen Controller:
require 'net/ssh'
class MyController < ApplicationController
def foo
render :text => 'bar'
end
end
Aber wenn ich darum bitte http://server:3000/my/foo Ich bekomme:
MissingSourceFile in MyController#foo
no such file to load -- net/ssh
Der Edelstein ist installiert
> gem list net-ssh
*** LOCAL GEMS ***
net-ssh (2.0.11)
Außerdem habe ich versucht, im IRB „require ‚net/ssh‘“ zu verwenden, und es funktioniert.
MyController funktioniert unter Windows einwandfrei, schlägt jedoch unter Ubuntu fehl.
Was kann falsch sein?
Lösung
Andere Tipps
In einem Projekt arbeite ich an uns die config / environment.rb Datei verwendet haben, die Perle benötigt Sachen zu halten. So
Rails::Initializer.run do |config|
# ...
config.gem 'net-ssh'
config.gem 'daemons'
config.gem 'slave'
config.gem 'vpim'
config.gem 'json'
# ...
end
Ich denke, Sie werden 'net-ssh' und nicht 'net / ssh' erfordern. Allerdings haben wir auf ein Problem stoßen, wo einen Bindestrich im Namen des Edelsteins hat zu Ausfällen geführt. Dann mussten wir tun
config.gem 'Ruby-IRC', :lib => 'IRC'
, so dass Version vielleicht für Sie erforderlich. So wäre das
config.gem 'net-ssh', :lib => 'net/ssh'
bei Schienen 3.0 diese Lösung, wenn OK. fügen Sie diese in der yourapp / Gemfile,
gem 'net-ssh
In meinem Fall, da es sich um eine Stand-alone-Rubin App ist, ich brauchte nur rubygems erforderlich ist.
Sie können auch „gemsonrails“ von Dr. Nic verwenden und verkaufte Edelsteine als Plugins laden. Überprüfen Sie Folgendes:http://gemsonrails.rubyforge.org
Ich denke, war das ursprüngliche Problem, dass ich normale Benutzer statt root verwendet:
$ gem install net-ssh
WARNING: Installing to ~/.gem since /usr/lib/ruby/gems/1.8 and
/usr/bin aren't both writable.
WARNING: You don't have /home/alex/.gem/ruby/1.8/bin in your PATH,
gem executables will not run.
Also, ich denke, Schienen könnten dieses Juwel nicht gefunden.