Skip to content

Installing PennMUSH on Unix

Mike Griffiths edited this page Sep 27, 2018 · 10 revisions

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.

Requirements

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)

Overview

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.

  1. Download PennMUSH and extract the archive, or Clone PennMUSH's GIT repository
  2. cd to the new PennMUSH directory
  3. 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
  4. Run make update, to create or update the *.cnf option files from the *cnf.dst files
  5. Run make install
  6. Set the MUSH options in mush.cnf
  7. Edit the GAMEDIR line in the restart script, if necessary

Detailed Instructions

and extract the archive, or Clone PennMUSH's GIT repository

  1. 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).
  1. If you're using a download, not a GIT clone, extract the archive. For example, tar xfz pennmush-1.8.5p6.tar.gz
  2. cd to the new directory: cd pennmush-1.8.5p6
  3. 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.

  1. Run make update. * If make update doesn't work on your system, you can manually copy all the game/*cnf.dst files to game/*.cnf
  2. 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.
  3. 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

Miscellaneous

For the truly brave, you can compile Penn with clang+asan to catch memory errors. To do so

  1. Install clang 3.1 or higher. Packages for Debian/Ubuntu can be found at http://llvm.org/apt/.
  2. $ CC=clang CFLAGS="-g -fsanitize=address -O1 -fno-inline" ./configure
  3. $ make && make install and then run Penn as you normally do.