From: XY$ on
Hi

I wonder if it is possible to run Sinatra without useing RubyGems.

Thanks

K
From: Joel VanderWerf on
XY$ wrote:
> I wonder if it is possible to run Sinatra without useing RubyGems.

Depends on what you mean. For my purposes, the answer is yes.

I use gem for package management, but crown[1] to construct a
self-contained set of lib, ext, and bin dirs so that my program can run
without any reference to rubygems.

The following command builds the self-contained dirs that contain
everything I need for what I do with sinatra:

$ crown -v mydir sequel nokogiri sinatra json thin pg

All those gems are now available as ordinary libraries under mydir/.
There's no chance that a gem update will break your code. You can check
in the gem stuff alongside your project code so that you have a snapshot
of exactly what libs you were using at that version.

Running crown will also output something like:

PATH=/home/username/project/somedir/bin
RUBYLIB=/home/username/project/somedir/ext/json/ext:/home/username/project/somedir/lib:/home/username/project/somedir/ext

You can paste this into your main app file so that it knows where to
find the libs. Also, you can remove RUBYOPT='-rubygems' from your env.

[1] http://github.com/vjoel/crown



From: XY$ on
On 22 Apr, 21:22, Joel VanderWerf <joelvanderw...(a)gmail.com> wrote:
> XY$ wrote:
> > I wonder if it is possible to run Sinatra without useing RubyGems.
>
> Depends on what you mean. For my purposes, the answer is yes.
>
> I use gem for package management, but crown[1] to construct a
> self-contained set of lib, ext, and bin dirs so that my program can run
> without any reference to rubygems.
>
> The following command builds the self-contained dirs that contain
> everything I need for what I do with sinatra:
>
> $ crown -v mydir sequel nokogiri sinatra json thin pg
>
> All those gems are now available as ordinary libraries under mydir/.
> There's no chance that a gem update will break your code. You can check
> in the gem stuff alongside your project code so that you have a snapshot
> of exactly what libs you were using at that version.
>
> Running crown will also output something like:
>
> PATH=/home/username/project/somedir/bin
> RUBYLIB=/home/username/project/somedir/ext/json/ext:/home/username/project/somedir/lib:/home/username/project/somedir/ext
>
> You can paste this into your main app file so that it knows where to
> find the libs. Also, you can remove RUBYOPT='-rubygems' from your env.
>
> [1]http://github.com/vjoel/crown

OK
I was not precise in my question.

The web hosting service I am testing supports Ruby but not RoR or
RubyGems. I can run Ruby scripts as CGI but I wonder if I would be
able to use Sinatra.

Thanks
From: Caleb Clausen on
On 4/22/10, XY$ <kwicher(a)gmail.com> wrote:
> On 22 Apr, 21:22, Joel VanderWerf <joelvanderw...(a)gmail.com> wrote:
>> XY$ wrote:
>> > I wonder if it is possible to run Sinatra without useing RubyGems.
>>
>> Depends on what you mean. For my purposes, the answer is yes.
>>
>> I use gem for package management, but crown[1] to construct a
>
> OK
> I was not precise in my question.
>
> The web hosting service I am testing supports Ruby but not RoR or
> RubyGems. I can run Ruby scripts as CGI but I wonder if I would be
> able to use Sinatra.

Unless it's a severely constrained environment like heroku, you can
usually install rubygems in your user account and just go from there.
Check the rubygems docs for how to do that.

If you don't like that, something like joel's crown, gem bundler, or
rip may suit you better. Typically, these tools collect together all
the software your app depends on in a subdir of your project, so you
can just upload the entire directory tree to your server and then run
it right there. This is what joel was trying to explain to you. (I
think. I've never used any of those other tools, myself.)

From: Walton Hoops on
On 4/22/2010 4:35 PM, XY$ wrote:
> On 22 Apr, 21:22, Joel VanderWerf <joelvanderw...(a)gmail.com> wrote:
>
>> XY$ wrote:
>>
>>> I wonder if it is possible to run Sinatra without useing RubyGems.
>>>
>> Depends on what you mean. For my purposes, the answer is yes.
>>
>> I use gem for package management, but crown[1] to construct a
>> self-contained set of lib, ext, and bin dirs so that my program can run
>> without any reference to rubygems.
>>
>> The following command builds the self-contained dirs that contain
>> everything I need for what I do with sinatra:
>>
>> $ crown -v mydir sequel nokogiri sinatra json thin pg
>>
>> All those gems are now available as ordinary libraries under mydir/.
>> There's no chance that a gem update will break your code. You can check
>> in the gem stuff alongside your project code so that you have a snapshot
>> of exactly what libs you were using at that version.
>>
>> Running crown will also output something like:
>>
>> PATH=/home/username/project/somedir/bin
>> RUBYLIB=/home/username/project/somedir/ext/json/ext:/home/username/project/somedir/lib:/home/username/project/somedir/ext
>>
>> You can paste this into your main app file so that it knows where to
>> find the libs. Also, you can remove RUBYOPT='-rubygems' from your env.
>>
>> [1]http://github.com/vjoel/crown
>>
> OK
> I was not precise in my question.
>
> The web hosting service I am testing supports Ruby but not RoR or
> RubyGems. I can run Ruby scripts as CGI but I wonder if I would be
> able to use Sinatra.
>
> Thanks
>
>
I hope and pray you mean FastCGI, or FCGI, because CGI will be painfully
slow.

The instructions he gave you will work fine. Just grab the gem on your
development machine and unpack it into your project directory with
crown. Then deploy as normal. I found these instructions for setting
up via FastCGI:
http://www.gittr.com/index.php/archive/deploying-a-simple-sinatra-application-on-dreamhost-via-fastcgi/

I don't know what regular CGI would take. Hope this helps.