无非就是离线安装, 步骤比较繁琐, 记录一下.
需求很简单, 一个离线安装的 Python, 能跑 tornado 和 paramiko
1. 离线安装 Python 2.7
tar axf Python-2.7.12.tgz cd Python-2.7.12 ./configure --prefix=/home/doge/opt make make install
2. 安装 setuptools
tar axf setuptools-28.8.0.tar.gz
cd setuptools-28.8.0
../opt/bin/python setup.py install
3. 安装 pip
tar axf pip-9.0.1.tar.gz cd pip-9.0.1 ../opt/bin/python setup.py install
4. 安装 paramiko
#1. 安装 pyasn1 ./opt/bin/easy_install pyasn1-0.1.9-py2.7.egg #2. 安装 ipaddress ./opt/bin/pip install ipaddress-1.0.17-py2-none-any.whl #3. 安装 enum34 ./opt/bin/pip install enum34-1.1.6-py2-none-any.whl #4. 安装 six ./opt/bin/pip install six-1.10.0-py2.py3-none-any.whl #5. 安装 idna ./opt/bin/pip install idna-2.1-py2.py3-none-any.whl
#6. 安装 pycparser
tar axf pycparser-2.17.tar.gz
cd pycparser-2.17
../opt/bin/python setup.py install
#7. 安装 cffi
./opt/bin/pip install cffi-1.9.1-cp27-cp27m-manylinux1_x86_64.whl
#8. 安装 cryptography tar axf cryptography-1.6.tar.gz cd cryptography-1.6 ../opt/bin/python setup.py install #9. 安装 paramiko ./opt/bin/pip install paramiko-2.0.2-py2.py3-none-any.whl
5. 安装 tornado
#1. 安装 backports_abc tar axf backports_abc-0.5.tar.gz cd backports_abc-0.5 ../opt/bin/python setup.py install #2. 安装 backports.ssl_match_hostname tar axf backports.ssl_match_hostname-3.5.0.1.tar.gz cd backports.ssl_match_hostname-3.5.0.1 ../opt/bin/python setup.py install #3. 安装 certifi ./opt/bin/pip install certifi-2016.9.26-py2.py3-none-any.whl #4. 安装 ordereddict tar axf ordereddict-1.1.tar.gz cd ordereddict-1.1 ../opt/bin/python setup.py install #5. 安装 six ./opt/bin/pip install six-1.10.0-py2.py3-none-any.whl #6. 安装 singledispatch tar axf singledispatch-3.4.0.3.tar.gz cd singledispatch-3.4.0.3 ../opt/bin/python setup.py install #7. 安装 tornado tar axf tornado-4.4.2.tar.gz cd tornado-4.4.2 ../opt/bin/python setup.py install
6. 总结
有 .whl 或 .egg 的, 就不要使用 .tgz, cffi 就很难在离线状态下从源码编译成功.
7. 脚本
#!/bin/bash mkdir doge && cd doge || exit -1 wget http://10.34.58.43:8080/install.tar tar xf install.tar && rm -f install.tar tar axf Python-2.7.12.tgz cd Python-2.7.12 && ./configure --prefix=/home/doge/opt && make && make install && cd .. || exit -1
tar axf setuptools-28.8.0.tar.gz
cd setuptools-28.8.0 && ../opt/bin/python setup.py install && cd .. || exit -1
tar axf pip-9.0.1.tar.gz cd pip-9.0.1 && ../opt/bin/python setup.py install && cd .. || exit -1 ./opt/bin/easy_install pyasn1-0.1.9-py2.7.egg ./opt/bin/pip install ipaddress-1.0.17-py2-none-any.whl ./opt/bin/pip install enum34-1.1.6-py2-none-any.whl ./opt/bin/pip install six-1.10.0-py2.py3-none-any.whl ./opt/bin/pip install idna-2.1-py2.py3-none-any.whl
tar axf pycparser-2.17.tar.gz
cd pycparser-2.17 && ../opt/bin/python setup.py install && cd .. || exit -1
./opt/bin/pip install cffi-1.9.1-cp27-cp27m-manylinux1_x86_64.whl
tar axf cryptography-1.6.tar.gz cd cryptography-1.6 && ../opt/bin/python setup.py install && cd .. || exit -1 ./opt/bin/pip install paramiko-2.0.2-py2.py3-none-any.whl tar axf backports_abc-0.5.tar.gz cd backports_abc-0.5 && ../opt/bin/python setup.py install && cd .. || exit -1 tar axf backports.ssl_match_hostname-3.5.0.1.tar.gz cd backports.ssl_match_hostname-3.5.0.1 && ../opt/bin/python setup.py install && cd .. || exit -1 ./opt/bin/pip install certifi-2016.9.26-py2.py3-none-any.whl tar axf ordereddict-1.1.tar.gz cd ordereddict-1.1 && ../opt/bin/python setup.py install && cd .. || exit -1 ./opt/bin/pip install six-1.10.0-py2.py3-none-any.whl tar axf singledispatch-3.4.0.3.tar.gz cd singledispatch-3.4.0.3 && ../opt/bin/python setup.py install && cd .. || exit -1 tar axf tornado-4.4.2.tar.gz cd tornado-4.4.2 && ../opt/bin/python setup.py install && cd .. || exit -1