- # apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm (выбрать нужное)
libreadline-dev - служит для поддержки автодополнения (Tab), истории и навигации курсора (клавиши со стрелками) - Установить необходимые *-dev пакеты (Tcl/Tk, ncurses, ...) для поддержки среды IDLE
- Создать файл install_python.sh со следующим содержимым: #!/bin/bash
- $ chmod +x install_python.sh
- $ ./install_python.sh <python_version> <target_dir>
- Если нужно, в файл ~/.profile добавить строку:
export PATH=</path/to/new/python>:$PATH
if [ $# -ne 2 ]; then
echo "usage: $0 <python-version> <target-dir>"
echo "example: $0 3.4.0 ~/LIBS"
exit
fi
PY_VERSION=$1
PY_PREFIX=$2
PY_TARGET_DIR=$PY_PREFIX/Python-$PY_VERSION
tar xzf Python-$PY_VERSION.tgz &&
PY_BUILD_DIR=Python-$PY_VERSION/_build &&
echo "Build dir: $PY_BUILD_DIR" &&
N_CPU_CORES=$(nproc) &&
echo "CPU cores: $N_CPU_CORES" &&
mkdir $PY_BUILD_DIR &&
cd $PY_BUILD_DIR &&
../configure --prefix=$PY_TARGET_DIR --enable-shared &&
make -j$N_CPU_CORES &&
#make -j$N_CPU_CORES test &&
# for install an alternative version of Python use "make altinstall" instead of "make install"
#make install &&
# make altinstall &&
DESC_PAK_NAME=./description-pak &&
touch $DESC_PAK_NAME &&
echo "my own python $PY_VERSION build" > $DESC_PAK_NAME &&
sudo checkinstall --install=no --pkgname=python-my-own --pkgversion=$PY_VERSION --nodoc --maintainer="pkg created by $USER" &&
sudo chown $USER:$USER ./*.deb &&
sudo dpkg -i *.deb &&
sudo chown -R $USER:$USER $PY_TARGET_DIR &&
# register the lib directory of the newly installed interpreter
PY_LIB_CONF_FILE=$PY_TARGET_DIR/python-lib-path.conf &&
touch $PY_LIB_CONF_FILE &&
echo $PY_TARGET_DIR/lib > $PY_LIB_CONF_FILE &&
sudo ln -s $PY_LIB_CONF_FILE /etc/ld.so.conf.d/python-$PY_VERSION-custom-build.conf &&
sudo ldconfig &&
echo $0 script successfully ended!