makefiles, permissions, compiling MUDs


I have only ever had books to learn from, so my knowledge is rather spotty. I was trying to find a MUD codebase that could be compiled with gcc through the terminal and finally lit on Richard Woolcock's Gladiator, which was a runner-up in the 16k MUD contest, so it's very simple. None of the major ones like ROM or ROT worked, and that was usually a problem with make, if my memory is correct. The original version of Glad worked for awhile, but I tried a newer version of the code and now the terminal is denying me permission when I try and start the process. It worked once, but asked me to log on as root before it would start. I've tried re-starting, returning to the original code, etc, and the only thing that seems to work is re-compiling, which is only a temporary fix. The odd thing is that I'm having problems with 1.0 now only after I compiled and ran 2.0 for the first time. I was even able to alter 1.0 quite a bit before the compiler reported a parsing error that stumped me.

Apple's development package docs don't mention the makefile but once, I have the GNU documentation for make, but haven't found anything specifically about starting processes, and I know very little about the command-line.

As long as you've read this far, I would like to find a practical book for beginning programmers about the most general trouble-shooting, problem-solving, and methodology, if any of you know of such a thing. Any other advice for a beginner would be greatly appreciated.
Regarding working from a command line, any good UNIX tutorial should be helpful, especially the use of permissions (take a look at the chmod manpage).

As far as general trouble-shooting is concerned, fixing someone else's programs, porting, and similar matters require deep knowledge of both the original systems, as well as the systems to which an application is being ported. I am afraid, there is no quick and easy way about it. Likewise, the knowledge is not really readily available, and is usually gained through experience and trial and error.