web-dev-qa-db-ja.com

setup.pyを使用してインストールすると、なぜansibleが見つからないのですか?

今日の最新の開発バージョンで修正されているようであるAnsible(私はMacにあります)に問題があったため、pip(Sudo pip uninstall ansible)を使用してansibleをアンインストールし、クラシックを使用してgithubリポジトリから最新の開発バージョンを再インストールしました正常に終了したように見えるsetup.pyメソッド( ここで完全な出力

それで私はそれを使ってみました:

$ ansible --version
-bash: ansible: command not found
$ which ansible
$

設置場所を確認しました。上記にリンクした完全な出力から、/usr/local/lib/python2.7/site-packagesにインストールされていることがわかりました。実際、そこに卵が見つかりました。

$ ls -l /usr/local/lib/python2.7/site-packages | grep ansible
drwxr-xr-x    4 root    admin     136 Aug 22 16:33 ansible-2.4.0-py2.7.Egg

Pythonを起動して、site-packagesフォルダーを確認すると、別のフォルダーが見つかります。

>>> import site; print site.getsitepackages()[0]
/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

しかし、それは同じフォルダへのシンボリックリンクです:

$ ls -l /usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
lrwxr-xr-x  1 hielke  admin  54 Aug 13 22:36 /usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages -> ../../../../../../../../../lib/python2.7/site-packages

したがって、問題は/usr/local/bin/のansibleパッケージへのシンボリックリンクが作成されないことだと思います。しかし、そのようなシンボリックリンクを作成する方法と、そもそもなぜそれが最初に表示されないのかはわかりません。

ここから先に進む方法を誰かが知っていますか?すべてのヒントは大歓迎です!

7
kramer65

シェルからansibleを呼び出すと、bashは$PATHで、実行可能なansibleという名前のファイルを検索します。これが唯一の問題ではないかもしれませんが、これが、表示されているエラーの直接の原因です。 .Eggファイル自体は実行可能ファイルではなく、単にコードを配布するために使用されるファイルです。

Ansibleが正しくインストールされている場合は、 locate またはOSX Finder GUIを使用して検索できます。名前は、ファイル拡張子なしで正確に一致する必要があります。おそらく、ansible実行可能ファイルと同じ場所にansible-connectionansible-consoleなども見つかります。あなたがそれを見つけたら、素晴らしい!テストして、次のようにターミナルで$PATHにそのディレクトリを追加します。

export PATH=$PATH:/path/to/ansible

ここで、/path/to/ansibleは、実行可能ファイルを見つけたディレクトリです。 $PATH変数に対するこの変更は一時的なものであり、シェルを閉じると消えます。 bashからansibleを実行できるようになった場合は、$HOME/.bash_profileファイルの最後にエクスポートを追加するか、/etc/paths.dにルールを追加することで、変更を永続的にすることができます(Appleが推奨)。それらを正確に行う方法の詳細については、慣れていない場合は here を参照してください。

さて、それが問題ではなく、ansible実行可能ファイルが見つからない場合は、インストール自体が問題です。仮想環境を使用してみて(インストールされている場合)、githubからプルしているバージョンが壊れていないことを確認することもできます。

git clone https://github.com/ansible/ansible.git
cd ansible
virtualenv venv
source venv/bin/activate
pip install .
which ansible

この記事を書いている時点では、上記でansibleが動作するようになっています。

7
rnorris

Macでansibleが存在する場所を見つけます。ほとんどの場合、その/Users/<yourusername>/Library/Python/3.7/binまたは/Users/<yourusername>/Library/Python/2.7/bin。その後...

export PATH=$PATH:/Users/<yourusername>/Library/Python/3.7/bin

これは.bashrcファイルに保存できます。

2
wale

ソフトリンクを作成する必要があるだけだと思います

ln -s /Users/${yourname}/Library/Python/${python version}/bin/ansible /usr/local/bin/ansible

0
caopeng

Ansibleのドキュメントで提案されている方法 に従って、Ansibleをアンインストールし、pipを使用して再インストールすることをお勧めします。

または、最新の開発バージョンを探している場合:

pip install git+https://github.com/ansible/ansible.git@devel

OS X Mavericksにインストールする場合、コンパイラからノイズが発生する可能性があります。回避策は次のとおりです。

$ Sudo CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install ansible

Virtualenvを使用する読者は、virtualenvの下にAnsibleをインストールすることもできますが、心配せずに、Ansibleをグローバルにインストールすることをお勧めします。 easy_installを使用してansibleを直接インストールしないでください。

0
taleinat