De:Installing Sphere

From SphereWiki
Revision as of 00:50, 24 November 2010 by Sco (talk | contribs)
Jump to: navigation, search

Linux

Vorwort

Sphere auf einem Linuxsystem zu installieren, ist nicht viel schwieriger als auf einem Windowsrechner. Allerdings ist Basiswissen über Linux vorausgesetzt und ein wenig Erfahrung mit der Kommandozeile von Nöten, da hier nicht einfach auf ein Symbol geklickt wird und Sphere läuft.


Diese Anleitung ist deshalb darauf ausgelegt, dass eine Shell oder ein Terminal zum Linuxsystem verfügbar ist und root-Rechte vorhanden sind.


Letztendlich wird diese Anleitung nicht beinhalten, welche Dateien auf dem Linux Server verfügbar sein müssen. Diese Anleitung umfasst keine Einführung in Linuxsysteme und hat auch keinen Anspruch darauf, dies zu sein. Für weiterführende Informationen über Linux gibt es viele E-Books und Howtos, die frei im Web verfügbar sind. Beispielsweise ist hier ein guter Startpunkt: http://www.linux.org


Wichtig ist aber vor allem folgendes: Anders als ein Windowssystem, ist Linux bezüglich Datei- und Ordnernamen die Groß- und Kleinschreibung zu beachten. Wenn eine Datei von Sphere nicht gefunden wird, liegt das möglicherweise daran, dass gewisse Dateien falsch geschrieben sind, wie bspw: "sphere.INI" anstelle von "sphere.ini".


Alle Zeilen, die in dieser Anleitung kursiv sind, sollten direkt in das Terminal eingegeben werden.


Vorbereitungens

Auf dem Linuxsystem wird eine Installation des MySQL Clients benötigt. Fehlen die Bibliotheken des MySQL Clients, wird Sphere nicht ausführbar sein.


Des Weiteren wird ein Sphere Version FÜR LINUX benötigt, sowie das passende Skriptpaket und eventuelle zusätzliche Bibliotheken, die in der Downloadsektion angegeben sind.


Schritt für Schritt Installation

1) Mit Rootrechten einen neuen Nutzer namens "sphere" anlegen. Dieser Nutzer benötigt ein eigenen Heimverzeichnis (meistens: /home/sphere) mit den entsprechenden Rechten.


useradd -d /home/sphere sphere
mkdir /home/sphere
chown sphere /home/sphere
chmod 700 /home/sphere


2) Kopiere alle Dateien des Sphere LINUX downloads, das Skriptpaket und eventuell nötige Bibliotheken in das neu angelegte Verzeichnis. Zudem müssen Unterordner angelegt werden: "save", "logs" und "accounts", wie angegeben in der sphere.ini und in spheretables.scp. Am Ende sollte eine ähnliche Ordnerstruktur vorliegen:


/home/sphere --- spheresvr
              |  sphere.ini
              |  sphereCrypt.ini
          |-------------------- accounts/
          |-------------------- logs/
          |-------------------- muls/
          |-------------------- save/
          |-------------------- scripts/


3) Nachdem alle Dateien an die richtige Stelle kopiert wurden, benötigen sie die richtigen Dateirechte. Deshalb weiterhin unter Rootrechten folgende Befehle ausführen:


cd ~sphere
chown -R sphere *
find . -type d | xargs chmod 0700
find . -type f | xargs chmod 0600
chmod 4700 spheresvr


4) Immer noch unter Rootrechten:


ldd spheresvr


Die Ausgabe sollte nun ungefähr so lauten:


longbow:/home/sphere# ldd spheresvr
libpthread.so.0 => /lib/libpthread.so.0 (0x4001f000)
libmysqlclient.so.15 => /usr/lib/libmysqlclient.so.15 (0x40071000)
libboost_regex-gcc-1_33_1.so => /usr/lib/libboost_regex-gcc-1_33_1.so (0x40243000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x402ea000)
libm.so.6 => /lib/libm.so.6 (0x403c9000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x403ef000)
libc.so.6 => /lib/libc.so.6 (0x403fa000)
/lib/ld-linux.so.2 (0x40000000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4051c000)
libnsl.so.1 => /lib/libnsl.so.1 (0x4054a000)
libz.so.1 => /usr/lib/libz.so.1 (0x40561000)


NACH FEHLENDEN BIBLIOTHEKEN AUSSCHAU HALTEN! Notfalls müssen diese nachinstalliert werden.

Die Installation testen

Es ist jetzt nicht mehr von Belang, ob der erste Test mit Rootrechten oder unter dem Benutzer sphere ausgeführt wird. Werden die Rechte der Datei auf 4700 gesetzt, wird Sphere automatisch immer unter dem benutzer sphere ausgeführt. Deshalb:

cd ~sphere
./spheresvr


Es sollte nun eine Liste des Startups folgen ... mit vielleicht enthaltenen Warnings:


longbow:/home/sphere# ./spheresvr
WARNING:(sphere.ini,587)'scripts/spherestatusbase.html' not found...
ERROR:(sphere.ini,587)Can't open web page input 'spherestatusbase1.htm'
Sphere Version 0.56b [Linux] by www.sphereserver.com, compiled at Sep 15 2006 (23:23:07)
Signal handlers installed.
Expansion maps supported: T2A, LBR, AOS, SE, ML
ERROR:(spheretables.scp,59)Unable to open directory scripts/custom/
ERROR:(spheretables.scp,59)DirList=-1 for 'scripts/custom/'
Allocating map sectors: 0=7168 1=7168 2=900 3=1280 4=32761
Indexing 211 scripts...
Loading scripts/sphere_defs.scp
[...]


Warnings und Fehler über fehlende Webseiten können ignoriert werden. Falls allerdings andere Fehler auftreten oder Sphere terminiert (=sich beendet), dann sollte in den vorhergehenden Zeilen nach dem Grund gesucht werden.


Letztendlich sollten folgende Meldungen auftauchen, falls alles gut lief:


[...]
Loading save/spheredata...
Loading save/spherestatics...
Loading save/sphereworld...
Loading save/spherechars...
166 Objects accounted for
Option flags: CommandSysmsgs + NoHouseMuteSpeech
Experimental flags: DiagonalWalkCheck + ScriptsReturnStrings + NewTriggersEnable + NewPositionChecks + WalkCheck + ScriptProfiler + SizeOptimize
Admin=me@my.email.com, URL=www.myshard.com, Lang=English, TZ=0
Startup complete. items=0, chars=0
Creating thread.

Danach befindet man sich in der Sphere Konsole und kann allgemeine Befehle absetzen ('?' gibt eine Liste aus). Lege einen Account an, aktiviert ihn, editier die login.cfg des Ultima Online Clients damit er die IP-Adresse des Servers enthält und log ein.


Damit Sphere wieder heruntergefahren wird, ist zunächst der Befehl "S", gefolgt vom Befehl "X" notwendig. Linux wird dann versuchen, Sphere zu beenden - sollte das aus irgendeinem Grund nicht funktionieren, hilft die Tastenkombination STRG-c weiter.

Einen Liveshard aufsetzen

Sphere in einem Terminal laufen zu lassen hat einen Nachteil: schließt man dieses Terminal, beendet Linux auch Sphere. Das ist unter Linuxsystemen beabsichtigt, weil es ein Multiusersystem ist. Das bedeutet vor allem, dass bei jedem Logout eines Nutzers auch unbedingt all seine laufenden Prozesse beendet werden sollten.


Natürlich ist es aber dennoch möglich, Prozesse im Hintergrund laufen zu lassen, selbst wenn Terminal oder Shell geschlossen werden. Hierfür bietet sich ein Skript an, das ein Tool namens 'screen' nutzt (notfalls nachinstallieren):


#!/bin/sh
cd ~sphere
while true; do
screen -D -m /home/sphere/spheresvr
sleep 30
done


Dieses Skript kann in jedem beliebigen Editor abgespeichert werden und sollte möglichst die Dateiendung .sh erhalten. Wird das Skript ausgeführt, startet sich Sphere in einem virtuellen Terminal, das jederzeit mit "screen -r "abgerufen werden kann. Mit der Tastenkombination STRG-a gefolgt von STRG-d kann man dieses Terminal jederzeit wieder verlassen und es läuft im Hintergrund weiter. In der Dokumentation von "screen" finden sich weitere Informationen.

Windows

Als erstes sollte Sphere hier heruntergeladen werden: Sphere Download. Man sollte danach mindestestens zwei verschiedene zip Dateien erhalten haben, eins für den SphereServer und eins mit dem Script Paket.

  1. Entpacke SphereServer-0.56b....zip in einen Ordner bspw. nach "c:\sphere"
  2. Entpacke SphereServer-0.56b-xxxxxxxxxxxx-Scripts.zip Ordner aus Schritt 1. Es sollte nun "c:\sphere" ein Ordner namens "scripts" vorhanden sein.
  3. Erstelle in diesem Ordner drei weitere Unterordner: "accounts", "logs" und "save".
  4. Im "save" Ordner, erstelle eine leere Textdatei (bspw. mit dem Windows Notepad) und schreibe in diese Datei eine einzelne Zeile, in der [EOF] steht. Benenne diese Datei dann "spheredata.SCP" (NICHT .txt).
  5. Erstelle drei Kopien dieser Datei und benenne sie: spherestatics, spherechars.scp und sphereworld.scp
  6. Wiederhole das dann im "accounts" Ordner und erstelle die Dateien: "sphereacct.scp" und "sphereaccu.scp"
  7. Lade dir dann MySQL Library und kopiere sie in den Sphere Ordner (bspw.: "c:\sphere").
  8. Nun sollte die Sphere.ini bearbeitet werden, der SphereServer wird sonst nicht starten.
  9. Doppelklicke dann SphereSvr.exe und dann wird die Konsole starten. In diesem Fenster können administrative Befehle abgesetzt werden (eine Liste dieser Befehle gibts mit Eingabe von "?").
  10. Erstelle einen ersten Account auf dem Server. Führe deshalb folgende Befehle der Reihe nach aus und setze dabei einen passenden Nutzernamen und ein passenden Passwort ein:
    • "account add USERNAME PASSWORD"
    • "account USERNAME plevel 7" (dieser Befehl gibt dem Account GM-Rechte).


Der Server ist nun bereit und man kann sich mit einem UO Client einloggen. Es empfiehlt sich die Tutorials innerhalb dieses Wikis zu lesen, um ein wenig mehr über Sphere zu erfahren.

FreeBSD

We currently have no guide for this OS. Anyway, the developers have posted a list of required stuff. Here is the list:


Compiled on:


FreeBSD freebsdvbox.fastwebnet.it 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386


With:

Using built-in specs.
Target: i386-portbld-freebsd7.0
Configured with: ./..//gcc-4.1-20071105/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=41 --libdir=/usr/local/lib/gcc-4.1.3 --with-gxx-include-dir=/usr/local/lib/gcc-4.1.3/include/c++/ --disable-rpath --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/gcc41 i386-portbld-freebsd7.0
Thread model: posix
gcc version 4.1.3 20071105 (prerelease)


Linked Against:


libthr.so.3 => /lib/libthr.so.3 (0x281f3000)
libmysqlclient.so.15 => /usr/local/lib/mysql/libmysqlclient.so.15 (0x28206000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x28265000)
libm.so.5 => /lib/libm.so.5 (0x2835a000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2836f000)
libc.so.7 => /lib/libc.so.7 (0x2837a000)
libcrypt.so.4 => /lib/libcrypt.so.4 (0x28476000)
libz.so.4 => /lib/libz.so.4 (0x2848f000)


If you use this release, please check this topic.

Help
Available languages