Цель и окружающая среда
Я использую ansible против Ubuntu 16.04 .
Конечная цель - использовать модуль mongodb_user
.
Для этого требуется pymongo
, поэтому требуется python-pip
Что я делаю
- name: Package prerequisites for pymongo ansible module
apt:
force_apt_get: yes
name: ['python-pip', 'python-setuptools']
install_recommends: no
state: present
become: true
tags:
- mongo
register: output
- name: Upgrade pip to latest vesion
pip:
name: pip
extra_args: --upgrade
register: output
- debug:
var: output
Проблема
Это фактический вывод; пожалуйста, обратите внимание:
- кажется
pip
игнорирует инструкции по обновлению
- двоичный файл
/usr/bin/pip2
, в то время как я был
"output": {
"changed": true,
"cmd": [
"/usr/bin/pip2",
"install",
"--upgrade",
"pip"
],
"failed": false,
"name": [
"pip"
],
"requirements": null,
"state": "present",
"stderr": "You are using pip version 8.1.1, however version 18.1 is available.\nYou should consider upgrading via the 'pip install --upgrade pip' command.\n",
"stderr_lines": [
"You are using pip version 8.1.1, however version 18.1 is available.",
"You should consider upgrading via the 'pip install --upgrade pip' command."
],
"stdout": "Collecting pip\n Using cached https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl\nInstalling collected packages: pip\nSuccessfully installed pip-8.1.1\n",
"stdout_lines": [
"Collecting pip",
" Using cached https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl",
"Installing collected packages: pip",
"Successfully installed pip-8.1.1"
],
"version": null,
"virtualenv": null
}
Странно то, что из командной строки я получил
$ /usr/bin/pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ /home/mirko/.local/bin/pip -V
pip 18.1 from /home/mirko/.local/lib/python2.7/site-packages/pip (python 2.7)
Попробуйте
Я попытался вручную обновить pip после установки python-pip
и получил еще одну странную вещь: pip не хочет удалять старый pip ...
sudo pip install pip --upgrade
[sudo] password for mirko:
The directory '/home/mirko/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/mirko/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pip
Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 1.2MB/s
Installing collected packages: pip
Found existing installation: pip 8.1.1
Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Вопрос (ы)
Как правильно использовать pip с ansible против Ubuntu 16.04?
Должен / Могу ли я заставить ANSIBLE использовать "мой" пункт?
Должен ли я удалить "неправильный" пункт?
Я сделал что-то не так, чтобы создать эту проблему с двумя версиями?