Installieren Sie Python von der Quelle mit Ansible

Ich möchte Ansible verwenden, um Python 2.7.10 von der Quelle unter CentOS zu installieren. Diesmal ist es Python, aber wenn Sie es verwenden, können Sie damit andere Bibliotheken installieren.

Was Sie tun möchten (Befehl)

Folgendes möchte ich tun. Als Installationsziel wird "/ usr / local /" und als temporäres Speicherziel der Quelle "/ var / tmp /" angegeben.

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

Ich installiere auch gcc, da dies beim Ausführen von configure zu einem Fehler führen kann. Es wurde installiert, als ich make install ausführte, aber ich habe einen Fehler erhalten, als ich das installierte Python ausgeführt habe, also habe ich am Ende einen symbolischen Link eingefügt.

Referenz: [Python-Fehlerbehandlung: Fehler beim Laden gemeinsam genutzter Bibliotheken: libpython2.7.so.1.0: Freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis](http://kenzo0107.hatenablog.com/entry/2015/02/ 17/114506)

playbook

Quelle

- 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

Erläuterung

Install gcc

Wie oben erwähnt, tritt ein Fehler auf, wenn kein "gcc" vorhanden ist. Deshalb habe ich ihn mit "yum" installiert.

Create tmp directory

Als ich danach "Unarchive Python" ausführte, brauchte ich das Zielverzeichnis, also habe ich es hier im Voraus erstellt.

Download Python

Laden Sie die Python-Quelle herunter. Wenn es bereits vorhanden ist, wird es nicht heruntergeladen.

Unarchive Python

Entpacke tgz. Wenn copy = yes, bezieht sich dies auf die Datei auf dem Host, auf dem Ansible ausgeführt wird. Dieses Mal setze ich "copy = no", weil ich auf die Datei auf dem Server verweisen möchte. Als ich dies tat, stieß ich auf den Fehler "Keine solche Datei oder kein solches Verzeichnis", obwohl die Datei existieren sollte, also fügte ich "Umgebung" hinzu.

Referenz: Keine solche Datei oder kein solches Verzeichnis in Ansibles Unarchiv

Install Python

Hier verwenden wir einfach command, um configure, make und make install auszuführen. Zu diesem Zeitpunkt wird "chdir" verwendet, um in das Verzeichnis zu wechseln, in dem sich die Quelle befindet. Ich habe diese Befehle häufig verwendet, daher dachte ich, sie seien die Standardfunktionen von Ansible, aber als ich sie nachschlug, war ich mir nicht sicher. Wenn "create" angegeben ist und "/ usr / local / bin / python" bereits vorhanden ist, wird es übersprungen.

Link Python lib

Ein symbolischer Link wird als Gegenmaßnahme für den eingangs erwähnten Fehler veröffentlicht.

Recommended Posts

Installieren Sie Python von der Quelle mit Ansible
Installieren Sie Python von der Quelle
Installieren Sie ansible aus dem Quellcode
Installieren Sie vim7.3 (+ python2.4) von der Quelle (kompatibel mit Gundo.vim)
Installieren Sie Apache 2.4.41 von der Quelle
Installieren Sie Voluptuous mit Python 2.5
Installieren Sie Python mit pyenv
[Ansible] Installieren Sie dnf unter Centos7 mit dem Python3-Interpreter
Installieren Sie die Python-Umgebung mit Anaconda
Installieren Sie eine externe Bibliothek mit Python
Installieren Sie pyenv von Homebrew, installieren Sie Python von pyenv
Mit Skype benachrichtigen Sie mit Skype von Python!
Installieren von Apache Maven (von der Quelle)
Installieren Sie das neueste Python von pyenv, das von Homebrew installiert wurde
Rufen Sie C von Python mit DragonFFI auf
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Verwenden von Rstan aus Python mit PypeR
pyenv-vertualenv installiert die Python3-Serie nicht gut
Installieren Sie Python
Setzen Sie Postfix 2.11 mit ansible in die Quelle
Installieren Sie das Python-Plug-In mit Netbeans 8.0.2
Führen Sie Aprili von Python auf Orange aus
Installation von Ansible
Rufen Sie Python von Nim mit Nimpy auf
Kompilieren und installieren Sie Git aus dem Quellcode.
Führen Sie Ansible über Python mithilfe der API aus
Laden Sie fbx aus Python mitinema4d
Installieren Sie Python mit Mac vs Code
Sammeln von Informationen von Twitter mit Python (Twitter API)
Empfangen Sie Textdaten von MySQL mit Python
Holen Sie sich HTML von Element mit Python-Selen
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
Installieren Sie Python als Framework mit pyenv
Tweet von Python mit Twitter Developer + Tweepy
Geschäftseffizienz von Grund auf mit Python
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
Bearbeiten von Azure CosmosDB aus Python Part.2
Bildaufnahme von der Kamera mit Python + OpenCV
Erste Schritte mit Dynamo von Python Boto
Versuchen Sie, Python von Ruby aus mit Sparsamkeit aufzurufen
Scraping von einer authentifizierten Site mit Python
Verwenden von C ++ - Funktionen aus Python mit pybind11
Installieren Sie PostgreSQL aus dem Quellcode unter CentOS
So installieren Sie Python3 mit Docker Centos
FizzBuzz in Python3
Scraping mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Lokale Installation von Python
Spielen Sie mit 2016-Python
SQL zu SQL
AES256 mit Python
Getestet mit Python