RubyRBEnv: Unterschied zwischen den Versionen
(rbenv) |
KKeine Bearbeitungszusammenfassung |
||
(9 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 9: | Zeile 9: | ||
Konfiguration für einen User mit "/bin/bash" als Shell. Die Umgebungsvariablen werden in ".bash_profile" hinterlegt. | Konfiguration für einen User mit "/bin/bash" als Shell. Die Umgebungsvariablen werden in ".bash_profile" hinterlegt. | ||
<syntaxhighlight lang=shell> | |||
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv | |||
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile | |||
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile | |||
source ~/.bash_profile | |||
</syntaxhighlight> | |||
Der Befehl | Der Befehl | ||
<syntaxhighlight lang=shell> | |||
type rbenv | |||
</syntaxhighlight> | |||
sollte eine Ausgabe erzeugen, die beginnt: "rbenv is a function" | sollte eine Ausgabe erzeugen, die beginnt: "rbenv is a function" | ||
=== Installation von ruby-build === | |||
<syntaxhighlight lang=shell> | |||
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build | |||
</syntaxhighlight> | |||
=== Installation von ruby === | |||
Mit dem Kommando | |||
<syntaxhighlight lang=shell> | |||
rbenv install --list | |||
</syntaxhighlight> | |||
erhält man eine Liste der aktuell untersützten Ruby-Versionen | |||
Installation mit (hier Version 3.1.3): | |||
<syntaxhighlight lang=shell> | |||
rbenv install 3.1.3 | |||
rbenv global 3.1.3 | |||
gem install bundler | |||
rbenv rehash | |||
</syntaxhighlight> | |||
Der Befehl | |||
<syntaxhighlight lang=shell> | |||
ruby -v | |||
</syntaxhighlight> | |||
liefert die Ausgabe "ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]" | |||
== Minimale Web Applikation mit Passenger == | |||
Zur Integration der eigenen Ruby-Installation in den Apache erfolgt über das Apache-Modul "Passenger". | |||
Vor der Nutzung dieses Moduls bitte unbedingt die | |||
[[Phusion Passenger|Hinweise zur Nutzung beachten]]. | |||
Für eine minimale Beispielanwendung legen wir eine Datei ''config.ru'' mit folgenden Inhalt an | |||
("ru" kurz für "rackup"): | |||
<syntaxhighlight lang=ruby line> | |||
# config.ru | |||
class App | |||
def call(env) | |||
headers = { 'Content-Type' => 'text/html' } | |||
response = ['Greetings from Rack!!'] | |||
[200, headers, response] | |||
end | |||
end | |||
run App.new | |||
</syntaxhighlight> | |||
== Sinatra Web Applikation mit Passenger == | |||
Um eine Beispielanwendung zu installieren, orientieren wir uns an https://github.com/phusion/passenger-ruby-sinatra-demo/tree/end_result | |||
Im Verzeichnis "/home/pacs/xyz00/users/example/doms/example.com/app-ssl/" legen wir folgende Dateien und Verzeichnisse an: | |||
Gemfile: | |||
<syntaxhighlight lang=ruby line> | |||
source 'https://rubygems.org/' | |||
gem 'sinatra' | |||
gem 'tilt' | |||
gem 'base64', '0.1.1' | |||
</syntaxhighlight> | |||
app.rb: | |||
<syntaxhighlight lang=ruby line> | |||
require 'sinatra/base' | |||
require 'tilt/erb' | |||
class ExampleApp < Sinatra::Base | |||
get '/' do | |||
erb :index | |||
end | |||
end | |||
</syntaxhighlight> | |||
config.ru: | |||
<syntaxhighlight lang=ruby line> | |||
require File.absolute_path("app.rb") | |||
run ExampleApp | |||
</syntaxhighlight> | |||
views/index.erb: | |||
<syntaxhighlight lang=html line> | |||
<!DOCTYPE html> | |||
<html> | |||
<head><title>Hello</title></head> | |||
<body> | |||
<h1>Hello world!</h1> | |||
<% if defined?(PhusionPassenger) %> | |||
<p>Congratulations, you are running this app in Passenger!<br/> | |||
You are running Ruby Version: <%= RUBY_VERSION %> | |||
</p> | |||
<% else %> | |||
<p>You are not running this app in Passenger.</p> | |||
<% end %> | |||
</body> | |||
</html> | |||
</syntaxhighlight> | |||
Im Verzeichnis "/home/pacs/xyz00/users/example/doms/example.com/app-ssl/" führen wir aus: | |||
<syntaxhighlight lang=shell line> | |||
bundle config --local path vendor/bundle | |||
bundle install | |||
</syntaxhighlight> | |||
== Links == | |||
* https://www.writesoftwarewell.com/definitive-guide-to-rack/ | |||
---- | |||
[[Kategorie:Installationsanleitungen]] | |||
[[Kategorie:Software]] |
Aktuelle Version vom 11. Juli 2024, 13:05 Uhr
Eigene Ruby Installation
Oft ist die vorinstallierte Version der Programmiersprache Ruby (die in Debian enthaltene Version) zu alt für die eingesetze Software.
Hier eine kurze Anleitung, mit der man eine eigene Ruby-Umgebung für einen User einrichten kann.
Installation von rbenv
Konfiguration für einen User mit "/bin/bash" als Shell. Die Umgebungsvariablen werden in ".bash_profile" hinterlegt.
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
Der Befehl
type rbenv
sollte eine Ausgabe erzeugen, die beginnt: "rbenv is a function"
Installation von ruby-build
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Installation von ruby
Mit dem Kommando
rbenv install --list
erhält man eine Liste der aktuell untersützten Ruby-Versionen
Installation mit (hier Version 3.1.3):
rbenv install 3.1.3
rbenv global 3.1.3
gem install bundler
rbenv rehash
Der Befehl
ruby -v
liefert die Ausgabe "ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]"
Minimale Web Applikation mit Passenger
Zur Integration der eigenen Ruby-Installation in den Apache erfolgt über das Apache-Modul "Passenger". Vor der Nutzung dieses Moduls bitte unbedingt die Hinweise zur Nutzung beachten.
Für eine minimale Beispielanwendung legen wir eine Datei config.ru mit folgenden Inhalt an
("ru" kurz für "rackup"):
# config.ru
class App
def call(env)
headers = { 'Content-Type' => 'text/html' }
response = ['Greetings from Rack!!']
[200, headers, response]
end
end
run App.new
Sinatra Web Applikation mit Passenger
Um eine Beispielanwendung zu installieren, orientieren wir uns an https://github.com/phusion/passenger-ruby-sinatra-demo/tree/end_result
Im Verzeichnis "/home/pacs/xyz00/users/example/doms/example.com/app-ssl/" legen wir folgende Dateien und Verzeichnisse an:
Gemfile:
source 'https://rubygems.org/'
gem 'sinatra'
gem 'tilt'
gem 'base64', '0.1.1'
app.rb:
require 'sinatra/base'
require 'tilt/erb'
class ExampleApp < Sinatra::Base
get '/' do
erb :index
end
end
config.ru:
require File.absolute_path("app.rb")
run ExampleApp
views/index.erb:
<!DOCTYPE html>
<html>
<head><title>Hello</title></head>
<body>
<h1>Hello world!</h1>
<% if defined?(PhusionPassenger) %>
<p>Congratulations, you are running this app in Passenger!<br/>
You are running Ruby Version: <%= RUBY_VERSION %>
</p>
<% else %>
<p>You are not running this app in Passenger.</p>
<% end %>
</body>
</html>
Im Verzeichnis "/home/pacs/xyz00/users/example/doms/example.com/app-ssl/" führen wir aus:
bundle config --local path vendor/bundle
bundle install