プログラマーの調べ物

プログラマーが調べ物をするときに役に立つサイトを作ります。

pipでAnsibleをインストールしたときにエラーが出た

Ansibleをインストー

以下のコマンドでインストールする。

# pip2 install ansible

すると、以下のようなエラーが発生。

    unable to execute gcc: No such file or directory
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-7PfuiO/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-4PCVVH-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-7PfuiO/cryptography/
[root@localhost install]#

ははあん、おそらく、DevelopmentKit敵なものが足りないんだな。 Rubyでよくあるやつだ。

以下のコマンドを実行

# yum install -y libffi-devel openssl-devel

# yum -y install python-devel python-crypto

これでいけるか???

p-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 -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/_openssl.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/_openssl.o
    unable to execute gcc: No such file or directory
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-osagHo/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-_ikNDj-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-osagHo/cryptography/

だ、ダメだ…! ググろう。

以下のStackoverflowに従って、

https://stackoverflow.com/questions/11094718/error-command-gcc-failed-with-exit-status-1-while-installing-eventlet

# python -V
Python 2.7.5

# yum install python-devel

# yum install libevent-devel

# easy_install gevent

とやってもダメ。

よくよくエラーを見てみると、どうやらgccでエラーが出ている模様。 なので、gccをインストール。

# yum install gcc

すると、

# pip2 install ansible

Building wheels for collected packages: cryptography
  Running setup.py bdist_wheel for cryptography ... done
  Stored in directory: /root/.cache/pip/wheels/ff/a5/ef/186bb4f6a89ef0bb8373bf53e5c9884b96722f0857bd3111b8
Successfully built cryptography
Installing collected packages: cryptography, bcrypt, pyasn1, pynacl, paramiko, ansible
Successfully installed ansible-2.3.1.0 bcrypt-3.1.3 cryptography-1.9 paramiko-2.2.1 pyasn1-0.2.3 pynacl-1.1.2

# ansible --version
ansible 2.3.1.0
  config file =
  configured module search path = Default w/o overrides
  python version = 2.7.5 (default, Nov  6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

どうやらインストールがうまくいったようだ。 pipでansibleインストールする際にエラーが出る場合は、必要なパッケージが足りているかどうかを調べてみることが大事。