Betriebssystem herausfinden

Hin und wieder ist es erforderlich das Betriebssystem, auf dem die Applikation gerade ausgeführt wird, herauszufinden. Oft wird hierzu die “RUBY_PLATFORM” dazu benutzt. Wie das folgende Beispiel zeigt, kann dies zu einem “falschen” Ergenis führen.

RUBY_PLATFORM gibt z.B. bei der Verwendung von JRuby den Wert “java” zurück. Das spiegelt nicht das Betriebssystem wieder, sondern die verwendete Engine unter der die Applikation läuft.

Ein Beispiel-Modul um das Betriebssystem herauszufinden wäre:

module Betriebssystem
  def macintosh?
    RUBY_PLATFORM.downcase.include?("darwin")
  end

  def windows?
     RUBY_PLATFORM.downcase.include?("mswin")
  end

  def linux?
     RUBY_PLATFORM.downcase.include?("linux")
  end
end

Um einen verlässlichen Wert zu bekommen, sollte man das Gem “sys-uname” verwenden. Damit bekommt neben dem Betriebssystem auch viele weitere Informationen über die Umgebung heraus.

Installation von sys-uname:

gem install sys-uname

Verwendung von sys-uname:

   require 'sys/uname'
   include Sys

   puts Uname.nodename
   puts Uname.version
   puts Uname.sysname
   puts Uname.machine
   puts Uname.release

   p Uname.uname

Auf diese Weise bekommt alle relevanten Daten die man ggf. benötigt.

Eingestellt am 01.12.2009 um 08:00

Kategorie: Tutorials

Be Sociable, Share!

Kommentare für diesen Artikel wurden geschlossen.

Suchen auf rubyonrails.de

Aktuelle Rails Version + Abhängigkeiten:

Gem rails-3.0.0
actionmailer (= 3.0.0, runtime)
actionpack (= 3.0.0, runtime)
activerecord (= 3.0.0, runtime)
activeresource (= 3.0.0, runtime)
activesupport (= 3.0.0, runtime)
bundler (~> 1.0.0, runtime)
railties (= 3.0.0, runtime)

Rails auf Rubyforge
Rails auf Github