| 1 | ============================================================================ |
|---|
| 2 | Installation Guide to PennMUSH 1.8.x |
|---|
| 3 | ============================================================================ |
|---|
| 4 | This file explains how to install PennMUSH. It comes in three parts: |
|---|
| 5 | A. Important background |
|---|
| 6 | B. Installation from source (recommended) |
|---|
| 7 | C. Installation of precompiled binaries (only for Windows platforms) |
|---|
| 8 | |
|---|
| 9 | If you are upgrading from a previous PennMUSH release, this is |
|---|
| 10 | probably not the file you want to start with. Read the UPGRADING file |
|---|
| 11 | first. |
|---|
| 12 | |
|---|
| 13 | DISCLAIMER: Before attempting to run a MUD of any sort, you should |
|---|
| 14 | have some reasonable knowledge of UNIX and C. If you do not, it is |
|---|
| 15 | _strongly_ suggested that you learn UNIX and C to some reasonable |
|---|
| 16 | level of competency before attempting to set up a MUSH. (Note that |
|---|
| 17 | even people using the Windows ports are encouraged to know UNIX, |
|---|
| 18 | because that's the paradigm that PennMUSH was built with, and most |
|---|
| 19 | resources will be written with UNIX is mind.) |
|---|
| 20 | |
|---|
| 21 | You may also want to take a look at the Managing PennMUSH book at |
|---|
| 22 | http://community.pennmush.org and at Javelin's Guide for PennMUSH |
|---|
| 23 | Gods, at http://javelin.pennmush.org/~alansz/guide.html or by ftp from |
|---|
| 24 | pennmush.org, /pub/PennMUSH/Guide |
|---|
| 25 | ============================================================================ |
|---|
| 26 | |
|---|
| 27 | A. Important background |
|---|
| 28 | |
|---|
| 29 | Here's a quick picture of the organization of the MUSH directory tree. |
|---|
| 30 | The "src" directory contains C source code. The "hdrs" directory |
|---|
| 31 | contains header files for the source code. The files used by a |
|---|
| 32 | running MUSH are in the "game" directory, which includes |
|---|
| 33 | subdirectories "data" (current databases), "txt" (text files and |
|---|
| 34 | directories for building them), "log" (log files), and "save" (backup |
|---|
| 35 | databases). Finally, the "hints" directory is used during the |
|---|
| 36 | installation process, the "po" directory holds translation message |
|---|
| 37 | files. |
|---|
| 38 | |
|---|
| 39 | pennmush--+-> src |
|---|
| 40 | +-> hdrs |
|---|
| 41 | +-> game ------+-> data |
|---|
| 42 | | | |
|---|
| 43 | | +-> txt -------+-> nws |
|---|
| 44 | | | +-> evt |
|---|
| 45 | | | \-> hlp |
|---|
| 46 | | | |
|---|
| 47 | | +-> log |
|---|
| 48 | | \-> save |
|---|
| 49 | +-> hints |
|---|
| 50 | +-> po |
|---|
| 51 | +-> utils |
|---|
| 52 | \-> win32 |
|---|
| 53 | |
|---|
| 54 | |
|---|
| 55 | PennMUSH has been tested on a fairly wide variety of machines and |
|---|
| 56 | operating systems including at least: |
|---|
| 57 | |
|---|
| 58 | GNU/Linux, NetBSD, FreeBSD on many architectures |
|---|
| 59 | Mac OS X |
|---|
| 60 | Microsoft Windows |
|---|
| 61 | |
|---|
| 62 | There's no real reason why PennMUSH shouldn't compile on any 32-bit or |
|---|
| 63 | better BSD, System V, or POSIX operating system. Development is |
|---|
| 64 | primarily done on GNU/Linux and Mac OS X systems. |
|---|
| 65 | |
|---|
| 66 | Mac OS 9 and earlier ("Classic"), and OS/2 are not supported. |
|---|
| 67 | |
|---|
| 68 | ============================================================================ |
|---|
| 69 | |
|---|
| 70 | B. Installation from source |
|---|
| 71 | |
|---|
| 72 | The quickstart version of the installation is: |
|---|
| 73 | |
|---|
| 74 | 1a. On win32 only, install proper tools or read win32/README*. |
|---|
| 75 | 1b. On Unix systems, you need: A C compiler, perl, the minimum |
|---|
| 76 | development packages required to compile programs (Linux |
|---|
| 77 | distributions that don't come with gcc in the base install often |
|---|
| 78 | need a package named glibc-dev) |
|---|
| 79 | 1c. A version of the PCRE regular expression library managed by your |
|---|
| 80 | OS's package manager is highly recommended. Penn comes with an |
|---|
| 81 | older version, but a global library will be more likely to be up |
|---|
| 82 | to date and can be shared among many different programs that use |
|---|
| 83 | it. |
|---|
| 84 | 1d. OpenSSL is also a strongly suggested library; most OSes these days |
|---|
| 85 | come with it out of the box, but some might require a development |
|---|
| 86 | package as well (openssl-dev or some such name). |
|---|
| 87 | 2. Run ./configure or some variant |
|---|
| 88 | 3. create options.h, or make update |
|---|
| 89 | 4. make install |
|---|
| 90 | 5. possibly make customize |
|---|
| 91 | 6. Read game/README and follow those instructions |
|---|
| 92 | |
|---|
| 93 | Here's the process in detail: |
|---|
| 94 | |
|---|
| 95 | 1. If you're running on win32, read one of the win32/README* files |
|---|
| 96 | for information on how to compile with various compilers. |
|---|
| 97 | |
|---|
| 98 | 2. On Unix systems, unpack the code and: |
|---|
| 99 | % cd pennmush |
|---|
| 100 | % ./configure |
|---|
| 101 | |
|---|
| 102 | Useful arguments to configure: |
|---|
| 103 | a. --disable-sql: Don't compile in SQL support. See README.SQL for more sql-related |
|---|
| 104 | config options. |
|---|
| 105 | b. --disable-nls: Turn off translation support if you don't need it. |
|---|
| 106 | c. --disable-info_slave: Don't use an external process to do hostname |
|---|
| 107 | lookups. This option is required on Windows. |
|---|
| 108 | c. --help: See all options. |
|---|
| 109 | |
|---|
| 110 | Environment variables to customize search paths: |
|---|
| 111 | CPPFLAGS=-I/path/to/extra/headers |
|---|
| 112 | LDFLAGS=-L/path/to/extra/libraries |
|---|
| 113 | CFLAGS=-Optimation and -Warning options. |
|---|
| 114 | |
|---|
| 115 | VAR=arg ... ./configure |
|---|
| 116 | |
|---|
| 117 | See hints/your-os.txt and hints/your-processor if present for |
|---|
| 118 | more details and system-specific help, and README.SQL for help |
|---|
| 119 | with detecting a SQL server. |
|---|
| 120 | |
|---|
| 121 | |
|---|
| 122 | 3. EITHER: |
|---|
| 123 | |
|---|
| 124 | Type 'make update', and answer all the questions about which MUSH |
|---|
| 125 | options you want. |
|---|
| 126 | |
|---|
| 127 | OR |
|---|
| 128 | |
|---|
| 129 | Copy options.h.dist to options.h. Note that these files stay in the |
|---|
| 130 | pennmush directory. |
|---|
| 131 | |
|---|
| 132 | Edit the file. It's liberally commented. |
|---|
| 133 | |
|---|
| 134 | Also, cp game/mushcnf.dst to game/mush.cnf and edit. |
|---|
| 135 | |
|---|
| 136 | |
|---|
| 137 | You should not need to change any of the other header files. |
|---|
| 138 | |
|---|
| 139 | 4. Do a "make install". This will build all the necessary files, and |
|---|
| 140 | set up some symbolic links for the restart script. You will probably |
|---|
| 141 | receive a few compilation warnings, which can generally be ignored. |
|---|
| 142 | |
|---|
| 143 | 5. If you plan to run multiple MUSHes, you may want to do a "make |
|---|
| 144 | customize" which will run a script to help set up a separate |
|---|
| 145 | customized game subdirectory for each MUSH (run it once per MUSH you |
|---|
| 146 | plan to run). Files in these subdirectories will already be |
|---|
| 147 | customized in many ways, so what follows may be slightly different. :) |
|---|
| 148 | This is probably broken. |
|---|
| 149 | |
|---|
| 150 | 6. Read game/README and follow those instructions. |
|---|
| 151 | |
|---|
| 152 | A final thing you may want to think about is compiling announce.c or |
|---|
| 153 | portmsg.c. These are port announcers; if your MUSH ever goes down, you |
|---|
| 154 | can set one up, and a message will be given to a person attempting to |
|---|
| 155 | connect to that port. Read that file for details. It is not an |
|---|
| 156 | official MUSH piece of code; rather, it is a freely distributable |
|---|
| 157 | program available via anonymous FTP that is included in this code |
|---|
| 158 | because it happens to be fairly useful. Javelin suggests using |
|---|
| 159 | portmsg - it appears to be more stable. |
|---|
| 160 | |
|---|
| 161 | ============================================================================ |
|---|
| 162 | |
|---|
| 163 | C. Installation of precompiled binaries (only for Windows platforms) |
|---|
| 164 | |
|---|
| 165 | A pre-built binary is frequently available for win32 users who don't |
|---|
| 166 | want to customize their MUSH server, and don't feel like compiling it |
|---|
| 167 | themselves. This binary distribution may not contain the src, hdrs, |
|---|
| 168 | or hints directories and may be missing several key files (like |
|---|
| 169 | Configure) from the pennmush directory. It does include the options.h |
|---|
| 170 | that it was built with, as an aid to those who decide later that they |
|---|
| 171 | want to customize the server; they are useful as a baseline to work |
|---|
| 172 | from. |
|---|
| 173 | |
|---|
| 174 | Using the pre-built binary is fairly simple; adjust your configuration |
|---|
| 175 | file as in game/README, then go to the game directory and run |
|---|
| 176 | PennMUSH.exe (you may need to use PennMUSH /run or PennMUSH /start). |
|---|
| 177 | Alternately, if you want the MUSH to automatically start each time you |
|---|
| 178 | turn on your machine, you can install it as a system service by |
|---|
| 179 | running 'PennMUSH /install'. PennMUSH can be removed from service |
|---|
| 180 | status via 'PennMUSH /remove'. |
|---|