-Il semble s'appeler Dandified Yum
yum install -y dnf
)En termes simples, «dnf» est le successeur de «yum», et à partir de CentOS 8, il prend par défaut «dnf» au lieu de «yum».
Vous pouvez utiliser la commande yum
dans CentOS8, mais ce n'est qu'un lien symbolique vers dnf
.
La prise en charge de Python 2.X a pris fin le 1er janvier 2020.
--yum ne fonctionne qu'avec python2.X --dnf fonctionne avec python 2.x ou 3.X
Donc à partir de maintenant, «dnf» deviendra le courant dominant.
Installez dnf dans le conteneur CentOS 7.X Docker.
[dnfuser@localhost ~]$ docker run -it --rm centos:7 bash
[root@3b4a088d7e6f /]# yum update -y
[root@3b4a088d7e6f /]# yum install -y epel-release
[root@3b4a088d7e6f /]# yum install -y dnf
[root@3b4a088d7e6f /]# head -n1 /usr/bin/dnf
#!/usr/bin/python2
Apparemment, le dnf
de CentOS 7.X fonctionne sur python 2.X.
Je l'ai essayé après l'installation de python3.X, mais dnf
devient 2.X.
https://docs.ansible.com/ansible/latest/modules/dnf_module.html
Si l'interpréteur est Python 2.X, vous pouvez l'installer facilement.
playbook.yml
- name: Install epel-release
yum:
name: epel-release
state: present
become: yes
- name: Install dnf
yum:
name: dnf
state: present
become: yes
ansible.cfg
[default]
ansible_python_interpreter=/usr/bin/python3
Comme mentionné ci-dessus, si vous utilisez l'interpréteur Python 3.X par défaut, vous devrez le forcer à revenir à 2.X.
playbook.yml
- name: Install dnf for Centos7
block:
- name: Change interpreter
set_fact:
ansible_python_interpreter: "/usr/bin/python"
- name: Install epel-release
yum:
name: epel-release
state: present
become: yes
- name: Install dnf
yum:
name: dnf
state: present
become: yes
when:
- ansible_distribution_major_version | float < 8
L'interprète sera également 2.X pour les tâches suivantes.
Ansible 2.12 ver. Semble changer le comportement de l'interpréteur par défaut. (Peut-être que Python 3.X sera le choix préféré)
référence) https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html https://rheb.hatenablog.com/entry/ansible_interpreter_discovery
Dans la version actuelle (2.9), / usr / bin / python
est spécifié par défaut, donc la version Python utilisée peut différer selon le système d'exploitation.
La meilleure pratique pour ceux qui ne peuvent pas attendre la version 2.12 et qui souhaitent utiliser la commande dnf
est la suivante.
/ usr / bin / python
Pour ceux qui disent "Python 2.X c'est bien", vous pouvez utiliser l'interpréteur par défaut.
** Spécifiez l'interpréteur Python 2.X dans l'inventaire pour l'hôte CentOS 7.X **
inventory.yml
all:
children:
centos7:
hosts: centos7-1
vars:
ansible_python_interpreter: /usr/bin/python # /usr/bin/python2 est également OK
Si vous ne regroupez que CentOS7, cela semble facile à mettre en œuvre.
** Forcer l'interpréteur à passer à 2.X dans le playbook **
playbook.yml
- name: Change interpreter
set_fact:
ansible_python_interpreter: /usr/bin/python
En passant, j'utilise ceci au cas où Python 3.X deviendrait la valeur par défaut.
Recommended Posts