Не удалось установить Python без доступа sudo

Я извлек, настроил и использовал make для установочного пакета на моем сервере.

Однако я не мог использовать make install. Я получаю ошибку

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

Я запускаю папку с

chmod +x Python-2.6.1

Я получаю ту же ошибку.

Как я могу запустить make install без доступа sudo?

Ответ 1

Как установить путь в мой домашний каталог?

mkdir /home/masi/.local

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

Затем запустите, используя:

/home/masi/.local/bin/python

Аналогично, если у вас есть сценарии (например, CGI), для которых требуется ваша собственная версия Python, вы должны явно указать им:

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

вместо использования системы Python по умолчанию, которую выберет "#!/usr/bin/env python".

Вы можете изменить свой параметр PATH, чтобы просто набрать "python" из консоли, запустить эту версию, но это не поможет веб-приложениям, запущенным под другим пользователем.

Если вы скомпилируете что-то, что связано с Python (например, mod_wsgi), вы должны сказать ему, где найти свой Python, или вместо него будет использовать систему. Это часто делается примерно так:

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

Для других расширений setup.py, таких как MySQLdb, вам просто нужно запустить setup.py script с правильной версией Python:

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

Ответ 2

Вы не можете; не до /usr, во всяком случае. Только суперпользователи могут писать в эти каталоги. Попробуйте установить Python на путь в вашем домашнем каталоге.

Ответ 3

Расширение ответа bobince, есть проблема, если у вас нет пакета разработки readline, установленного в вашей системе, и у вас нет доступа root.

Когда Python скомпилирован без readline, ваши клавиши со стрелками не будут работать в интерпретаторе. Однако вы можете установить автономный пакет readline следующим образом: Добавление функциональности чтения без повторной компиляции Python

С другой стороны, если вы предпочитаете компилировать python, используя локальную установку readline, вот как это сделать.

Перед тем, как рассказывал bobince, скомпилируйте и установите readline. Это шаги для этого:

Затем добавьте эту строку в свой .bash_profile script:

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

И последнее, но не менее важное: выполните следующую команду

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

Надеюсь, это поможет кому-то!