Ansible - pip3 इंस्टॉल विफल रहता है
मैं CentOS 7 पर Ansible को स्थापित करने की कोशिश कर रहा हूं, और Ansible ने Python 3 का उपयोग करने के लिए कॉन्फ़िगर किया है। मैंने Python2 और Python3 दोनों को स्थापित किया है।
[root@ansible1 ~]# python --version
Python 2.7.5
[root@ansible1 ~]# python3 --version
Python 3.6.8
यदि मैं उपयोग करने योग्य स्थापित करता हूं yum install ansible
, तो ansible --version
कमांड दिखाता है कि Ansible को 2.7.5 का उपयोग करने के लिए कॉन्फ़िगर किया गया है। मैं ansible ( yum remove ansible
) की स्थापना रद्द करता हूं ;
[root@ansible1 ~]# ansible --version
ansible 2.9.10
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /bin/ansible
python version = 2.7.5 (default, Aug 7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
के अनुसार https://docs.ansible.com/ansible/latest/reference_appendices/python_3_support.html:
पायथन 3 के तहत चलाने / usr / bin / ansible का सबसे आसान तरीका यह है कि इसे पाइप के पायथन 3 संस्करण के साथ स्थापित किया जाए। यह Python3 के साथ डिफ़ॉल्ट / usr / bin / ansible रन बनाएगा
मेरे पास पाइप का संस्करण 9.0.3 स्थापित है।
[root@ansible1 ~]# pip3 --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
Ansibles प्रलेखन के बाद, मैं pip3 install ansible
pip3 का उपयोग करके Ansible को स्थापित करने के लिए जारी करता हूं।
[root@ansible1 ~]# pip3 install ansible
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting ansible
Using cached https://files.pythonhosted.org/packages/4b/69/c8aef60ce070fe6872e27db65f588bd0ffe8892a980cd3f4d844d8b72152/ansible-2.9.12.tar.gz
Requirement already satisfied: jinja2 in /usr/local/lib64/python3.6/site-packages (from ansible)
Requirement already satisfied: PyYAML in /usr/local/lib64/python3.6/site-packages (from ansible)
Requirement already satisfied: cryptography in /usr/local/lib64/python3.6/site-packages (from ansible)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib64/python3.6/site-packages (from jinja2->ansible)
Requirement already satisfied: six>=1.4.1 in /usr/local/lib/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/local/lib64/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: pycparser in /usr/local/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.8->cryptography->ansible)
Installing collected packages: ansible
Running setup.py install for ansible ... done
Successfully installed ansible-2.9.12
यहाँ pip3 show ansible
कमांड का आउटपुट है ।
[root@ansible1 ~]# pip3 show ansible
Name: ansible
Version: 2.9.12
Summary: Radically simple IT automation
Home-page: https://ansible.com/
Author: Ansible, Inc.
Author-email: [email protected]
License: GPLv3+
Location: /usr/local/lib/python3.6/site-packages
Requires: jinja2, PyYAML, cryptography
हालाँकि, ansible --version
आदेश निम्न देता है।
-bash: /bin/ansible: No such file or directory
इसी तरह /usr/bin/ansible --version
,:
-bash: /usr/bin/ansible: No such file or directory
pip show ansible
आदेश शो स्थान है कि /usr/local/lib/python3.6/site-packages/ansible
। यह निर्देशिका मौजूद है, और इसमें कई फाइलें और फ़ोल्डर्स हैं, लेकिन कोई भी अंयनिष् ट विशिष्ट विन्यास फाइल (जैसे ansible.cfg) या बाइनरी फाइलें (जैसे ansible) जिनका उपयोग किया जा सकता है (सबसे अच्छा मैं बता सकता हूं)।
जवाब
बैश आज्ञाओं के पथ को कैश करता है , और यदि कोई कमांड स्थानांतरित हो जाती है (जैसा कि यह आपके मामले में प्रतीत होता है) तो बैश इसे तब तक नहीं उठाएगा जब तक कि कैश साफ़ नहीं हो जाता।
आप ansible
कैश से साफ़ कर सकते हैं :
hash -d ansible
या इसके साथ पूरा कैश साफ़ करें:
hash -r