Meldungen zu Web » Development »


Danke für so vieles, Steve.

Deine Rede in Stanford hat mich schon damals tief bewegt …

Nach dem Upgrade auf Ruby 1.9.1 und Rails 3.0 unter Mac OS X Snow Leopard hatte ich einigen Ärger mit RubyGem Warnungen. Insbesondere, wenn ich den Server innerhalb des Rails-3-Projektes mit dem folgenden Kommando starten wollte:

rails server

Zu Beginn, als ich noch mit dem bundler Gem Version 0.9.3 arbeitete, waren es zwei Arten von Fehlern bzw. Warnungen: Die erste Warnung hat das Termial mit hunderten Zeilen Code gefüllt, wie …

WARNING:  # NoMethodError: undefined method ` ' for nil:NilClass 
# -*- encoding: utf-8 -*-
...
WARNING:  Invalid .gemspec format in \
'.rvm/gems/ruby-1.9.1-p378/specifications/spec.gemspec'

Das Bundler-Team rund um Carlhuda hat den Fehler mit der Bundler Version 0.9.4 behoben … das Problem sollte nach einem Update des Gems also nicht mehr auftauchen.

Das andere Problem war allerdings etwas hartnäckiger. Beim Start des Servers via

rails server

oder beim Durchführen eines Tests via

rake

innerhalb eines Rails-3-Projektes kamen die folgenden Warnungen:

/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:14: \
warning: already initialized constant VERSION
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:14: \
warning: already initialized constant RubyGemsVersion
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:194: \
warning: already initialized constant MUTEX
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:196: \
warning: already initialized constant RubyGemsPackageVersion
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:202: \
warning: already initialized constant WIN_PATTERNS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1079:\
 warning: already initialized constant MARSHAL_SPEC_DIR
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1084: \
warning: already initialized constant YAML_SPEC_DIR
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/version.rb:72: \
warning: already initialized constant VERSION_PATTERN
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb:20: \
warning: already initialized constant OPS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb:30: \
warning: already initialized constant OP_RE
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/version.rb:246: \
warning: already initialized constant Requirement
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:18: \
warning: already initialized constant TYPES
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/platform.rb:171: \
warning: already initialized constant RUBY
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/platform.rb:177: \
warning: already initialized constant CURRENT
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:39: \
warning: already initialized constant NONEXISTENT_SPECIFICATION_VERSION
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:50: \
warning: already initialized constant CURRENT_SPECIFICATION_VERSION
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:56: \
warning: already initialized constant SPECIFICATION_VERSION_HISTORY
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:72: \
warning: already initialized constant MARSHAL_FIELDS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:75: \
warning: already initialized constant TODAY
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:593: \
warning: already initialized constant Cache
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:14: \
warning: already initialized constant DEFAULT_BACKTRACE
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:15: \
warning: already initialized constant DEFAULT_BENCHMARK
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:16: \
warning: already initialized constant DEFAULT_BULK_THRESHOLD
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:17: \
warning: already initialized constant DEFAULT_VERBOSITY
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:18: \
warning: already initialized constant DEFAULT_UPDATE_SOURCES
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:24: \
warning: already initialized constant OPERATING_SYSTEM_DEFAULTS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:30: \
warning: already initialized constant PLATFORM_DEFAULTS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:53: \
warning: already initialized constant SYSTEM_WIDE_CONFIG_FILE

Jeremy Kemper vom Rails-Core-Team hat klar gemacht, dass diese Warnungen kein Rails- sondern ein RubyGem-Bug sind. Ruby 1.9 wird mit einer veralteten RubyGems-Version ausgeliefert … Ruby Version 1.9.1p378 beinhaltet RubyGems 1.3.1. Ich habe natürlich die RubyGems auf Version 1.3.5 aktualisiert mit

sudo gem update --system

aber diese Aktualisierung führte zu zwei RubyGem-Installationen die die Warnungen verursachen.

So, wie kann man das Problem lösen? Ein Löschen von Ruby 1.9.1 und die Neuinstallation haben leider keinerlei Effekt … die Lösung ist im Grunde recht simpel:

Ist Ruby 1.9.1 und Rails 3.0 beta schon installiert …

1. Wichtig: Nach der Installation von Ruby 1.9.1 darf auf KEINEN FALL RubyGems 1.3.5 separat manuell installiert werden – das wäre eine Doppelinstalltion. Das sollte man unbedingt beherigen, wenn man die wunderbare Beschreibung von Dan Benjamin, wie man Ruby, RubyGems, und Rails auf Snow Leopard installiert nutzt.

2. Wenn man also Ruby 1.9.1 installiert hat, RubyGems auf 1.3.5 und Bundler auf 0.9.4 upgedated und Rails 3.0 installiert hat, ist das einzige was man tun muss folgendes:

sudo gem uninstall rubygems-update

Das wars. Keine Fehler mehr!

Falls Ruby 1.9.1 und Rails 3.0 noch nicht installiert ist …

1. Man kann mit Dan Benjamins Rezept starten und modifiziert die Befehle für download, make und install von ruby-1.9.1-p378.tar.gz. Wichtig ist natürlich, dass man rubygems-1.3.5.tgz NICHT wie angegeben installiert.

2. Dann wird das veraltete RubyGems mit folgendem Kommando aktualisiert:

sudo gem update --system

3. Jetzt sollten die Gems rake und sqlite3-ruby installiert werden.

4. Schließlich werden noch die weiteren Gems und rails –pre installiert, wie in den Rails 3.0 beta Release Notes beschrieben.

5. Nach der erfolgreichen Installation von Rails 3.0 beta fehlt noch der entscheidende Schritt:

sudo gem uninstall rubygems-update

6. Am Ende gilt es nur noch zu prüfen, ob einige Gems noch aktualisiert werden können bevor man sich in Rails 3.0 stürzen kann …

sudo gem update

Hope this helps … und hoffentlich spart es etwas Zeit ;-) Thx Andy für den Hinweis ;-)

MAMP, eine lokale Webserver-Umgebung auf dem Mac, eignet sich immer wieder wunderbar für das Testen, Entwickeln und Gestalten mit WordPress. MAMP bringt Apache, MySQL und PHP fertig konfiguriert in einem eigenen Verzeichnis mit. Leider kann die Installation und Konfiguration eines WordPress-Blogs den Zugriff auf die MAMP-Startseite verhindern:

Forbidden
You don’t have permission to access /MAMP/ on this server.
Apache/2.0.63 (Unix) PHP/5.2.11 DAV/2 Server at localhost Port XXXX

Das ist natürlich mehr als ärgerlich, da von der Startseite aus beispielsweise die Konfigurationseite phpMyAdmin, zur Administrierung der MySQL-Datenbank, nicht mehr erreichbar ist.
Bei mir lag es an einer falsch platzierten Datei: Beim Konfigurieren der WordPress-Installation über das Web-Interface wurde eine .htaccess-Datei fälschlicherweise im Root-Verzeichnis meiner Festplatte abgelegt. Etwas beunruhigend – aber ein lösbares Problem ;-)

Wie immer: Die Lösung ist wie immer auf eigene Gefahr … insbesondere das Terminal ist ein wunderbares Werkzeug … mit dem man aber auch viel kaputt machen kann!

Die Datei fällt im Finder nicht auf, das sie wie alle Punk-Dateien in UNIX normalerweise nicht angezeigt werden. Also bemüht man das Terminal und sieht sich das Root-Verzeichnis der Festplatte mal genauer an:

cd /

dann

ls -la

Findet sich dort die Datei .htaccess, sollte man sich vor dem Löschen bzw. Umbenennen nochmal den Inhalt genauer ansehen:

cat .htaccess

Am Einfachsten ändert man ihren Namen und macht die Datei sichtbar:

mv .htaccess htaccess-backup

So erscheint die Datei wieder im Finder und richtetet kein Unheil mehr an … wenn man sich sicher ist, dass man die Datei auch nicht mehr braucht, kann man sie natürlich jetzt auch im Finder einfach in den Papierkorb ziehen ;-)

Seit heute ist die Registierung zur – wohl wieder größten – Ruby-on-Rails-Konferenz in den USA möglich: RailsConf 2009. Wie in den vorigen Jahren organisiert O’Reilly wieder das Event. Dieses Mal findet die Konferenz allerdings nicht in Portland sondern in Las Vegas statt – nicht nur das Glücksspiel- und Vergnügungszentrum der USA sondern auch ein begehrter Konferenzstandort ;-)
Für die Schnellentschlossenen bis zum 16. März winkt ein Early-Bird-Bonus mit dem sich 200 USD sparen lassen.
Für alle die auf der Konferenz einen Vortrag halten wollen, wurde das Abgabedatum für einen Call for Participation bis zum 17. Februar 2009 verlängert. Da heißt es also schnell sein!
Die Konferenz selbst findet dann vom 4. bis 7. Mai 2009 im Las Vegas Hilton statt.

Viva Las Vegas!

Quellen: rubyonrails.com, RailsConf.com

Problem: Nach dem Update des Blogs auf WP 2.7 lief alles bestens. Nur bei manchen Plugins streigte der Server mit “500 Internal Server Error” insbesondere Plugins wie “XML Sitemap Generator for WordPress” oder beim Hochladen von Bildern. Nach dem Aktivieren des “StatPress Reloaded”-Plugins war dann sogar der gesamte Admin-Bereichs des Blogs unerreichbar.

Diagnose: PHP geht der zugeteilte Arbeitsspeicher aus.

Lösung: Auf einem eigenen Root-, Dedicated- oder Virtual-Server ist der Bugfix einfach – hier muss nur die zentrale Einstelldatei für PHP, die php.ini geändert werden und PHP etwas mehr Speicher zugewiesen werden. Auf einem Shared-Hosting-Server wie bei den Webhosting-Angeboten von 1und1 hat man jedoch meist keinen direkten Zugriff auf die php.ini. Hier hilft ein einfacher Kniff:

Man erstellt eine Textdatei mit dem Namen “php.ini” und dem folgenden Inhalt:

memory=20MB

Diese Datei legt man in den Ordner /wp-admin/ der eigenen WordPress-Installation.

Das wars! ;-)

 1 2 3 4 5 6 7 Nächste