memo
事前環境作成
ネットワークのあるサーバで実施しておくこと!
以下の例では、python2.7.5を入れる例
[ダウンロード]
$ mkdir /tmp/pyenv && cd /tmp/pyenv $ git clone git://github.com/yyuu/pyenv.git .pyenv
[python2.7.5用のプラグインファイルを確認]
このファイルを参照してリモートから取得するので対象ファイル名を確認しておく
$ cat .pyenv/plugins/python-build/share/python-build/2.7.5 require_gcc install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline install_package "Python-2.7.5" "http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz#b4f01a1d0ba0b46b05c73b2ac909b1df" standard verify_py27 install_package "setuptools-1.1.6" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.1.6.tar.gz#ee82ea53def4480191061997409d2996" python install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python
[ruby-1.9.3用関連ファイルダウンロード]
途中証明書のエラーがでたので、" --no-check-certificate"オプションをつけてwgetを実施
$ wget http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz $ wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz $ wget https://pypi.python.org/packages/source/s/setuptools/setuptools-1.1.6.tar.gz エラー: `pypi.python.org' の証明書は信用されません。 エラー: `pypi.python.org' の証明書の発行者が不明です。 # retry $ wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.1.6.tar.gz $ wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz
[チェックサムの取得]
ダウンロードしたファイルのチェックサムを確認
$ md5sum * b4f01a1d0ba0b46b05c73b2ac909b1df Python-2.7.5.tgz 6afbb46aeb48abac658d4df742bff714 pip-1.4.1.tar.gz 67948acb2ca081f23359d0256e9a271c readline-6.2.tar.gz ee82ea53def4480191061997409d2996 setuptools-1.1.6.tar.gz
[pluginファイル修正]
URLを「http://localhost/」に変更し、チェックサムをダウンロードしてきたファイルの値に変更
$ cp .pyenv/plugins/python-build/share/python-build/2.7.5 . $ vi 2.7.5 require_gcc install_package "readline-6.2" "http://localhost/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline install_package "Python-2.7.5" "http://localhost/Python-2.7.5.tgz#b4f01a1d0ba0b46b05c73b2ac909b1df" standard verify_py27 install_package "setuptools-1.1.6" "http://localhost/setuptools-1.1.6.tar.gz#ee82ea53def4480191061997409d2996" python install_package "pip-1.4.1" "http://localhost/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python
[アーカイブ化]
$ tar cvfz pyenv_files.tar.gz pip-1.4.1.tar.gz readline-6.2.tar.gz sphinx.* setuptools-1.1.6.tar.gz Python-2.7.5.tgz 2.7.5 $ tar cvfz pyenv_local.tar.gz .pyenv
pvenvインストール対象ホストで実施
hogeユーザのホームディレクトリに構築
[前提条件]
git,bzip2-develがインストールされていること
[アーカイブファイル展開]
$ cd /home/hoge; pwd # 一般ユーザ(hoge)のホームディレクトリを想定 /home/hoge $ tar xvfz pyenv_local.tar.gz # 先ほど固めたファイルをここで展開 $ tar xvfz pyenv_files.tar.gz
[profileの作成]
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile $ . ~/.bash_profile
[修正済みpluginファイル配布]
$ mv 2.7.5 .pyenv/plugins/python-build/share/python-build/
[git構築]
$ cd ; pwd /home/hoge $ git init $ git add Python-2.7.5.tgz pip-1.4.1.tar.gz readline-6.2.tar.gz setuptools-1.1.6.tar.gz $ git commit -m'init'
[httpサーバー起動]
$ sudo python -m SimpleHTTPServer 80 & ※80番ポートで起動する場合、root権限が必要
pyenvインストール
$ pyenv install 2.7.5 $ pyenv versions * system (set by /home/hoge/.pyenv/version) 2.7.5 $ pyenv global 2.7.5 $ pyenv versions system * 2.7.5 (set by /home.hoge.pyenv/version) $ which python; python -V ~/.pyenv/shims/python Python 2.7.5
sphinxローカルインストール
ネットワークのある環境で以下を実施
$pip install sphinx sphinxcontrib-blockdiag sphinxcontrib-seqdiag sphinxcontrib-nwdiag Jinja2==2.7.1 MarkupSafe==0.18 Pillow==2.2.1 Pygments==1.6 Sphinx==1.1.3 blockdiag==1.3.0 docutils==0.11 funcparserlib==0.3.6 nwdiag==1.0.0 seqdiag==0.9.0 sphinxcontrib-blockdiag==1.3.0 sphinxcontrib-nwdiag==0.7.0 sphinxcontrib-seqdiag==0.6.0 webcolors==1.4 wsgiref==0.1.2 $ pip freeze > sphinx.packages.txt $ pip bundle -r sphinx.packages.txt sphinx.pybundle $ ls sphinx.pybundle >| **インストール インストール対象のサーバーで実施 >| $ pip install -b ~/.pyenv/build sphinx.pybundle ※オプション無しだと直下にbuildディレクトリができるので、"-b"オプションで他の場所を指定 $ pip freeze