Monthly Archives: 5月 2016

Amazon EC2にpyenv環境を構築する


以前書いた
MacOSXにbrewでpyenvをインストールする
pyenvでPythonの指定のバージョンをインストールする
と関連しますが、ここではOSXではなくEC2側にpyenv環境構築し、バージョンを切り替える方法を書いておきます。

■前提条件

・Amazon Linux
・2016/05/20現在の情報

■手順

(1) 依存ライブラリのインストール

$ sudo yum -y install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel
Loaded plugins: priorities, update-motd, upgrade-helper
Package 1:make-3.82-21.10.amzn1.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package bzip2-devel.x86_64 0:1.0.6-8.12.amzn1 will be installed
・・・
Dependency Installed:
  cpp48.x86_64 0:4.8.3-9.109.amzn1                            gcc48.x86_64 0:4.8.3-9.109.amzn1                         
  gcc48-c++.x86_64 0:4.8.3-9.109.amzn1                        glibc-devel.x86_64 0:2.17-106.167.amzn1                  
  glibc-headers.x86_64 0:2.17-106.167.amzn1                   kernel-headers.x86_64 0:4.4.10-22.54.amzn1               
  keyutils-libs-devel.x86_64 0:1.5.8-3.12.amzn1               krb5-devel.x86_64 0:1.13.2-12.40.amzn1                   
  libcom_err-devel.x86_64 0:1.42.12-4.40.amzn1                libgomp.x86_64 0:4.8.3-9.109.amzn1                       
  libmpc.x86_64 0:1.0.1-3.3.amzn1                             libselinux-devel.x86_64 0:2.1.10-3.22.amzn1              
  libsepol-devel.x86_64 0:2.1.7-3.12.amzn1                    libstdc++48-devel.x86_64 0:4.8.3-9.109.amzn1             
  libverto-devel.x86_64 0:0.2.5-4.9.amzn1                     mpfr.x86_64 0:3.1.1-4.14.amzn1                           
  ncurses-devel.x86_64 0:5.7-3.20090208.13.amzn1              perl-Error.noarch 1:0.17020-2.9.amzn1                    
  perl-Git.noarch 0:2.7.4-1.47.amzn1                          perl-TermReadKey.x86_64 0:2.30-20.9.amzn1                

Complete!

(2) pyenvのインストール

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Cloning into '/home/*******/.pyenv'...
remote: Counting objects: 12653, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 12653 (delta 2), reused 0 (delta 0), pack-reused 12639
Receiving objects: 100% (12653/12653), 2.25 MiB | 722.00 KiB/s, done.
Resolving deltas: 100% (8774/8774), done.
Checking connectivity... done.

(3) .bashrcの編集

$ vi ~/.bashrc
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi

上記を最後部に追加して保存。

$ source ~/.bashrc

.bashrcを反映させる。

(4) インストール可能なPythonバージョンの確認

$ pyenv install --list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  ・・・
  3.3-dev
  3.3.1
  3.3.2
  3.3.3
  3.3.4
  3.3.5
  3.3.6
  3.4.0
  3.4-dev
  3.4.1
  3.4.2
  3.4.3
  3.4.4
  3.5.0
  3.5-dev
  3.5.1
  3.6.0a1
  3.6-dev
  anaconda-1.4.0
  anaconda-1.5.0
  anaconda-1.5.1
  anaconda-1.6.0
・・・

(5) 指定バージョンのPythonをインストール

$ pyenv install 3.4.4
Downloading Python-3.4.4.tgz...
-> https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz
Installing Python-3.4.4...
Installed Python-3.4.4 to /home/*******/.pyenv/versions/3.4.4

例として3.4.4をインストールします。

(6) pyenv-pip-rehashのインストール

$ git clone https://github.com/yyuu/pyenv-pip-rehash.git ~/.pyenv/plugins/pyenv-pip-rehash

ここまでで基本的な準備はOKです。

使用するPythonのバージョン指定は以下のように行います。

$ pyenv global 3.4.4

ここでは先ほどインストールした3.4.4を指定しています。ちなみに、システムにインストールされているPythonを指定する場合は、

$ pyenv global system

これでOKです。


Xcodeにて実機デバッグでCould not find Developer Disk Image



Xcodeに実機(iPhone6)を接続し動作確認をしようとしたところ、Could not find Developer Disk Imageというダイアログメッセージが表示されました。

古いXcodeを立ち上げていたので、接続したiPhone6のiOSバージョンがXcodeのバージョンと合っていないのであろうと思い、まずXcodeの確認をしました。

Xcodeは7.2.1です。古いですね。更に詳細を確認しました。

今更ながら言うことではありませんが、Xcode7.2.xはiOS9.2までですね。

iPhone6側は、

iOS9.3.1です。

前述のとおり、実機のiOSバージョンとXcodeの組み合わせの問題です。iOS9.3はXcode7.3以降に含まれますので、Xcode7.2.xではiOS9.2が載った実機デバッグが行えないということです。念のため最新のXcodeで確認したところ、問題は発生しませんでした。


XcodeにてリモートリポジトリにpushでUnexpected HTTP status code: 404 (-1)


Xcodeからgitのリモートリポジトリにpushしようとしたところ、

Unexpected HTTP status code: 404 (-1)

リモートリポジトリは存在しているので、リモートリポジトリ設定にミスがあるのかと思いターミナルから設定の確認を行ったところ、

$ git remote -v
origin	https://****@******/makotton/*****.gi (fetch)
origin	https://****@******/makotton/*****.gi (push)

あれ?.gitのつもりが、.giに…

原因はコレでしょうということで、

$ git remote rm origin

一旦、リモートリポジトリ設定を削除し、

$ git remote add origin https://****@******/makotton/*****.git

再設定しました。

このあとXcodeから再度pushを行ったところ、無事成功しました。くだらない凡ミスでしたが、いつかまたやってしまいそうなので念の為に備忘録。