IF YOU HAVE A PROBLEM WITH "LIBSTDC++.SO.5" ...
(This is a frequent-enough problem to merit discussion in the introduction.)
If you are reading this, it's probably because you tried to start your Linux
server and saw this message:
./cod_lnxded: error while loading shared libraries: libstdc++.so.5:
cannot open shared object file: No such file or directory
COD is a C++ program built with gcc 3.2.3, which means it needs a
system library specific to gcc 3.2. Older Linux systems won't have
this installed, and we're starting to see newer Linux distributions that
don't have this either, since they are supplying an incompatible
gcc 3.4 version. The good news is that you can drop the needed library
into your system without breaking anything else.
Here is the library you need, if your Linux distribution doesn't supply it:
http://icculus.org/updates/cod/gcc3-libs.tar.bz2
You want to unpack that somewhere that the dynamic linker will see it
(if you are sure it won't overwrite any files, you can even use /lib).
The brave can put it in the same directory as the game and run the server
like this:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ./cod_lnxded
Now the server will start.
2. Installation From Scratch
There are two server packages...a "small" and "large" version. The size
difference is because small version requires a program named xdelta.
The xdelta program is shipped with many Linux distros, and can be found
here: http://freshmeat.net/projects/xdelta/
The large version doesn't need xdelta.
- Get the retail Call of Duty(tm) discs.
- Copy the contents of Disc One's "Setup/Data" directory to wherever you
installed the Call of Duty(tm) Linux server. There should be a
"localization.txt" file in the root of this directory, and a "main"
subdirectory).
- Copy the contents of Disc Two's "Setup/Data" directory to your server
(should be just a "main" directory...add it to the contents of the
previous disc's "main").
- Alternately, you may install on Windows(r) and copy the installed game to
your Linux system, but many will opt to skip this step since the data
files are uncompressed and easily accessible on the discs. Final
installation size is around 1.2 gigabytes.
- Unpack this archive in the root of the newly-copied tree, so
"cod_lnxded" is in the same directory as "localization.txt" and
"game.mp.i386.so" is in the "main" directory, etc. This may overwrite some
files; this is normal.
- (If you have the "large" package, skip this step.) If you have the "small"
package, you now need to patch some files. The command line looks something
like:
cd /where/i/copied/callofduty
xdelta patch pak0.pk3.xdelta main/pak0.pk3 tmp.bin
mv tmp.bin main/pak0.pk3
...if this doesn't work, you should get the "large" package and
unpack it like you did the small package, and it'll give you the same
results. Either way, it's now safe to delete the pak0.pk3.xdelta file.
- Now, run the server:
cd /where/i/copied/callofduty
./cod_lnxded
- When you see "Started tty console (use +set ttycon 0 to disable)", the
server has started, but you need to start a map before the server will
accept connections. At this point, type:
map mp_chateau
("mp_chateau" being a given map's name).
- Now you should see your server in the in-game browser. You will now want to
customize your server, but that is beyond the scope of this document.
3. Upgrading an existing COD Linux server
This assumes you have a functioning COD server. You should be able to upgrade
from any previous version directly to 1.5.
If you aren't sure of your server's state, or want to be safe, you should
start with section 2 of this document ("INSTALLATION"), above, and ignore
this section.
There are two patch packages...a "small" and "large" version. The size
difference is because small version requires a program named xdelta.
The xdelta program is shipped with many Linux distros, and can be found
here: http://freshmeat.net/projects/xdelta/
The large version doesn't need xdelta.
- Shutdown your existing COD server if it is currently running.
- Make a backup of your existing COD server's directory, just in case.
- Remove any mods you've installed. Incompatible mods left in an upgraded
server are among the most frequent bug reports!
- Unpack this archive in the root of the newly-copied tree, so
"cod_lnxded" is in the same directory as "localization.txt" and
"game.mp.i386.so" is in the "main" directory. It may overwrite files; this
is normal.
- (If you have the "large" package, skip this step.) If you have the "small"
package, and haven't done so in previous patches, you now need to patch
pak0.pk3. This only needs to be done once! If you've done it for a previous
patch, attempting to do so again will fail!
The command line looks something like:
cd /where/i/copied/callofduty
xdelta patch pak0.pk3.xdelta main/pak0.pk3 tmp.bin
mv tmp.bin main/pak0.pk3
...if this doesn't work, you should get the "large" package and
unpack it like you did the small package, and it'll give you the same
results. Either way, it's now safe to delete the .xdelta file.
- Now the server can be restarted, and should function as before, except
with the new patch fixes and features. You should experiment with readding
your mods one by one to see if any are incompatible with the new patch.