2 votes

Comment lancer easy_install et pip sans root, sans virtualenv ?

Les gens ont accès aux serveurs en tant qu'utilisateurs normaux (emprisonnés en fait), et il leur est conseillé - pour le moment - de télécharger les paquets Python dont ils ont besoin, setup.py build puis ajoutez leur emplacement à sys.path .

Sans virutalenv, existe-t-il un moyen de faire en sorte que easy_install et pip installent des paquets dans un répertoire (dans le répertoire $PYTHONPATH ) à l'intérieur de ~ ?

Alternativement, pouvez-vous configurer un virtualenv qui est toujours actif pour un utilisateur donné, à la fois dans le Shell et en ce qui concerne Apache et mod_wsgi ?

En bref, comment contourner au mieux le problème des autorisations lors de l'installation de paquets de sites ?

1voto

jollyroger Points 1630

Pour que virtualenv soit automatiquement disponible dans Shell, vous devez créer son code source. bin/activate script à chaque fois que l'utilisateur se connecte. Vous pouvez faire cela en même temps que la création de l'environnement virtualenv par défaut lorsque l'utilisateur est créé. Ou vous pouvez simplement ajouter le chemin d'accès à l'interpréteur Python de virtualenv à la balise $PATH directement dans l'écran de l'utilisateur .bash_login , .zshrc ou autre chose.

Virtualenv, lorsqu'il est activé, modifie deux variables d'environnement. Premièrement, il ajoute {virtualenv}/bin à votre $PATH et, deuxièmement, elle définira $VIRTUAL_ENV indiquant où exactement virtualenv est configuré. Vous pouvez donc essayer d'imiter son comportement dans Apache en définissant ces variables. Au final, vous devriez utiliser l'interpréteur Python de virtualenv téléchargé avec virtualenv qui a tous les chemins nécessaires configurés.

mod_wsgi dispose de quelques options de configuration qui peuvent vous aider dans ce domaine. Il devrait être suffisant d'utiliser WSGIPythonPath . Vous pouvez envisager d'utiliser WSGIPythonEggs également.

Notez cependant que vous devez protéger la configuration initiale pour qu'elle ne soit pas modifiée par un utilisateur mais accessible par l'utilisateur qui exécute apache.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X