Impossible d'installer Python sans accès sudo
-
05-07-2019 - |
Question
J'ai extrait, configuré et utilisé le paquet d'installation sur mon serveur.
Cependant, je ne pouvais pas utiliser make install . Je reçois l'erreur
[~/wepapps/python/Python-2.6.1]# make install
/usr/bin/install -c python /usr/local/bin/python2.6
/usr/bin/install: cannot create regular file `/usr/local/bin/python2.6': Permission denied
make: *** [altbininstall] Error 1
Je lance le dossier avec
chmod +x Python-2.6.1
Je reçois toujours la même erreur.
Comment puis-je exécuter make install sans accès sudo?
La solution
Comment puis-je installer sur un chemin situé dans mon répertoire personnel?
mkdir /home/masi/.local
cd Python-2.6.1
make clean
./configure --prefix=/home/masi/.local
make
make install
Ensuite, utilisez la commande suivante:
/home/masi/.local/bin/python
De même, si vous avez des scripts (par exemple, CGI) qui nécessitent votre propre version utilisateur de Python, vous devez leur dire explicitement:
#!/home/masi/.local/bin/python
au lieu d'utiliser le système par défaut Python, qui & # 8220; #! / usr / bin / env python & # 8221; choisira.
Vous pouvez modifier votre paramètre PATH pour que vous puissiez simplement taper & # 8220; python & # 8221; à partir de la console, lancez cette version, mais cela n’aide en rien les applications Web exécutées sous un autre utilisateur.
Si vous compilez quelque chose qui a un lien avec Python (par exemple, mod_wsgi), vous devez lui dire où trouver votre Python, sinon il utilisera celui du système. Cela se fait souvent de la manière suivante:
./configure --prefix=/home/masi/.local --with-python=/home/masi/.local
Pour les autres extensions basées sur setup.py telles que MySQLdb, vous devez simplement exécuter le script setup.py avec la version correcte de Python:
/home/masi/.local/bin/python setup.py install
Autres conseils
Vous ne pouvez pas; de ne pas / usr
, de toute façon. Seuls les superutilisateurs peuvent écrire dans ces répertoires. Essayez d’installer Python sur un chemin situé dans votre répertoire personnel.
Si on étend la réponse à Bobince, il y a un problème si le paquet de développement readline n'est pas installé sur votre système et si vous ne disposez pas d'un accès root.
Lorsque Python est compilé sans readline, vos touches de direction ne fonctionneront pas dans l'interpréteur. Cependant, vous pouvez installer le paquet autonome readline comme suit: Ajouter une fonctionnalité Readline sans recompiler Python
D'autre part, si vous préférez compiler python à l'aide d'une installation locale de readline, voici comment.
Avant de faire ce que disait Bobince, compilez et installez readline. Voici les étapes à suivre:
- wget ftp://ftp.cwru.edu/pub/ bash / readline-6.2.tar.gz
- tar -zxvf readline-6.2.tar.gz
- cd readline-6.2
- ./ configure --with-prefix = $ HOME / .local
- make
- faire installer
Ajoutez ensuite cette ligne à votre script .bash_profile:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.local/lib
Dernier point, mais non le moindre, exécutez la commande suivante
export LDFLAGS="-L$HOME/.local"
J'espère que cela aide quelqu'un!