From: XY$ on 22 Apr 2010 14:11 Hi I wonder if it is possible to run Sinatra without useing RubyGems. Thanks K
From: Joel VanderWerf on 22 Apr 2010 16:22 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 22 Apr 2010 18:30 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 22 Apr 2010 18:48 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 22 Apr 2010 18:55
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. |