Installing PennMUSH on Unix
This page contains instructions for installing a new copy of PennMUSH in Unix (or under Cygwin/Mingw on Windows). If you're upgrading an existing installation, or compiling with MSVC++/MS VS.NET on Windows, see the relevant pages for more info.
To install PennMUSH, you'll need:
- A C compiler
- Perl
- The minimum development packages required to compile programs (Linux distributions that don't come with gcc in the base install often need a package named glibc-dev)
- The PCRE library and dev files (libpcre, libpcre-dev). On FreeBSD,
pkg install pcre
- OpenSSL, and dev files (openssl, openssl-dev). On FreeBSD,
pkg install openssl
When installing using Cygwin on Windows, you'll need the following packages (and their dependancies), as well as the default packages included in Cygwin:
- binutils
- gcc-core
- libcrypt-devel
- make
- openssl
- openssl-devel
- perl
- bash
- gnupg
- patch
- pcre
- libpcre1
- libpcre-devel
- gettext-devel (if running a translated copy)
- git (if you want to Install PennMUSH from GIT)
- ed (if you want @config/save)
This is a brief overview of how to install PennMUSH on Unix, or in Unix-like environments (like Cygwin or Mingw on Windows). More detailed instructions are below.
- Download PennMUSH and extract the archive, or Clone PennMUSH's GIT repository
- cd to the new PennMUSH directory
- Run
./configure
or some variant- Under Cygwin, use
./configure --disable-info_slave --disable-ipv6
- On FreeBSD, you may need to use
env CFLAGS="-I/usr/local/include -L/usr/local/lib" ./configure
- Under Cygwin, use
- Run
make update
, to create or update the *.cnf option files from the *cnf.dst files - Run
make install
- Set the MUSH options in mush.cnf
- Edit the
GAMEDIR
line in the restart script, if necessary
and extract the archive, or Clone PennMUSH's GIT repository
- Download PennMUSH. On most linux systems you can do this with wget, for instance:
`wget http://download.pennmush.org/Source/pennmush-1.8.5p6.tar.gz`
You can also check out the latest source from [GIT](https://github.com/pennmush/pennmush/wiki/Get-PennMUSH-from-GIT).
- If you're using a download, not a GIT clone, extract the archive. For example,
tar xfz pennmush-1.8.5p6.tar.gz
- cd to the new directory:
cd pennmush-1.8.5p6
- Run
./configure
. Some of the most useful/common arguments for configure are: *--disable-sql
: Don't compile with SQL support. *--disable-nsl
: Turn of translation if you don't need it. *--disable-info_slave
: Don't use an external process to do hostname lookups. This option is required on Windows. *--help
: See all options.
Environment variables to customize search paths:
CPPFLAGS=-I/path/to/extra/headers LDFLAGS=-L/path/to/extra/libraries CFLAGS=-Optimization and -Warning options. VAR=arg ... ./configure
See hints/your-os.txt and hints/your-processor if present for more details and system-specific help, and Installing with SQL Support for help with detecting an SQL server.
- Run
make update
. * Ifmake update
doesn't work on your system, you can manually copy all the game/*cnf.dst files to game/*.cnf - Do a
make install
. This will build all the necessary files, and set up some symbolic links for the restart script. You may receive a few compilation warnings, which can generally be ignored. - Set the MUSH options in mush.cnf
You should then be able to restart the game, with
cd game
./restart
If you get an error that GAMEDIR doesn't seem to be a valid directory, edit the game/restart script, placing the path to your game directory on the GAMEDIR line, for example
GAMEDIR=/home/usr/pennmush-1.8.5p6/game
For the truly brave, you can compile Penn with clang+asan to catch memory errors. To do so
- Install clang 3.1 or higher. Packages for Debian/Ubuntu can be found at http://llvm.org/apt/.
$ CC=clang CFLAGS="-g -fsanitize=address -O1 -fno-inline" ./configure
-
$ make && make install
and then run Penn as you normally do.