ObjectStorage@Bluemixを使うためにSwiftのツールをインストールしてみた（Python / pipなど）

前回とりあえずGUIでぽちぽちやってみただけだったので、その続き。
http://qiita.com/azzeten/items/fca985f9847600a0b2e9

Bluemixのマニュアルに従って、OS側での準備をしてみました。
https://console.ng.bluemix.net/docs/services/ObjectStorage/index.html#using-swift-cli

Swiftのツール（swiftclient）をインストールする必要があり、それにはpipを使う必要がある・・・らしい。
ただしこのマニュアル、pipがインストールされている前提で話が始まっており、わたしの環境ではそもそもpipが入っていないのでそこからスタート・・・
まあ色々と躓きまくったので、、、書き残します。

##pipの導入に必要なパッケージをインストール##
パッケージのインストール

```bash
$ sudo yum install gcc make fuse fuse-devel curl-devel libxml2-devel openssl-devel git
```

fuseの読み込み

```bash
$ sudo modprobe fuse
```

python自体は入っていたので特にインストールはせず・・。一応確認。

```bash
$ sudo which python
/bin/python
```

##pipのインストール##

指定のURLにあるファイルをcurlで取得して、それをpythonで処理をする。ちょっと不思議な感じだったので、ログまで載せときます。failedとか出てますが、特に。。大丈夫でした（後続もちゃんと動いたので）。

```bash
$ sudo curl -kL https://bootstrap.pypa.io/get-pip.py | python

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1487k  100 1487k    0     0  4553k      0 --:--:-- --:--:-- --:--:-- 4561k
Collecting pip
/tmp/tmp45LTIF/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
/tmp/tmp45LTIF/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  Downloading pip-8.1.1-py2.py3-none-any.whl (1.2MB)
    100% |████████████████████████████████| 1.2MB 733kB/s
Collecting wheel
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
    100% |████████████████████████████████| 71kB 7.9MB/s
Installing collected packages: pip, wheel
Successfully installed pip-8.1.1 wheel-0.29.0
/tmp/tmp45LTIF/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

```

##SwiftClientのインストール##


では最後にswiftclientのインストール！

```bash
$ sudo pip install python-swiftclient
$ sudo pip install python-keystoneclient
```

で、おしま〜い♪と思いきや、あとで実際にobjectstorageを使おうと思ったら動きませんでした。
Bluemixのマニュアルだけでなく、そこに貼ってあるリンク先まで見て、やっと解決。
http://docs.openstack.org/user-guide/common/cli_install_openstack_command_line_clients.html#install-the-prerequisite-software

python-develとかもインストールする必要があるらしいのです。きゃー。。
ちなみにこんなエラーで怒られました。

```bash
    checking for netlink support...yes.
    will use netlink to read routing table
    building 'netifaces' extension
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DNETIFACES_VERSION=0.10.4 -DHAVE_GETIFADDRS=1 -DHAVE_GETNAMEINFO=1 -DHAVE_NETASH_ASH_H=1 -DHAVE_NETATALK_AT_H=1 -DHAVE_NETAX25_AX25_H=1 -DHAVE_NETECONET_EC_H=1 -DHAVE_NETIPX_IPX_H=1 -DHAVE_NETPACKET_PACKET_H=1 -DHAVE_LINUX_IRDA_H=1 -DHAVE_LINUX_ATM_H=1 -DHAVE_LINUX_LLC_H=1 -DHAVE_LINUX_TIPC_H=1 -DHAVE_LINUX_DN_H=1 -DHAVE_SOCKADDR_AT=1 -DHAVE_SOCKADDR_AX25=1 -DHAVE_SOCKADDR_IN=1 -DHAVE_SOCKADDR_IN6=1 -DHAVE_SOCKADDR_IPX=1 -DHAVE_SOCKADDR_UN=1 -DHAVE_SOCKADDR_ASH=1 -DHAVE_SOCKADDR_EC=1 -DHAVE_SOCKADDR_LL=1 -DHAVE_SOCKADDR_ATMPVC=1 -DHAVE_SOCKADDR_ATMSVC=1 -DHAVE_SOCKADDR_DN=1 -DHAVE_SOCKADDR_IRDA=1 -DHAVE_SOCKADDR_LLC=1 -DHAVE_PF_NETLINK=1 -I/usr/include/python2.7 -c netifaces.c -o build/temp.linux-x86_64-2.7/netifaces.o
    netifaces.c:1:20: 致命的エラー: Python.h: そのようなファイルやディレクトリはありません
     #include <Python.h>
                        ^
    コンパイルを停止しました。
    error: command 'gcc' failed with exit status 1
```
なんだかんだかなり調べました・・・というわけで以下で解決します。

```bash
#python-develをインストール
$ sudo yum install python-devel

#リベンジ！
$ sudo pip install python-keystoneclient
```

以上で無事完了〜。

次回は、ObjectStorageのファイルをLinuxから見てみるところから、書いてきます。