ruby-mine

exploring the mine

require in Ruby 1.9.2

von skade am 19.07.2009 (10 Uhr)

Ruby 1.9.2 ist draußen und bringt ausser den in den News angekündigten Änderungen noch eine größere Überraschung mit.

Aufgrund eines potentiellen Sicherheitsproblems ist das Verzeichnis . nicht mehr standardmässig in $LOAD_PATH. Das bedeutet:

[ skade HIPE-Machine ~/Downloads/ruby-1.9.2-preview1 ] ls test.rb
test.rb
[ skade HIPE-Machine ~/Downloads/ruby-1.9.2-preview1 ] ./ruby --version
ruby 1.9.2dev (2009-07-18 trunk 24186) [i386-darwin9.7.0]
[ skade HIPE-Machine ~/Downloads/ruby-1.9.2-preview1 ] ./ruby -e "require 'test'"
-e:1:in `require': no such file to load -- test (LoadError)
  from -e:1:in `
'
Der Fix dafür ist einfach und in einer single-user-Umgebung unbedenklich: entweder ihr gebt jedem Aufruf von Ruby -I. mit oder ihr setzt RUBYLIB=".".


Kommentar schreiben

Name (notwendig)

Mail (wird nicht veröffentlicht)

Webseite


Kommentare

  1. case schrieb am 19.07.2009 (13 Uhr)

    naaajaaa... ob das wirklich ein sicherheits problem ist, liegt zum grossen teil auch am programmierer... aber das kann man besser im forum diskutieren wenn es wieder geht ;) gruss, tom.

  2. Skade schrieb am 19.07.2009 (14 Uhr)

    > aber das kann man besser im forum diskutieren wenn es > > wieder geht ;) Bovi ist gerade geschockt neben mir zusammen gebrochen. Hier nun der zweite Teil seiner Rubykaigi-Präsentation: "Debuggen vom anderen Ende der Welt".

  3. bovi schrieb am 19.07.2009 (14 Uhr)

    *vomStuhlWiederAufrichten* so geht wieder.. MySQL hatte ne Macke.. muss mir mal die config naeher anschauen..

  4. case schrieb am 19.07.2009 (20 Uhr)

    dumdidum... naja, wenigstens funktionieren die eskalationsstufen *g* gruss, tom.

  5. js schrieb am 23.07.2009 (15 Uhr)

    Hallo skade, eine Alternative könnte require_relative sein, das vom Ort der Aufrufenden Datei aus funktioniert. Ciao Jan

  6. Skade schrieb am 28.07.2009 (12 Uhr)

    Jan: das stimmt. Allerdings müsste man dann jedes Plugin etc. dazu bringen require_rel zu verwenden.