2009-03-07 7 views
32

Ho estratto, configurato e utilizzato make per il pacchetto di installazione nel mio server.Impossibile installare Python senza accesso sudo

Tuttavia, non è stato possibile utilizzare make install. Ottengo l'errore

[~/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 

corro la cartella con

chmod +x Python-2.6.1 

ho ancora lo stesso errore.

Come posso eseguire effettuare l'installazione senza accesso sudo?

risposta

89

Come posso installare un percorso sotto la mia home directory?

mkdir /home/masi/.local 

cd Python-2.6.1 
make clean 
./configure --prefix=/home/masi/.local 
make 
make install 

Poi eseguite utilizzando:

/home/masi/.local/bin/python 

Allo stesso modo se si dispone di script (es. CGI) che richiedono la propria versione utente di Python si deve dire loro esplicitamente:

#!/home/masi/.local/bin/python 

invece di usare il sistema predefinito Python che sceglierà "#!/Usr/bin/env python".

È possibile modificare l'impostazione PATH per eseguire semplicemente digitando "python" dalla console, eseguire tale versione, ma non sarà di aiuto per le app Web eseguite con un utente diverso.

Se si compila qualcosa che si collega a Python (ad esempio mod_wsgi) devi dire dove trovare il tuo Python o che userà il sistema uno invece. Questo è spesso fatto qualcosa di simile:

./configure --prefix=/home/masi/.local --with-python=/home/masi/.local 

Per le altre estensioni setup.py-based come MySQLdb è sufficiente per eseguire lo script setup.py con la versione corretta di Python:

/home/masi/.local/bin/python setup.py install 
+6

Se non hai setuptools nel tuo sistema, per favore, vedi il post http://stackoverflow.com/questions/624671/unable-to-install-python-setuptools-from-source –

+0

Non so 2.6.X , ma almeno 2.7.9 e 3.x non hanno un makefile prima di eseguire lo script ./configure. Quindi forse spostare "make clean" sotto la prima chiamata da configurare? – leRobot

2

Non è possibile; non a /usr, comunque. Solo i superutenti possono scrivere in quelle directory. Prova a installare Python su un percorso sotto la tua home directory.

+1

Che cos'è "un percorso nella mia directory home"? –

+0

Come posso installare su un percorso sotto la mia home directory? –

+0

Dai un'occhiata alla documentazione sull'installazione (http://docs.python.org/using/unix.html), in particolare la parte relativa ai percorsi e ai file. – kquinn

1

Estendere bobince rispondi, c'è un problema se non hai il pacchetto di sviluppo readline installato nel tuo sistema, e non hai accesso root.

Quando Python è compilato senza readline, i tasti freccia non funzioneranno nell'interprete. Tuttavia, è possibile installare il pacchetto standalone readline come segue: Adding Readline Functionality Without Recompiling Python

D'altro canto, se si preferisce compilare python utilizzando un'installazione locale di readline, ecco come.

Prima di fare come Bobince stava dicendo, compilare e installare readline. Questi sono i passi da fare in modo da:

Quindi, aggiungere questa riga allo script .bash_profile :

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.local/lib 

Ultimo, ma non meno importante, eseguire il seguente comando

export LDFLAGS="-L$HOME/.local" 

Spero che questo aiuti qualcuno!