2009-03-07 9 views
32

Wyodrębniłem, skonfigurowałem i użyłem make dla pakietu instalacyjnego na moim serwerze.Nie można zainstalować Pythona bez dostępu sudo

Jednak nie mogę użyć make install. I pojawia się błąd

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

biegnę folder z

chmod +x Python-2.6.1 

mam nadal ten sam błąd.

Jak uruchomić dokonać instalacji bez dostępu sudo?

Odpowiedz

89

Jak mogę zainstalować na ścieżce w moim katalogu domowym?

mkdir /home/masi/.local 

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

Następnie należy uruchomić za pomocą:

/home/masi/.local/bin/python 

Podobnie, jeśli masz skrypty (. Np CGI), które wymagają własną wersję użytkownika Pythona trzeba powiedzieć im wprost:

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

zamiast domyślnego systemu Python, który wybierze "#!/Usr/bin/env python".

Możesz zmienić ustawienia PATH tak, aby wystarczyło wpisać "python" z konsoli uruchamiając tę ​​wersję, ale nie pomoże to w uruchamianiu aplikacji internetowych pod innym użytkownikiem.

Jeśli skompilujesz coś, co łączy się z Pythonem (np. Mod_wsgi), musisz powiedzieć mu, gdzie znaleźć swój Python, lub użyje zamiast niego systemu. Jest to często zrobić coś takiego:

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

Dla innych rozszerzeń opartych setup.py jak MySQLdb po prostu trzeba uruchomić skrypt setup.py z poprawnej wersji Pythona:

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

Jeśli nie masz narzędzi setuptools w swoim systemie, zobacz stronę http://stackoverflow.com/questions/624671/unable-to-install-python-setuptools-from-source –

+0

Nie wiem o 2.6.X , ale przynajmniej 2.7.9 i 3.x nie ma pliku Makefile przed uruchomieniem skryptu ./configure. Więc może przenieść "make clean" poniżej pierwszego połączenia do skonfigurowania? – leRobot

2

Nie można; w każdym razie nie do /usr. Tylko superużytkownicy mogą pisać do tych katalogów. Spróbuj jednak zainstalować Python na ścieżce w katalogu domowym.

+1

Co to jest "ścieżka w moim katalogu domowym"? –

+0

Jak mogę zainstalować na ścieżce w moim katalogu domowym? –

+0

Zapoznaj się z dokumentacją dotyczącą instalacji (http://docs.python.org/using/unix.html), szczególnie część dotyczącą ścieżek i plików. – kquinn

1

Rozszerzanie bobince odpowiedź, jest problem, jeśli nie masz zainstalowanego pakietu rozwojowego readline w twoim systemie i nie masz dostępu do roota.

Gdy Python jest kompilowany bez linii odczytu, klawisze strzałek nie będą działać w tłumaczu. Można jednak zainstalować pakiet autonomiczny readline następująco: Adding Readline Functionality Without Recompiling Python

Z drugiej strony, jeśli wolisz, aby skompilować Pythona przy użyciu lokalnego instalację readline, oto jak to zrobić.

Przed zrobieniem bobince było mówienie, kompilowanie i instalowanie readline. Są to kroki, aby to zrobić:

Następnie dodać tę linię do skryptu .bash_profile :

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

Last but not least, należy wykonać następujące polecenie

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

Mam nadzieję, że to pomoże komuś!