From 7179061247e3af5bffc9c4324d16632cf6cdb1db Mon Sep 17 00:00:00 2001 From: jwittkoski Date: Wed, 1 Oct 2014 20:22:53 -0700 Subject: [PATCH] Updated Common build problems (markdown) --- Common-build-problems.md | 172 +++++++++++++++++++-------------------- 1 file changed, 85 insertions(+), 87 deletions(-) diff --git a/Common-build-problems.md b/Common-build-problems.md index 113d5df..5e2747b 100644 --- a/Common-build-problems.md +++ b/Common-build-problems.md @@ -1,88 +1,86 @@ -## Requirements: - -* Ubuntu/Debian: - ``` -sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ -libreadline-dev libsqlite3-dev wget curl llvm - ``` - -* Fedora: - `yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel` - -* Mac: - ```bash brew install readline; brew link readline; pyenv install 2.7.5``` - - -**NOTE**: `libssl-dev` is required when compiling Python, installing `libssl-dev` will actually install `zlib1g-dev`, which leads to uninstall and re-install Python versions (installed before installing `libssl-dev`). On Redhat and derivatives the package is named `openssl-devel`. - - -## Removing a python version - - rm -rf .pyenv/versions/2.7.5 - -## Installing a 32 bit python on 64 bit Mac OS X (this will *not* work on Linux) - - CONFIGURE_OPTS="--with-arch=i386" CFLAGS="-arch i386" LDFLAGS="-arch i386" python-build options - -## Installing a system-wide Python -If you want to install a Python interpreter that's available to all users and system scripts (no pyenv), use `/usr/local/` as the install path. For example: - - sudo python-build 3.3.2 /usr/local/ - -## Make your pythons a little faster -You can set your CFLAGS to accepted safe values to help get a little more speed. - - CFLAGS='-g -O2' - -## Build failed - bad interpreter: Permission denied - -If you encounter this error while installing python and your server is a VPS, the **/tmp** directory where python-build download and compile the packages is probably mounted as **noexec**. You can check with your hosting provider if wether they provide a way to bypass this protection. - -If the answer is no, just set the **$TMPDIR** environment variable to wherever you have a write + execution rights. For example: - - export TMPDIR="$HOME/src" - -Please note you'll have to do it every time you'll want to install a new version of python unless you write this command in your `~/.bashrc`. - -## Build failed - -If you've got something like that: - -``` -$ pyenv install 2.7.5 -Downloading http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz... -Installing yaml-0.1.4... - -BUILD FAILED -``` - -please, be sure to have "make" installed (```$ sudo apt-get install make```). On Ubuntu Server, by default, it doesn't. - -If you've got something like that: - -``` -Installing Python-2.7.7... - -ERROR: The Python zlib extension was not compiled. Missing the zlib? - -Please consult to the Wiki page to fix the problem. -https://github.com/yyuu/pyenv/wiki/Common-build-problems - -BUILD FAILED -``` - -You could try this: - -``` -CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install -v 2.7.7 -``` - -It works for me on osx 10.10 DP. - -## python-build: definition not found - -To update your python-build definitions: - -If you have python-build installed as an pyenv plugin: - +## Requirements: + +* Ubuntu/Debian: + ``` +sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ +libreadline-dev libsqlite3-dev wget curl llvm + ``` + +* Fedora: + `yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel` + +* Mac: + ```bash brew install readline; brew link readline; pyenv install 2.7.5``` + + +**NOTE**: `libssl-dev` is required when compiling Python, installing `libssl-dev` will actually install `zlib1g-dev`, which leads to uninstall and re-install Python versions (installed before installing `libssl-dev`). On Redhat and derivatives the package is named `openssl-devel`. + + +## Removing a python version + + rm -rf .pyenv/versions/2.7.5 + +## Installing a 32 bit python on 64 bit Mac OS X (this will *not* work on Linux) + + CONFIGURE_OPTS="--with-arch=i386" CFLAGS="-arch i386" LDFLAGS="-arch i386" python-build options + +## Installing a system-wide Python +If you want to install a Python interpreter that's available to all users and system scripts (no pyenv), use `/usr/local/` as the install path. For example: + + sudo python-build 3.3.2 /usr/local/ + +## Make your pythons a little faster +You can set your CFLAGS to accepted safe values to help get a little more speed. + + CFLAGS='-g -O2' + +## Build failed - bad interpreter: Permission denied + +If you encounter this error while installing python and your server is a VPS, the **/tmp** directory where python-build download and compile the packages is probably mounted as **noexec**. You can check with your hosting provider if wether they provide a way to bypass this protection. + +If the answer is no, just set the **$TMPDIR** environment variable to wherever you have a write + execution rights. For example: + + export TMPDIR="$HOME/src" + +Please note you'll have to do it every time you'll want to install a new version of python unless you write this command in your `~/.bashrc`. + +## Build failed + +If you've got something like that: + +``` +$ pyenv install 2.7.5 +Downloading http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz... +Installing yaml-0.1.4... + +BUILD FAILED +``` + +please, be sure to have "make" installed (```$ sudo apt-get install make```). On Ubuntu Server, by default, it doesn't. + +If you've got something like that: + +``` +Installing Python-2.7.7... + +ERROR: The Python zlib extension was not compiled. Missing the zlib? + +Please consult to the Wiki page to fix the problem. +https://github.com/yyuu/pyenv/wiki/Common-build-problems + +BUILD FAILED +``` + +On Mac OS X 10.9 and 10.10 you may need to set the CFLAGS environment variable when installing a new version in order for configure to find the zlib headers (XCode command line tools must be installed first): + +``` +CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install -v 2.7.7 +``` + +## python-build: definition not found + +To update your python-build definitions: + +If you have python-build installed as an pyenv plugin: + $ cd ~/.pyenv/plugins/python-build && git pull \ No newline at end of file