Node.js / npm / Συνθέτης χωρίς ρίζα

Σε μια παλαιότερη ανάρτηση ιστολογίου περιέγραψα πώς να φιλοξενήσω το Node.js δωρεάν χρησιμοποιώντας το Heroku . Τώρα θα σας δείξω έναν τρόπο με τον οποίο μπορείτε να εγκαταστήσετε Node.js , npm και Composer σε οποιονδήποτε άλλο κοινόχρηστο κεντρικό υπολογιστή χωρίς δικαιώματα ρίζας με μερικές γραμμές κώδικα. Με αυτό μπορείτε να εγκαταστήσετε πακέτα, να αναπτύξετε εφαρμογές Vue.js ή απλά να ξεκινήσετε έναν διακομιστή Express.js. Εργαζόμαστε πάντα στον κατάλογο χρηστών και χρησιμοποιούμε το nvm - το Node Package Manager.


Είναι σημαντικό να βεβαιωθείτε εκ των προτέρων ότι ο συνθέτης και ο κόμβος δεν υπάρχουν και ότι οι ακόλουθες γραμμές δεν παράγουν έξοδο:

16c389ff1cdd9380cc5f9244775eb6c8

Πρώτα ορίζουμε προσωρινές μεταβλητές περιβάλλοντος που θα χρειαστούμε αργότερα. Για να γίνει αυτό, προσδιορίζουμε τον κατάλογο χρήστη του χρήστη (συνήθως ~/, σε ορισμένους κοινόχρηστους κεντρικούς υπολογιστές επίσης /www/htdocs/xxxxxx/) καθώς και την επιθυμητή έκδοση PHP (π.χ. /usr/bin/php72 για τον πάροχο All-Inkl , /usr/local/bin/ php7-72LAT ):

16c389ff1cdd9380cc5f9244775eb6c8

Τώρα ας βεβαιωθούμε ότι η PHP εκτελείται στην πιο πρόσφατη έκδοση στην κονσόλα. Για να γίνει αυτό, δημιουργούμε έναν νέο φάκελο στον αρχικό κατάλογο, δημιουργούμε έναν soft link και προσθέτουμε τον κατάλογο στην αρχή του PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Τώρα εγκαθιστούμε τον παγκόσμιο συνθέτη, κατεβάζοντας, ελέγχοντας και εκτελώντας το σενάριο εγκατάστασης, τοποθετώντας επίσης τον συνθέτη.phar στον κατάλογο χρηστών και δημιουργώντας ξανά ένα symlink:

16c389ff1cdd9380cc5f9244775eb6c8

Χρησιμοποιούμε nvm για να εγκαταστήσουμε το Node.js. Αυτό είναι ένα σενάριο bash που χρησιμοποιείται στην πραγματικότητα για εύκολη εναλλαγή μεταξύ εκδόσεων κόμβου. Εδώ χρησιμοποιούμε την ιδιότητα ότι το Node.js είναι εγκατεστημένο χωρίς δικαιώματα root:

16c389ff1cdd9380cc5f9244775eb6c8

Μια μικρή διόρθωση στο .bashrc ήταν απαραίτητη για μένα:

16c389ff1cdd9380cc5f9244775eb6c8

Τώρα μπορούμε να εγκαταστήσουμε και να ενεργοποιήσουμε την τρέχουσα σταθερή έκδοση του Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

Με τη βοήθεια του nvm μπορούμε επίσης να αλλάξουμε εύκολα εκδόσεις.

16c389ff1cdd9380cc5f9244775eb6c8

Μπόρεσα να ολοκληρώσω όλα αυτά τα βήματα με ορισμένους Γερμανούς παρόχους κοινόχρηστης φιλοξενίας χωρίς προβλήματα. Ορισμένοι κεντρικοί υπολογιστές έχουν προβλήματα με τους συμβολικούς συνδέσμους, αλλά υπάρχει επίσης μια λύση μέσω των ορισμών ψευδωνύμων . Για παράδειγμα, το ακόλουθο .bashrc βοηθά με το DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Υπάρχουν επίσης προβλήματα, για παράδειγμα, κατά την πρόσβαση στο /proc/stat σε εικονικά / κοινόχρηστα περιβάλλοντα, γι' αυτό, για παράδειγμα, η συνάρτηση κόμβου os.cpus() επιστρέφει απροσδιόριστη αντί για τον σωστό αριθμό πυρήνα. Αυτό οδηγεί σε μηνύματα σφάλματος όπως "Δεν είναι δυνατή η ανάγνωση της ιδιότητας 'length' of undefined" κατά την εγκατάσταση πακέτων npm. Κατάφερα να επιλύσω το πρόβλημα χρησιμοποιώντας μια πρόσφατη έκδοση Node.js (π.χ. 11.15.0) που αντιμετώπισε το πρόβλημα.

Πίσω