Μεταγλώττιση με χρήση του Makepkg
Ταχύτερη συσκευασία
Παράλειψη επαλήθευσης υπογραφής PGP
Εάν χρησιμοποιείτε makepkgαπευθείας, μολύνει κάπως το σύστημά σας. Η base-develπρέπει να εγκατασταθεί ομάδα πακέτο. Με αυτόν τον τρόπο, από προεπιλογή, οι εξαρτήσεις που χρειάζονται μόνο για τη δημιουργία του πακέτου, αλλά δεν χρειάζονται για τη χρήση του, παραμένουν εγκατεστημένες. Αυτή η προεπιλεγμένη συμπεριφορά μπορεί να αλλάξει, αλλά αυτό περιλαμβάνει την εγκατάσταση και την απεγκατάσταση πακέτων και τη ρύπανση του /var/log/pacman.log.
Ανατρέξτε σε αυτό το άρθρο για να κατανοήσετε και να χρησιμοποιήσετε το AUR γενικά, συμπεριλαμβανομένης της απόκτησης του PKGBUILD. Αυτό το έγγραφο εμφανίζει μόνο τα συγκεκριμένα βήματα για το makepkg, εάν είναι η μέθοδος που επιλέγετε για τη μεταγλώττιση ενός πακέτου.
Μεταγλώττιση με χρήση του Makepkg
Εάν η base-develομάδα πακέτων δεν είναι ήδη εγκατεστημένη, πρέπει να την εγκαταστήσετε. Εάν δεν το κάνετε, makepkgθα υποθέσουμε ότι είναι ήδη εγκατεστημένο και εάν ένα πακέτο σε αυτό απαιτείται αλλά δεν είναι εγκατεστημένο, απλώς θα αποτύχει αντί να το εγκαταστήσετε για εσάς. makepkgείναι μέρος του pacmanπακέτου, ήδη εγκατεστημένο.
# pacman -S base-devel
Πρέπει να τρέξετε makepkgστον κατάλογο με το PKGBUILD, τον κατάλογο που δημιουργήθηκε από git clone. Από προεπιλογή, θα κατεβάσει τον πραγματικό πηγαίο κώδικα, θα μεταγλωττίσει το πακέτο και θα το συσκευάσει.
Υπάρχουν πολλές επιλογές για makepkg, συμπεριλαμβανομένων αυτών που χρησιμοποιούνται συνήθως:
-s, --syncdeps : Εγκαταστήστε αυτόματα τις εξαρτήσεις που λείπουν που απαιτούνται για τη δημιουργία και τη χρήση του πακέτου.
- Σημειώστε εάν
PKGBUILDέχει εξαρτήσεις από πακέτα AUR, πρέπει πρώτα να τα εγκαταστήσετε ή να τα έχετε διαθέσιμα σε ένα δικό σας τοπικό αποθετήριο, ώστε να μπορεί να τα βρει.
-r, --rmdeps : Εάν κατασκευαστεί με επιτυχία, απεγκαταστήστε αυτόματα τις εξαρτήσεις που δεν χρειάζονται πλέον, συμπεριλαμβανομένων των εξής:
- Αυτά που απαιτούνται για την κατασκευή αλλά όχι τη χρήση της συσκευασίας.
- Εάν χρησιμοποιείται χωρίς την
--installεπιλογή, αυτά που απαιτούνται για τη χρήση της συσκευασίας.
-i, --install : Εάν κατασκευαστεί με επιτυχία, εγκαταστήστε/αναβαθμίστε αυτόματα το πακέτο.
-c, --clean : Αυτόματη διαγραφή προσωρινών αρχείων έκδοσης, που συνήθως απαιτείται μόνο κατά τον εντοπισμό σφαλμάτων μιας έκδοσης που έχει πάει στραβά.
Για να εγκαταστήσετε/αναβαθμίσετε αυτόματα το πακέτο, να αφήσετε εγκατεστημένες εξαρτήσεις για τη χρήση του πακέτου και να αφαιρέσετε τις εξαρτήσεις που χρειάζονται μόνο κατά την κατασκευή, εκτελέστε:
# makepkg -sri
Εναλλακτικά, μπορείτε να επιλέξετε να μην το εγκαταστήσετε αυτόματα και να αφήσετε όλες τις εξαρτήσεις εγκατεστημένες, οπότε αν κάποια μέρα συσκευάσετε μια αναβάθμιση, έχουν ήδη εγκατασταθεί:
# makepkg -s
Στη συνέχεια, μπορείτε είτε να χρησιμοποιήσετε ένα Τοπικό Αποθετήριο, όπως εξηγείται εδώ , είτε να εγκαταστήσετε το αρχείο απευθείας:
# pacman -U <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz
Ταχύτερη συσκευασία
Από προεπιλογή, makepkgσυνδυάζει ένα ολόκληρο πακέτο σε μια μορφή αρχειοθέτησης. δημιουργία .tar.xzαρχείου χρησιμοποιώντας ένα μόνο νήμα για τη xzσυμπίεση.
Σε συστήματα πολλαπλών CPU, μπορείτε να επιτρέψετε xzτη χρήση πολλαπλών νημάτων με επεξεργασία /etc/makepkg.confκαι να αλλάξετε την ακόλουθη γραμμή:
COMPRESSXZ=(xz -c -z -)
Μπορείτε να επιτρέψετε τόσα νήματα όσα έχετε εικονικούς πυρήνες:
COMPRESSXZ=(xz -c -z - --threads=0)
Για να επιτρέψετε τη χρήση πολλών εικονικών πυρήνων, αλλά όχι όλων, ώστε να μειωθεί ο αντίκτυπος στη συνολική απόδοση του συστήματος, προσθέστε έναν συγκεκριμένο αριθμό, όπως τον ακόλουθο:
COMPRESSXZ=(xz -c -z - --threads=21)
Σημείωση: Ο καθορισμός περισσότερων νημάτων από τον αριθμό των εικονικών πυρήνων που έχετε θα μειώσει την απόδοση.
Εάν δεν σας πειράζει το αρχείο πακέτου να είναι (ενδεχομένως πολύ) μεγαλύτερο, απενεργοποιήστε τη συμπίεση μέσω επεξεργασίας /etc/makepkg.confκαι αλλάξτε την ακόλουθη γραμμή:
PKGEXT='.pkg.tar.xz'
Θα πρέπει να μοιάζει με το εξής:
PKGEXT='.pkg.tar'
Παράλειψη επαλήθευσης υπογραφής PGP
Συνιστάται να επαληθεύσετε σωστά και να προσθέσετε τυχόν υπογραφές PGP που χρησιμοποιήθηκαν , όπως εξηγείται εδώ στην ενότητα "Σφάλμα υπογραφής PGP".
Ωστόσο, εάν εκτελείτε makepkgαπευθείας, μπορείτε να του δώσετε την --skippgpcheckεπιλογή να παραλείψει την επαλήθευση της υπογραφής PGP.