Installez Python à partir des sources avec Ansible

Je voudrais utiliser Ansible pour installer Python 2.7.10 à partir des sources sur CentOS. Cette fois, c'est Python, mais si vous l'utilisez, vous pouvez l'utiliser pour installer d'autres bibliothèques.

Ce que vous voulez faire (commande)

Voici ce que je veux faire. / usr / local / est spécifié comme destination d'installation, et / var / tmp / est spécifié comme destination de stockage temporaire de la source.

yum install gcc
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz -P /var/tmp/
tar xvzf /var/tmp/Python-2.7.10.tgz -C /var/tmp/
cd /var/tmp/Python-2.7.10/
./configure CFLAGS=-fPIC --enable-shared --prefix=/usr/local/
make
make install
ln /usr/local/lib/libpython2.7.so.1.0 /lib64/libpython2.7.so.1.0

J'installe également gcc car cela peut provoquer une erreur lors de l'exécution de configure. Il a été installé lorsque j'ai exécuté make install, mais j'ai eu une erreur lorsque j'ai exécuté le Python installé, donc j'ai mis un lien symbolique à la fin.

Référence: [Traitement des erreurs Python: erreur lors du chargement des bibliothèques partagées: libpython2.7.so.1.0: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire de ce type](http://kenzo0107.hatenablog.com/entry/2015/02/ 17/114506)

playbook

La source

- hosts: all
  become: yes
  tasks:

    - name: Install gcc
      yum: name=gcc state=latest

    - name: Create tmp directory
      file: path=/var/tmp/Python-2.7.10 state=directory

    - name: Download Python
      get_url: >
        url=https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
        dest=/var/tmp/Python-2.7.10.tgz
        creates=/usr/local/bin/python
      environment:
        LANG: C
        LC_ALL: C
        LC_MESSAGES: C

    - name: Unarchive Python
      unarchive: src=/var/tmp/Python-2.7.10.tgz dest=/var/tmp/ copy=no

    - name: Install Python
      command: >
        {{ item }}
        chdir=/var/tmp/Python-2.7.10/
        creates=/usr/local/bin/python
      with_items:
        - './configure CFLAGS=-fPIC --enable-shared --prefix=/usr/local/'
        - make
        - make install

    - name: Link Python lib
      file: src=/usr/local/lib/libpython2.7.so.1.0 dest=/lib64/libpython2.7.so.1.0 state=link

La description

Install gcc

Comme mentionné ci-dessus, s'il n'y a pas de gcc, une erreur se produira, donc je l'ai installé avec yum.

Create tmp directory

Quand j'ai exécuté ʻUnarchive Python` après cela, j'avais besoin du répertoire de destination, donc je l'ai créé ici à l'avance.

Download Python

Téléchargez la source Python. S'il existe déjà, il ne sera pas téléchargé.

Unarchive Python

Décompressez tgz. Si copy = yes, cela fait référence au fichier sur l'hôte exécutant Ansible. Cette fois, j'ai mis copy = no car je veux faire référence au fichier sur le serveur. Quand j'ai fait cela, j'ai rencontré l'erreur "Aucun fichier ou répertoire de ce type" même si le fichier devait exister, j'ai donc ajouté "environnement".

Référence: Aucun fichier ou répertoire de ce type dans la désarchivage d'Ansible

Install Python

Ici, nous utilisons simplement command pour exécuter configure, make et make install. À ce moment-là, chdir est utilisé pour se déplacer vers le répertoire où se trouve la source. J'ai beaucoup utilisé ces commandes, donc je pensais qu'il s'agissait des fonctionnalités par défaut d'Ansible, mais quand je les ai recherchées, je n'étais pas sûr. Si «crée» est spécifié et que «/ usr / local / bin / python» existe déjà, il sera ignoré.

Link Python lib

Un lien symbolique est affiché comme contre-mesure de l'erreur écrite au début.

Recommended Posts

Installez Python à partir des sources avec Ansible
Installer Python à partir de la source
Installer ansible à partir du code source
Installez vim7.3 (+ python2.4) depuis la source (compatible avec Gundo.vim)
Installez Apache 2.4.41 depuis la source
Installez Voluptuous avec Python 2.5
Installez Python avec pyenv
[Ansible] Installer dnf sur Centos7 avec l'interpréteur Python3
Installer l'environnement Python avec Anaconda
Installer une bibliothèque externe avec Python
Installez pyenv depuis Homebrew, installez Python depuis pyenv
Avec skype, notifiez avec skype de python!
Installation d'Apache Maven (à partir des sources)
Installez le dernier Python de pyenv installé par homebrew
Appeler C depuis Python avec DragonFFI
Installez Python 2.7.9 et Python 3.4.x avec pip.
Utilisation de Rstan de Python avec PypeR
pyenv-vertualenv n'installe pas correctement la série python3
Installer python
Mettre le suffixe 2.11 dans la source avec ansible
Installer le plug-in Python avec Netbeans 8.0.2
Exécutez Aprili depuis Python sur Orange
Installation d'Ansible
Appelez python de nim avec Nimpy
Compilez et installez Git à partir des sources.
Exécutez Ansible à partir de Python à l'aide de l'API
Charger fbx depuis python avec cinema4d
Installez python avec mac vs code
Collecter des informations sur Twitter avec Python (API Twitter)
Recevoir des données textuelles de mysql avec python
Obtenir le code HTML de l'élément avec du sélénium Python
[Note] Obtenir des données de PostgreSQL avec Python
Créez wordcloud à partir de votre tweet avec python3
Installer Python en tant que Framework avec pyenv
Tweet de python avec Twitter Developer + Tweepy
Efficacité commerciale à partir de zéro avec Python
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
Manipulation d'Azure CosmosDB à partir de Python Part.2
Si scipy est python 2.7.8, l'installation de pip trébuche
Acquisition d'images depuis une caméra avec Python + OpenCV
Premiers pas avec Dynamo de Python boto
Essayez d'appeler Python depuis Ruby avec une économie
Scraping depuis un site authentifié avec python
Utilisation des fonctions C ++ de python avec pybind11
Installez PostgreSQL à partir du code source sur CentOS
Comment installer python3 avec docker centos
FizzBuzz en Python3
Grattage avec Python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Installation locale de Python
Jouez avec 2016-Python
sql à sql
AES256 avec python
Testé avec Python