De:Installing Sphere
Contents
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
- Übersetzung läuft noch --Sco 07:58, 23 November 2010 (UTC)
Start by downloading Sphere. See the Where to get Sphere page for download links. You should end up with two different zip files, one containing the Sphere executable and the other containing the Script Pack.
- Extract the SphereServer-0.56b-xxxxxxxxxxxx-Win32.zip file to wherever you want to run it from. I would recommend "c:\sphere"
- Extract SphereServer-0.56b-xxxxxxxxxxxx-Scripts.zip to the directory where you previously extracted the file in the previous step. Now you should have the directory scripts in "c:\sphere".
- Create three new folders, one named "accounts", another called "logs", and the third one called "save".
- Now, go to your "save" folder, recently created. And create an empty text file (I recommend using the Start Menu to access Notepad instead of "Right Click => New"). Write an empty line and add "[EOF]" in the second one. Save the file as "spheredata.SCP" (not .txt).
- Copy this file three times an rename them as: spherestatics, spherechars.scp and sphereworld.scp
- Go to the "accounts" folder that you created alongside the "save" folder, and do the same as Step 3 and 4, but name the files: "sphereacct.scp" and "sphereaccu.scp"
- Download the MySQL Library and place it into your Sphere Folder (remember: "c:\sphere").
- Now, configure your sphere.ini. This is a must before running Sphere for the first time!
- Double Click on SphereSvr.exe to launch the Console. This black window is your server console from which you can enter commands.
- Create an Account for yourself. In the console, type in "account add USERNAME PASSWORD". With whatever username and password you want. Then, type in "account USERNAME plevel 7" to grant your account Owner privileges.
Now you can go around your map and explore some parts of it. You can use the navigation bar on the left to read various tutorials to learn how to script and learn something about Sphere. After that, read the other articles and check the reference compendium if you need something special.
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.