| jens.hatlak.de | Über mich | ||||
| Atari | PHP | ||||
| Dreamweaver Manual | Linux | ||||
| Akronyme | Mozilla | Mozilla Dualboot | |||
| SciTE | Mozilla bauen | ||||
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 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:
XPINSTALLSCRIPTMOZBLOGFILEnxXmlRpcClient.js, die für MozBlog gebraucht
wird und von der Projektseite dieser Extension herunter geladen werden
kann.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.
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.
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
3. Oktober 2006 |