Pregunta

Tengo una aplicación Sinatra que yo estoy tratando de ejecutar en Dreamhost que hace uso de pony para enviar correo electrónico. Con el fin de conseguir la aplicación en funcionamiento desde el principio (antes de la adición de caballo), que tenía que gem unpack rack y gem unpack sinatra en el directorio vendor /, así que esta era mi config.ru:

require 'vendor/rack/lib/rack'
require 'vendor/sinatra/lib/sinatra'

set :run, false
set :environment, :production
set :views, "views"

require 'public/myapp.rb'
run Sinatra::Application

Ya he hecho gem install pony y gem unpack pony (en vendedor /). Posteriormente, He intentado añadir a require 'vendor/sinatra/lib/pony' config.ru sólo para que los pasajeros se quejan de dependencias del pony (tipos MIME, tmail) no se encuentran ya sea!

tiene que haber una manera mejor utilizar otras gemas y bajar el tono de los requires larga, fea, redundante. ¿Alguna idea?

¿Fue útil?

Solución

Me gustaría recomendar la creación de su propio camino joya "en algún lugar" a continuación, añadir que en su config.ru como:

ENV['GEM_PATH'] = xxx
Gem.clear_paths

a continuación, instalar gemas en que

Otros consejos

Instalar gemas de rubíes en la dreamhost

http://c.kat.pe/post/ Instalación-ruby-gemas-on-dreamhost /

Cambiar config.ru (obras para Sinatra 1.0)

requerir '' rubygems

require 'vendedor / Sinatra / lib / sinatra.rb'

ENV['GEM_HOME'] = '/home/username/.gems'
ENV['GEM_PATH'] = '$GEM_HOME:/usr/lib/ruby/gems/1.8'
require 'rubygems'
Gem.clear_paths

disable :run, :reload

set :environment, :production

require 'yourapp'
run Sinatra::Application

Espero que ayuda a alguien.

Estoy usando caballo y muchas otras gemas para mi Sinatra. Se debe trabajar bien para usted también. Es sólo esas dos líneas (GEM_HOME y GEM_PATH) hay que añadir en su configuración.

Me tomó años para encontrar que sólo tiene que utilizar "joya instalar Sinatra" y joya darán cuenta (ya que los directorios del sistema son de sólo lectura) que tendrá que utilizar una joya local directorio de instalación. A partir de ahora, no parece haber ninguna necesidad de fijar cualquier entorno especial. Se da cuenta de que usar $ HOME / .gem como el camino joya local y todo funciona. No hay necesidad de requerir 'vendedor / cosas' en absoluto. Lo que encontrar he tenido que añadir $ HOME / .gem / Ruby / 1.8 / bin a mi camino con el fin de ejecutar binarios instalados por las gemas.

Aquí está mi config.ru (por Dreamhost)

## Passenger should set RACK_ENV for Sinatra
require 'test'
set :environment, :development
run Sinatra::Application

Más tarde editar: Esto es todo muy bien, pero sigue siendo el tema que Pasajero no puede encontrar mis joyas cuando el trabajo comienza inicialmente .

Mi config.ru es sólo simple como:

require 'rubygems'
require 'vendor/sinatra/lib/sinatra.rb'
require 'app.rb'

y la cabeza app.rb:

require 'yaml'
require 'haml'
require 'ostruct'
require 'date'
require 'pp'

module FlytoFB
    log = File.new("sinatra.log", "a")
    STDOUT.reopen(log)
    STDERR.reopen(log)

    configure do

            enable :logging, :dump_errors
            set :app_file, __FILE__
            set :reload, true
            set :root, File.dirname(__FILE__)
            set :environment, :production
            set :env, :production
            set :run, false

            set :raise_errors, true
      set :public, 'public'

            error do
                    e = request.env['sinatra.error']
                    puts e.to_s
                    puts e.backtrace.join("\n")
                    "Application Error!"
            end

            not_found do
              "Page not found!"
      end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top