无非就是离线安装, 步骤比较繁琐, 记录一下.
需求很简单, 一个离线安装的 Python, 能跑 tornado 和 paramiko
1. 离线安装 Python 2.7
tar axf Python-2.7.12.tgzcd Python-2.7.12./configure --prefix=/home/doge/optmakemake install
2. 安装 setuptools
tar axf setuptools-28.8.0.tar.gzcd setuptools-28.8.0../opt/bin/python setup.py install
3. 安装 pip
tar axf pip-9.0.1.tar.gzcd 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. 安装 cryptographytar axf cryptography-1.6.tar.gzcd 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_abctar axf backports_abc-0.5.tar.gzcd backports_abc-0.5../opt/bin/python setup.py install#2. 安装 backports.ssl_match_hostnametar axf backports.ssl_match_hostname-3.5.0.1.tar.gzcd 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. 安装 ordereddicttar axf ordereddict-1.1.tar.gzcd 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. 安装 singledispatchtar axf singledispatch-3.4.0.3.tar.gzcd singledispatch-3.4.0.3../opt/bin/python setup.py install#7. 安装 tornadotar axf tornado-4.4.2.tar.gzcd tornado-4.4.2../opt/bin/python setup.py install
6. 总结
有 .whl 或 .egg 的, 就不要使用 .tgz, cffi 就很难在离线状态下从源码编译成功.
7. 脚本
#!/bin/bashmkdir doge && cd doge || exit -1wget http://10.34.58.43:8080/install.tartar xf install.tar && rm -f install.tartar axf Python-2.7.12.tgzcd Python-2.7.12 && ./configure --prefix=/home/doge/opt && make && make install && cd .. || exit -1
tar axf setuptools-28.8.0.tar.gzcd setuptools-28.8.0 && ../opt/bin/python setup.py install && cd .. || exit -1
tar axf pip-9.0.1.tar.gzcd 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.whltar axf cryptography-1.6.tar.gzcd cryptography-1.6 && ../opt/bin/python setup.py install && cd .. || exit -1./opt/bin/pip install paramiko-2.0.2-py2.py3-none-any.whltar axf backports_abc-0.5.tar.gzcd backports_abc-0.5 && ../opt/bin/python setup.py install && cd .. || exit -1tar axf backports.ssl_match_hostname-3.5.0.1.tar.gzcd 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.whltar axf ordereddict-1.1.tar.gzcd ordereddict-1.1 && ../opt/bin/python setup.py install && cd .. || exit -1./opt/bin/pip install six-1.10.0-py2.py3-none-any.whltar axf singledispatch-3.4.0.3.tar.gzcd singledispatch-3.4.0.3 && ../opt/bin/python setup.py install && cd .. || exit -1tar axf tornado-4.4.2.tar.gzcd tornado-4.4.2 && ../opt/bin/python setup.py install && cd .. || exit -1