(But should work on other more inferior operating systems.). For security reasons, latex usually can not write files where ever it wants. However, I have some complicated macro packages (used for my book) that uses writing of files all over the place. To overcome this, you need to change the texlive configuration in the user level, and let the system know about it. Fun fun fun.
1. Create ~/.texmf-config/web2c/texmf.cnf (but, really, where else can it be?), and put in it:
openout_any = a
openin_any = a
Let the system know where configuration file is. That is, in your .login/.cshrc/.whatever starts, you need to define:
The : in the end of the line is very important – it tell latex to read the global configuration files…
You should be good to go till the next total configuration change in texlive.