2008-10-18 3 views
1

Nous avons utilisé Trac pour le suivi des tâches/défauts et les choses allaient assez bien, mais ce matin, il a commencé à générer une erreur de 500. En regardant dans le error_log Apache, je reçois une trace de pile qui se termine par:Comment réparer une installation Trac qui commence à donner des erreurs concernant PYTHON_EGG_CACHE?

 
PythonHandler trac.web.modpython_frontend: 
    ExtractionError: Can't extract file(s) to egg cache 

The following error occurred while trying to extract file(s) to the Python egg 
cache: 

    [Errno 13] Permission denied: '/.python-eggs' 

The Python egg cache directory is currently set to: 

    /.python-eggs 

Perhaps your account does not have write access to this directory? You can 
change the cache directory by setting the PYTHON_EGG_CACHE environment 
variable to point to an accessible directory 

Je me suis donc explicitement à PYTHON_EGG_CACHE/srv/trac/plugin-cache. J'ai redémarré Apache. Pourtant, je reçois la même erreur (il est toujours dit "répertoire de cache d'oeuf actuel défini à: \ n \ n /.python_eggs.")

Comment dois-je procéder? Est-ce la chose la plus simple à faire pour réinstaller Trac? Si je fais ce chemin, quelles mesures dois-je prendre pour m'assurer de ne pas perdre les données existantes?

Répondre

5

Cela devrait être fixé en 0.11 selon leur bug tracking system.

Si ce n'est pas le cas, vous devriez essayer de passer l'environnement var à apache, car faire un SetEnv dans le fichier de configuration ne fonctionne pas. Ajouter quelque chose comme

export PYTHON_EGG_CACHE=/tmp/python_eggs 

au script que vous utilisez pour démarrer Apache devrait fonctionner.

1

J'ai rencontré le même problème lors de la mise à niveau de Trac 10.4 à 0.11 plus tôt cette année. Quelque chose a dû changer pour que ce problème apparaisse soudainement - une installation Python ou Apache mise à jour?

Je ne me souviens pas de toutes les permutations que j'ai essayé de résoudre cela, mais j'ai fini par utiliser SetEnv PYTHON_EGG_CACHE /.python-eggs et créer /.python-eggs avec 777 permissions. Ce n'est peut-être pas la meilleure solution, mais cela a réglé le problème.

Je n'ai jamais étudié quelle était la cause première. Comme l'indique agnul, cela peut avoir été corrigé dans une version ultérieure de Trac.

1

J'ai lutté beaucoup de bataille avec PYTHON_EGG_CACHE et je n'ai jamais compris la bonne façon de le définir - envvars apache, httpd.conf (SetEnv et PythonOption), rien n'a fonctionné. À la fin, je viens de déballer manuellement tous les œufs de python, il n'y en avait que deux ou trois - problème résolu. Je n'ai jamais compris pourquoi, sur terre, les gens compressaient des fichiers ne pesant pas plus de quelques kilo-octets ...

0

J'ai eu le même problème. Dans mon cas, le répertoire n'était pas là donc j'ai créé et l'ai fait passer à l'utilisateur apache (apache sur ma boîte de centos 4.3). Ensuite, assurez-vous qu'il avait des autorisations de lecture-écriture sur le répertoire. Vous pourriez vous débrouiller en donnant des droits rw au répertoire si le groupe qui possède le répertoire contient l'utilisateur apache. Un simple ps aux | grep httpd devrait vous montrer dans quel compte fonctionne votre serveur si vous ne le connaissez pas. Si vous avez des difficultés à trouver le répertoire, souvenez-vous de la commande -a sur la commande ls car il s'agit d'un répertoire "caché".

0

J'ai trouvé que l'utilisation de la directive PythonOption dans le site config ne fonctionne pas, mais SetEnv l'a fait. La route des variables d'environnement fonctionnera aussi bien.

Questions connexes