Friday, January 31, 2014

Eclipse error message "can't create package cachedir"

After looking around for the best solution, I was a little disappointed. The two suggestions out there were:


  1. Make the relevant cachedir world writable.
  2. Setting python.cachedir.skip = true


Making directories world writable admittedly makes the problem "go away", however, it introduces a huge security hole.

Setting the cachedir to skip would presumably result in a performance drop (why implement a caching scheme other than to improve performace).

Instead I did the following:

I created a new group (in my case eclipse, but it could have been jpython). I added the users of jpython to that group.

$ sudo groupadd eclipse
I then changed the group of my eclipse plugins folder and its children to 'eclipse'.

/opt/eclipse/plugins $ sudo chgrp -R eclipse *

Then I changed the group permissions as follows

/opt/eclipse/plugins $ sudo chmod -R g+w *
/opt/eclipse/plugins $ find * -type d -print | sudo xargs chmod g+s

This added group writable, and set the S_GID bit on all directories recursively. This last bit causes new directories created to have the same group id as their parent.

The final touch was change the umask for the eclipse users set to 007.

$ sudo vi /etc/login.def

change UMASK to 007 (from 022).
UMASK=007

No comments:

Post a Comment