2. Χρήση της Python σε πλατφόρμες Unix
**************************************


2.1. Λήψη και εγκατάσταση της πιο πρόσφατης έκδοσης Python
==========================================================


2.1.1. Σε Linux
---------------

Η Python είναι προεγκατεστημένη στις περισσότερες διανομές Linux, ενώ
διατίθεται ως πακέτο σε όλες τις υπόλοιπες.  Ωστόσο, υπάρχουν ορισμένα
χαρακτηριστικά που μπορεί να θέλετε να χρησιμοποιήσετε, τα οποία δεν
είναι διαθέσιμα στο πακέτο της διανομής σας.  Μπορείτε να κάνετε
compile την πιο πρόσφατη έκδοση της Python από τον πηγαίο κώδικα.

Στην περίπτωση που η πιο πρόσφατη έκδοση Python δεν είναι
προεγκατεστημένη και επίσης δεν ανήκει στα αποθετήρια, μπορείτε να
δημιουργήσετε πακέτα για τη δική σας διανομή.  Δείτε τα παρακάτω
links:

Δείτε επίσης:

  https://www.debian.org/doc/manuals/maint-guide/first.en.html
     για τους χρήστες του Debian

  https://en.opensuse.org/Portal:Packaging
     για τους χρήστες του OpenSuse

  https://docs.fedoraproject.org/en-US/package-
  maintainers/Packaging_Tutorial_GNU_Hello/
     για τους χρήστες του Fedora

  https://slackbook.org/html/package-management-making-packages.html
     για τους χρήστες του Slackware


2.1.1.1. Εγκατάσταση του IDLE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Σε μερικές περιπτώσεις, το IDLE μπορεί να μην περιλαμβάνεται στην
εγκατάσταση της Python.

* Για τους χρήστες του Debian και του Ubuntu:

     sudo apt update
     sudo apt install idle

* Για τους χρήστες των Fedora, RHEL, και CentOS:

     sudo dnf install python3-idle

* Για τους χρήστες των SUSE και OpenSUSE:

     sudo zypper install python3-idle

* Για τους χρήστες του Alpine Linux:

     sudo apk add python3-idle


2.1.2. Σε FreeBSD και OpenBSD
-----------------------------

* Χρήστες του FreeBSD, για την προσθήκη του πακέτου χρησιμοποιήστε:

     pkg install python3

* Χρήστες του OpenBSD, για την προσθήκη του πακέτου χρησιμοποιήστε:

     pkg_add -r python

     pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz

  Για παράδειγμα, χρήστες του i386 κάνουν λήψη της έκδοσης 2.5.1
  χρησιμοποιώντας:

     pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz


2.2. Μεταγλώττιση της Python
============================

Δείτε επίσης:

  Αν θέλετε να συνεισφέρετε στο CPython, ανατρέξτε στον devguide, που
  περιλαμβάνει οδηγίες μεταγλώττισης και άλλες συμβουλές για τη
  ρύθμιση του περιβάλλοντος.

Αν θέλετε να κάνετε compile το CPython μόνοι σας, το πρώτο πράγμα που
πρέπει να κάνετε είναι να πάρετε τον πηγαίο κώδικα. Μπορείτε να
κατεβάσετε είτε τον πηγαίο κώδικα της τελευταίας έκδοσης είτε απλά να
πάρετε έναν καινούργιο clone.  Θα χρειαστεί επίσης να εγκαταστήσετε
τις build requirements.

Η διαδικασία της μεταγλώττισης απαρτίζεται από τις συνήθεις εντολές:

   ./configure
   make
   make install

Το Configuration options και οι όροι για συγκεκριμένες πλατφόρμες Unix
τεκμηριώνονται εκτενώς στο αρχείο README.rst στην βάση του πηγαίου
δέντρου της Python.

Προειδοποίηση:

  Το "make install" μπορεί να αντικαταστήσει ή να μεταμφιέσει το
  "python3" σε δυαδικό. Επομένως προτείνεται το "make altinstall" σε
  σχέση με το "make install" που μπορεί να εγκαταστήσει μόνο το
  "*exec_prefix*/bin/python*version*".


2.3. Διαδρομές και αρχεία που σχετίζονται με την Python
=======================================================

Αυτά ενδέχεται να διαφέρουν ανάλογα με τις τοπικές συμβάσεις
εγκατάστασης∙ τα "prefix" και "exec_prefix" εξαρτώνται από την
εγκατάσταση και θα πρέπει να ερμηνεύονται όπως για το λογισμικό GNU∙
μπορεί να είναι τα ίδια.

Για παράδειγμα, στα περισσότερα Linux συστήματα, η προεπιλογή είναι
και για τα δύο "/usr".

+-------------------------------------------------+--------------------------------------------+
| File/directory                                  | Που σημαίνει                               |
|=================================================|============================================|
| "*exec_prefix*/bin/python3"                     | Προτεινόμενη θέση του διερμηνέα.           |
+-------------------------------------------------+--------------------------------------------+
| "*prefix*/lib/python*version*",                 | Προτεινόμενες θέσεις για τους καταλόγους   |
| "*exec_prefix*/lib/python*version*"             | που περιέχουν τα βασικά modules.           |
+-------------------------------------------------+--------------------------------------------+
| "*prefix*/include/python*version*",             | Προτεινόμενες θέσεις των καταλόγων που     |
| "*exec_prefix*/include/python*version*"         | περιέχουν τα αρχεία κεφαλίδων (include     |
|                                                 | files) που απαιτούνται για την ανάπτυξη    |
|                                                 | επεκτάσεων της Python και την ενσωμάτωση   |
|                                                 | του διερμηνέα.                             |
+-------------------------------------------------+--------------------------------------------+


2.4. Διάφορα
============

Για να εκτελείτε εύκολα τα Python scripts σε συστήματα Unix, πρέπει να
τα κάνετε εκτελέσιμα, για παράδειγμα με

   $ chmod +x script

και να προσθέσετε μια κατάλληλη γραμμή Shebang στην αρχή του script.
Μια καλή επιλογή είναι συνήθως

   #!/usr/bin/env python3

που κάνει αναζήτηση για τον διερμηνέα της Python σε ολόκληρο το
"PATH".  Ωστόσο, ορισμένα Unices μπορεί να μην έχουν την εντολή
**env**, οπότε μπορεί να χρειαστεί να κωδικοποιήσετε το
"/usr/bin/python3" ως διαδρομή του διερμηνέα.

Για να χρησιμοποιήσετε εντολές shell στα Python script σας, δείτε την
ενότητα "subprocess".


2.5. Custom OpenSSL
===================

1. Για να χρησιμοποιήσετε τις ρυθμίσεις του OpenSSL και το αποθετήριο
   εμπιστοσύνης συστήματος, εντοπίστε τον κατάλογο με το αρχείο
   "openssl.cnf" ή τον συμβολικό σύνδεσμο στο "/etc". Στις
   περισσότερες διανομές το αρχείο βρίσκεται είτε στο "/etc/ssl" είτε
   στο "/etc/pki/tls". Ο κατάλογος θα πρέπει επίσης να περιέχει ένα
   αρχείο "cert.pem" και/ή έναν κατάλογο "certs".

      $ find /etc/ -name openssl.cnf -printf "%h\n"
      /etc/ssl

2. Λήψη, δημιουργία και εγκατάσταση του OenSSL. Βεβαιωθείτε ότι
   χρησιμοποιείτε το "install_sw" και όχι το "install". Ο στόχος
   "install_sw" δεν παρακάμπτει το αρχείο "openssl.cnf".

      $ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz
      $ tar xzf openssl-VERSION
      $ pushd openssl-VERSION
      $ ./config \
          --prefix=/usr/local/custom-openssl \
          --libdir=lib \
          --openssldir=/etc/ssl
      $ make -j1 depend
      $ make -j8
      $ make install_sw
      $ popd

3. Μεταγλώττιση της Python με προσαρμοσμένο OpenSSL (δείτε τις
   επιλογές configure "----with-openssl" και "----with-openssl-rpath")

      $ pushd python-3.x.x
      $ ./configure -C \
          --with-openssl=/usr/local/custom-openssl \
          --with-openssl-rpath=auto \
          --prefix=/usr/local/python-3.x.x
      $ make -j8
      $ make altinstall

Σημείωση:

  Οι διορθωτικές εκδόσεις του OpenSSL έχουν μια δυαδική διεπαφή
  εφαρμογής (ABI) συμβατή προς τα πίσω. Δεν χρειάζεται να κάνετε
  compile εκ νέου την Python για να ενημερώσετε το OpenSSL. Αρκεί να
  αντικαταστήσετε την προσαρμοσμένη εγκατάσταση του OpenSSL με μια
  νεότερη έκδοση.
