Πώς να εγκαταστήσετε μια μονάδα Perl στο Linux χωρίς άδεια ρίζας
Η εγκατάσταση μιας λειτουργικής μονάδας Perl δεν είναι δουλειά της μεγαλοφυΐας, αλλά η λήψη της χωρίς πρόσβαση από το root μπορεί να είναι μια δύσκολη εργασία (φυσικά δεν είναι αδύνατη). Ενδέχεται να αντιμετωπίσετε αυτήν την κατάσταση όταν δεν έχετε δικαιώματα σε τυπικούς καταλόγους όπου είναι εγκατεστημένη μια ενότητα Perl. Σε αυτό το σεμινάριο θα δούμε πώς μπορούμε να εγκαταστήσουμε μια υπομονάδα Perl χωρίς άδεια root ή super user εγκαθιστώντας το σε ξεχωριστούς μη τυποποιημένους καταλόγους.
Το πρώτο βήμα
Πριν προχωρήσουμε, ας ξεκαθαρίσουμε μερικά πράγματα. Πρώτα απ 'όλα, υποθέτω ότι έχετε εγκαταστήσει το Perl στο σύστημά σας. Εκτός από αυτό, θα χρησιμοποιήσω τους παρακάτω καταλόγους για να εγκαταστήσω την ενότητα Perl:
/ home / perl_modules / bin / home / perl_modules / man / αρχική / perl_modules / man / man1 / home / perl_modules / lib
Μπορείτε να δημιουργήσετε αυτούς τους καταλόγους (bin, man, man / man3 και lib) οπουδήποτε θέλετε. Θα χρησιμοποιήσουμε αυτή τη διαδρομή στη διαμόρφωση του Perl. Θα πρέπει να αντικαταστήσετε τη διαδρομή που χρησιμοποιείται στο σεμινάριο στη δική σας διαδρομή καταλόγου.
Δεύτερο βήμα
Τώρα πρέπει να ορίσουμε μερικές μεταβλητές για να ρυθμίσουμε τοπικά την Perl. Αυτές οι ρυθμίσεις θα χρησιμοποιηθούν για να ενημερώσετε την ηλεκτρονική μονάδα Perl όπου πρέπει να εγκατασταθεί. Για να γίνει αυτό, θα πρότεινα να γράψουμε όλες αυτές τις μεταβλητές σε ένα αρχείο και στη συνέχεια να το χρησιμοποιήσουμε κατά την εγκατάσταση. Θα μας εξοικονομήσει χρόνο και προσπάθεια γράφοντας τις χρονοβόρες εντολές και θα είναι καλό για μελλοντική χρήση.
Ας υποθέσουμε ότι δημιουργούμε ένα αρχείο " perl_local_config " στον / home κατάλογο (το αρχείο μπορεί να δημιουργηθεί οπουδήποτε θέλετε):
αγγίξτε perl_local_config
Τώρα ας επεξεργαστούμε αυτό το αρχείο για να ρυθμίσετε τις μεταβλητές διαμόρφωσης. Γράψτε τις ακόλουθες μεταβλητές σε αυτήν:
PREFIX = / home / perl_modules \ INSTALLSCRIPT = / home / perl_modules / bin \ INSTALLBIN = / home / perl_modules / lib \ INSTALLMAN1DIR = / home / perl_modules / man1 \ INSTALLSITELIB =
Τρίτο βήμα
Κατεβάστε τη μονάδα Perl από το CPAN (ή από όπου θέλετε). Αποσυμπιέστε το. Μεταβείτε στον κατάλογο μονάδων. Τώρα, τα τυπικά βήματα για την εγκατάσταση μιας μονάδας Perl είναι:
perl Makefile.PL κάνουν make make make install (αν όλες οι δοκιμές είναι επιτυχείς)
Δεδομένου ότι δεν έχετε πρόσβαση root, το perl Makefile.PL θα δώσει σφάλμα. Και εδώ έρχεται το τοπικό αρχείο ρυθμίσεων για τη διάσωσή μας. Εκτελέστε αυτές τις εντολές μία προς μία:
perl Το Makefile.PL `cat / home / perl_local_config`
Εάν η μονάδα Perl εξαρτάται από άλλη μονάδα Perl τότε η παραπάνω εντολή θα δημιουργήσει σφάλμα. Σε αυτή την περίπτωση, κατεβάστε και εγκαταστήστε τις μονάδες από τις οποίες εξαρτάται. Θα ακολουθηθεί η ίδια διαδικασία, την οποία συζητούμε εδώ.
κάνει δοκιμή
Όλες οι δοκιμές θα πρέπει να περάσουν με επιτυχία.
κάντε την εγκατάσταση
Περαιτέρω αντιμετώπιση προβλημάτων
Κατά την εκτέλεση της μονάδας Perl μπορεί να δημιουργηθεί σφάλμα όπως αυτό:
Δεν είναι δυνατός ο εντοπισμός του τοπικού / ανασυνδυασμού .pm στο @INC (@INC περιέχει: XXXXX ...... XXXXX) στο / home / bin / your_perl_module γραμμή XX.
Αυτό σημαίνει ότι η Perl ψάχνει για την ενότητα σας στον κατάλογο lib directory και όχι εκείνον στον οποίο το έχετε εγκαταστήσει. Για να επιλύσετε αυτό το σφάλμα, προσθέστε τον τοπικά δημιουργημένο κατάλογο lib (/ home / perl_modules / lib στο παράδειγμα) στη διαδρομή της βιβλιοθήκης όπως αυτή:
εξαγωγή PERL5LIB = / home / perl_modules / lib / perl5 /: / home / perl_modules / lib / perl5 / site_perl:
Αλλάξτε τις διαδρομές με τη δική σας διαδρομή καταλόγου.
Ελπίζω ότι το σεμινάριο ήταν εύκολο να κατανοηθεί και ήταν απλό να το ακολουθήσεις. Ελπίζω επίσης ότι τώρα μπορείτε να εγκαταστήσετε τις μονάδες Perl σε τοπικό επίπεδο, χωρίς προνομιακά δικαιώματα χρηστών, όπως τώρα ένας champ. Θα εκτιμούσα τα σχόλιά σας. Εγγραφείτε στο ενημερωτικό δελτίο εάν βρήκατε το εκπαιδευτικό βοήθημα χρήσιμο και θέλετε να μείνετε σε επαφή για περισσότερες ενημερώσεις. Απολαμβάνω :)