jens.hatlak.de / Über mich    
Atari   PHP    
Dreamweaver Manual   Linux    
Akronyme   Mozilla / Mozilla Dualboot  
  SciTE   Mozilla bauen  
This page in English This page
in English
  FASTA-Parser   Mozilla installieren  
Ich spreche...   Bookmark Indicator  
    Custom Buttons  
    MailNews Status Icons  

Do you prefer reading pages in English? This page is also available in English.

Mozilla installieren

Mozilla Logo Mozilla zu bauen ist eine Sache. Benutzen ist auch einfach. Installieren auch? Meint man vielleicht auf den ersten Blick. Für den durchschnittlichen Benutzer mag das auch gelten, aber wer ein paar Extensions benutzt und das vielleicht auch noch unter Linux oder einem Unix-Derivat, wird schnell fest stellen, dass es doch nicht ganz so einfach ist und v.a. recht aufwändig ist.

Folgendes Installationsskript, das als root mit X-Zugriff ausgeführt werden sollte, richtet einen selbst gebauten oder anderwertig korrekt installierten SeaMonkey fertig ein, d.h. für alle Benutzer im System:

#!/bin/sh
XPINSTALLSCRIPT=/home/moz/installxpis.html
MOZBLOGFILE=/home/moz/nsXmlRpcClient.js

MOZDIR=`seamonkey-config --libs | sed s/-L//`
[ -z $MOZDIR ] || [ ! -d $MOZDIR ] && echo "Not a directory: $MOZDIR" && exit 1
MOZILLA_FIVE_HOME=$MOZDIR
LD_LIBRARY_PATH=$MOZDIR:$LD_LIBRARY_PATH
export MOZILLA_FIVE_HOME LD_LIBRARY_PATH
cd $MOZDIR
echo ""
echo "Starting SeaMonkey now..."
echo ""
./seamonkey-bin $XPINSTALLSCRIPT
echo ""
echo "Setting up plugins now..."
echo ""
chmod a+x components/
cd $MOZDIR/plugins
ln -s /usr/lib/mozilla/plugins/* .
ln -s /usr/java/jre/plugin/i386/ns610-gcc32/libjavaplugin_oji.so
cd ..
[ -f $MOZBLOGFILE ] && cp $MOZBLOGFILE components
./regxpcom
./regchrome
chmod -fR o+r *
echo ""
echo "Done."
echo ""

In den ersten beiden Zeilen sind zwei Dateien angegeben:

Ferner werden alle Plugins aus /usr/lib/mozilla/plugins, wo sich die Mozilla-Plugins befinden, die über Debian-Pakete installiert wurden, per Symlink eingebunden und das Java-Plugin aus /usr/java/jre — wer hier andere Pfade benutzt, muss diese hier anpassen oder die entsprechenden Zeilen auskommentieren.

XPI-Installationsskript

Mit folgendem Installationsskript kann man auf einfache Weise lokal gespeicherte XPIs installieren. Leider bieten nicht alle Projektseiten direkte Downloads ihrer XPIs an, die mittels Umschalt-Klick abgespeichert werden können. In solchen Fällen muss man eben den Quelltext der Installationsseite durchforsten, ggf. den Pfad zum Herunterladen selbst zusammenbauen und einem Downloadprogramm wie wget händisch übergeben.

Die zu installierenden XPIs werden im selben Verzeichnis wie die XPI-Installationsdatei (das folgende Skript) erwartet, können sich aber relativ dazu auch in Unterverzeichnissen befinden.

Wichtig zu wissen ist, dass auf diese Weise nur richtige XPIs installiert werden können, keine JARs, wie sie etwa manche Theme-Autoren anbieten (Theme-XPIs sind aber kein Problem). Mit ein wenig Wissen über den Aufbau von XPIs kann man aber meist recht leicht aus einem Theme-JAR ein fertiges, hiermit installierbares XPI bauen. Wer hier Hilfe braucht, kann mich gerne kontaktieren.

Dummerweise gibt es keinen eindeutigen Weg, eine globale Installation bestimmter Extensions zu erzwingen. Daher muss man bei jeder einzelnen Abfrage genau aufpassen, ob nun der OK- oder der Cancel-Button eine globale Installation ("in browser root", "in application directory", ...) veranlasst. Meine Empfehlung: Zur Installation ein Test-Profile benutzen (SeaMonkey ggf. mit Parameter -ProfileManager aufrufen). Wenn man dann mal versehentlich eine Extension ins Profile installieren lässt, kann man einfach das Test-Profile löschen. Aber Vorsicht! Auch ich habe schon mehr als einmal versehentlich das falsche Profile gelöscht! Bei mir war das nur nicht so schlimm, da ich SeaMonkey im Dualboot-Betrieb verwende und mir das immer nur unter Linux passiert ist... Man kann aber auch, wie ich es unter Windows mache, nur ein Profile verwenden und bei versehentlichen Installationen ins Profile einfach alles im chrome-Verzeichnis des betreffenden Profiles löschen. SeaMonkey stellt alles nötige, wie die chrome.rdf, automatisch wieder her.

<html>
<head>
<title>Install XPIs</title>
<script language="JavaScript" type="text/javascript">
<!--//
function registerIt() {
  var XPIs = new Array();
  XPIs['MyExtension1'] = 'extension1.xpi';
  XPIs['MyExtension2'] = 'subdir/extension2.xpi';
  // ...

  if (navigator.userAgent.match(/Linux/)) {
    XPIs['MyLinuxExtension'] = 'linuxextension1.xpi';
    // ...
  } else {
    // not actually Windows in case you're using other OSs
    XPIs['MyWindowsExtension'] = 'windowsextension1.xpi';
    // ...
  }

  // Install at last: MultiZilla
  XPIs['GoogleBox'] = 'googlebox.xpi';
  XPIs['MultiZilla'] = 'multiviews.xpi';

  InstallTrigger.install(XPIs);
  document.open();
  document.write("<h2>When installation completes, exit SeaMonkey to proceed.</h2>");
  document.close();
}
//-->
</script>
</head>

<body>
<h3>Registering XPIs...</h3>
<button onClick="registerIt()">Install!</button>
</body>
</html>

Wie man oben sieht, werden Googlebox und MultiZilla zuletzt installiert. Dieses Vorgehen geht einfach auf Erfahrungen damit zurück, bei denen ein Installieren anderer Extensions nach MultiZilla Probleme machte. Ob dies immer noch so ist, weiß ich nicht, aber Nachteile hat obiges Verfahren sicher nicht.

Kleiner Tipp noch, falls eine Extension mal das Profile kaputt machen sollte: Oft hilft das Löschen von chrome/*, XUL.* und localstore.rdf (werden alle automatisch wieder hergestellt).
Löscht man letztere, gehen bestimmte Einstellungen wie Fenstergrößen und -platzierungen verloren, aber das kann man ja gerade noch verschmerzen. Viel wichtiger ist, dass die prefs.js intakt bleibt — aber das wissen auch die Mozilla-Entwickler und lassen deshalb automatisch ein Backup (prefs.bak) anlegen.

Startskript

Mit folgendem Startskript löst man zwei Probleme, das das originale, mitgelieferte hat: Zum einen benutzt es einen bereits laufenden SeaMonkey und öffnet übergebene Adressen in einem neuen Tab, zum anderen startet es den Browser über aRts, den KDE-Sounddaemon, sodass das Abspielen von Sounds wie dem beim Eingang neuer Mails auch im Zusammenspiel mit anderen Applikationen funktioniert.

Im Folgenden wird das SeaMonkey-Verzeichnis über MOZILLA_FIVE_HOME gesetzt. Dieser Pfad kann je nach Installation variieren, besonders die Versionsnummer.

#!/bin/bash
export MOZILLA_FIVE_HOME=/usr/local/lib/seamonkey-1.5a
export LD_LIBRARY_PATH=$MOZILLA_FIVE_HOME:$LD_LIBRARY_PATH
cd $MOZILLA_FIVE_HOME
moz_bin="$MOZILLA_FIVE_HOME/seamonkey-bin"
if ! ps -f -u $(whoami) | grep -v grep | grep seamonkey-bin 1>/dev/null 2>&1; then
  exec aoss $moz_bin "$@"
else
  case $1 in
  -*)
    exec $moz_bin "$@"
    ;;
  *)
    exec $moz_bin -remote "openURL($@,new-tab)"
    ;;
  esac
fi

Folgendes bash-Skript erstellt abhängig vom gebauten SeaMonkey jeweils passenden Code und nennt das resultierende Skript run-seamonkey. Aufgerufen werden sollte es als root in dem Verzeichnis, in dem der CVS-Checkout gemacht wurde.

MOZVER=`grep '#define MOZILLA_VERSION ' obj-*/mozilla-config.h \
| awk '{print $3}' | sed -e 's/"//g'`

cat > /usr/local/bin/run-seamonkey << EOT
#!/bin/bash
export MOZILLA_FIVE_HOME=/usr/local/lib/seamonkey-$MOZVER
export LD_LIBRARY_PATH=\$MOZILLA_FIVE_HOME:\$LD_LIBRARY_PATH
cd \$MOZILLA_FIVE_HOME
moz_bin="\$MOZILLA_FIVE_HOME/seamonkey-bin"
if ! ps -f -u \$(whoami) | grep -v grep | grep seamonkey-bin 1>/dev/null 2>&1; then
  exec aoss \$moz_bin "\$@"
else
  case \$1 in
  -*)
    exec \$moz_bin "\$@"
    ;;
  *)
    exec \$moz_bin -remote "openURL(\$@,new-tab)"
    ;;
  esac
fi
EOT
chmod a+x /usr/local/bin/run-seamonkey

 

Valid HTML 4.0!
Jens Hatlak
3. Oktober 2006