Σχετικά με το life-cycle του λειτουργικού συστήματος ενός server
George Notaras
gnot at g-loaded.eu
Sun Apr 17 03:56:25 EEST 2011
On 17/04/2011 03:20, Antonis Konstantinos Tzorvas wrote:
> η παράλληλη συνύπαρξη τους είναι η λύση.
> έτσι και αλλιώς δεν μπορείς να περάσεις ολοκληρωτικά στην python3
> από τη στιγμή που το 80% των όσων υπάρχουν είναι σε python2.
>
> ποιο το κόστος όμως του να έχεις και τις 2;
>
> και να έχεις default τη 2 και τη 3 να την έχεις για εκεί που χρειάζεσαι
> μόνο;
>
> και το gentoo με python δουλεύει το portage, αλλά δεν έχω παρατηρήσει
> τίποτα το τρελό σε unstable branch.
> βέβαια default είναι η python2.
όλα τα προβλήματα ξεκινάνε από το πώς θέλει κάποιος να τρέχει τα
application servers των web εφαρμογών, των django εφαρμογών στην
προκειμενη περίπτωση.
Σε γενικές γραμμές υπάρχουν δύο τρόποι να το κάνει:
1) Τρέχοντας την εφαρμογή ως background process μέσω του εσωτερικού
fastcgi server που έχει το django. Έτσι έχουμε δύο ξεχωριστούς servers:
τον application server της εφαρμογής (fastcgi) και τον κυρίως web
server. Στην περίπτωση αυτή ο web server επικοινωνεί με τον application
server μέσω του πρωτόκολλου fastcgi για να εξυπηρετήσει τα requests. Το
μεγάλο μειονέκτημα είναι ότι δεν υπάρχει κάποια κεντρική διαχείριση όλων
των application servers.
2) Τρέχοντας τις django εφαρμογές ως WSGI applications. Στην περίπτωση
αυτή, υπάρχει το apache module mod_wsgi, το οποίο μπορεί να
διαχειρίζεται WSGI applications, δηλαδή μπορεί να ξεκινάει και να
τερματίζει όσα processes των εφαρμογών μας χρειάζονται για να
εξυπηρετηθούν τα requests.
Για πολλούς λόγους προτιμώ τον δεύτερο τρόπο αυτή τη στιγμή. Οι λόγοι
δεν έχουν σημασία. Εκείνο που έχει σημασία είναι ότι το mod_wsgi είναι
compiled με κάποια συγκεκριμένη Python version. Οπότε είναι αδύνατο να
προσπαθήσεις να τρέξεις τις μισές web εφαρμογές για παράδειγμα με την
python 2.4 και τις άλλες μισές με τη 2.6.
Θα μπορούσε κανείς να κάνει custom compile το mod_wsgi. Το έκανα και
αντιμετώπισα κάποια άλλα προβλήματα με κάποια virtual python
environments που έχω.
Σε γενικές γραμμές, η παράλληλη χρήση δύο εκδόσεων python για τους
σκοπούς που τις ήθελα δεν ήταν και η καλύτερη εμπειρία. Το αποτέλεσμα
είναι να μην τρέχω τα django apps στο σερβερ μου (όπως θα ήθελα) μέχρι
να ξεκαθαρίσω κα΄ποια ζητήματα.
Για άλλες χρήσεις, όπως πχ για να εκτελει κανείς διάφορα command line
utilities δεν υπάρχει κανένα απολύτως πρόβλημα όσες εκδόσεις κι αν έχει
εγκατεστημένες παράλληλα.
Αν και πολύ συνοπτικά και βιαστικά, ελπίζω να σου έδωσα μια γενική
εικόνα των προβλημάτων που αντιμετώπισα εγώ.
More information about the Linux-greek-users
mailing list