Δημιουργία πακέτων στο Arch Linux (συμπεριλαμβανομένου του AUR)

Στο Arch Linux, τα επίσημα αποθετήρια είναι: core, extra και κοινότητα. Αυτά τα πακέτα έχουν ήδη μεταγλωττιστεί και εγκαθίστανται μέσω pacman. Ως επί το πλείστον, οι γενικοί χρήστες μπορούν να αγνοήσουν ότι αυτά τα 3 επίσημα αποθετήρια είναι ξεχωριστά. Το Core περιέχει τα πιο κρίσιμα πακέτα, όπως τον πυρήνα, τη διαδικασία εκκίνησης, τη δικτύωση, τη διαχείριση πακέτων, το openssh και ούτω καθεξής. Έχει επίσης αυστηρότερες απαιτήσεις για πιο ενδελεχή δοκιμή πριν από την κυκλοφορία νέων εκδόσεων. Το Extra περιέχει άλλα δημοφιλή πακέτα που δεν είναι τόσο κρίσιμα, όπως διακομιστή X, διαχειριστές παραθύρων ή προγράμματα περιήγησης ιστού. Η κοινότητα περιέχει λιγότερο δημοφιλή πακέτα. Μόνο οι Αξιόπιστοι χρήστες (περίπου 60 ενεργοί χρήστες που ψηφίστηκαν από άλλους Αξιόπιστους χρήστες) έχουν πρόσβαση για να κάνουν αλλαγές στα επίσημα αποθετήρια.

Το 2019, υπάρχουν περίπου 11.000 πακέτα στα επίσημα αποθετήρια, στη διεύθυνση https://www.archlinux.org/packages . Ωστόσο, υπάρχουν πολλά άλλα προγράμματα διαθέσιμα στο Linux. Άρα, υπάρχει το AUR (Arch Linux User Repository), ώστε οποιοσδήποτε χρήστης του Arch να μπορεί να προσθέσει ένα νέο πρόγραμμα και να γίνει ο συντηρητής του ή να υιοθετήσει ένα "ορφανό" πακέτο χωρίς τρέχοντα συντηρητή. Υπάρχουν περίπου 55.000 πακέτα στο AUR, στη διεύθυνση https://aur.archlinux.org/ .

Υπάρχουν 3 κρίσιμες διαφορές με το AUR:

  1. Και πάλι, αυτά τα πακέτα μπορούν να παραχθούν από οποιονδήποτε χρήστη, ακόμη και ολοκαίνουργιο.
  2. Το AUR φιλοξενεί μόνο ένα PKGBUILD, ένα σενάριο φλοιού για αυτόματη δημιουργία του πακέτου, όχι μεταγλωττισμένα δυαδικά. (Μερικές φορές περιέχει επίσης μικρές ενημερώσεις κώδικα κειμένου ή εγκατάσταση/αναβάθμιση/απεγκατάσταση σεναρίων κελύφους). Αυτό έχει κάνει τρομερή δουλειά επιτρέποντας σε οποιονδήποτε χρήστη να συνεισφέρει, ενώ μειώνει την πιθανότητα κάποιος να μπορεί να διανείμει κακόβουλο κώδικα. Η κοινότητα του Arch εξακολουθεί να είναι αρκετά χρήσιμη σχετικά με προβλήματα με πακέτα AUR, αλλά σημειώνεται ότι η χρήση τους γίνεται με δική σας ευθύνη. Επειδή το μόνο που παρέχει είναι ένα PKGBUILD, είναι τελικά δική σας ευθύνη να ελέγξετε ένα PKGBUILDπου πρόκειται να χρησιμοποιήσετε. (Σύμφωνο, πολλοί χρήστες δεν το κάνουν αυτό και απλώς βασίζονται σε άλλους για να παρακολουθούν.)
  3. Επειδή pacmanδεν αλληλεπιδρά άμεσα με το AUR, είναι δική σας ευθύνη να ενημερώσετε τα πακέτα AUR. Όταν αναβαθμίζετε περιοδικά ολόκληρο το σύστημά σας μέσω pacman, δεν θα πραγματοποιεί αυτόματη λήψη ενημερώσεων σε PKGBUILDαρχεία AUR , μεταγλώττιση και εγκατάσταση για εσάς.

Αν και αυτό το άρθρο εστιάζει στη δημιουργία πακέτων από το AUR, οι ίδιες τεχνικές μπορούν να χρησιμοποιηθούν για να δημιουργήσετε μόνοι σας πακέτα από τα επίσημα αποθετήρια.

PKGBUILD

Σε σύγκριση με ένα .specαρχείο που χρησιμοποιούν πολλές άλλες διανομές, το a PKGBUILDείναι ένα σύντομο και απλό σενάριο φλοιού. Αν και ορισμένα πακέτα είναι πιο περίπλοκα, μπορεί απλώς να είναι παρόμοια με τα ακόλουθα:

pkgname=NAME
pkgver=VERSION
pkgrel=1
pkgdesc='DESCRIPTION'
url=http://example.com/
arch=('x86_64')
license=('GPL2')
source=(http://example.com/downloads/${pkgname}-${pkgver}.tar.gz)
sha256sums=('f0a90db8694fb34685ecd645d97d728b880a6c15c95e7d0700596028bd8bc0f9')

build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure
   make
}

package() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   make install
}

Αυτό το έγγραφο αναφέρεται σε:

  • PKGNAME: Το όνομα ενός πακέτου
  • PKGVER: Η έκδοση ενός πακέτου (σχεδόν πάντα αντιστοιχεί στον αριθμό έκδοσης του upstream)
  • PKGREL: Η Arch "έκδοση" του PKGBUILDγια ένα συγκεκριμένο PKGVER(συνήθως 1, αλλά αυξάνεται εάν χρειάζεται να γίνουν αλλαγές σε ένα PKGBUILDμεταξύ των εκδόσεων ανάντη)
  • ARCH: Οι αρχιτεκτονικές στις οποίες μπορεί να κατασκευαστεί το πακέτο (κάπως κληρονομιά, καθώς τα επίσημα αποθετήρια του Arch Linux υποστηρίζουν μόνο "x86_64" (CPU 64-bit), αλλά τα πακέτα AUR μπορούν ακόμα να υποστηρίζουν "i686" (CPU 32-bit) ή "οποιαδήποτε" ο χαρακτηρισμός αρχιτεκτονικής δεν έχει σημασία)
  • PKGBUILD/ETC: Οποιαδήποτε αρχεία βρίσκονται στο αποθετήριο AUR. το PKGBUILD, και οποιεσδήποτε άλλες μικρές ενημερώσεις κώδικα κειμένου ή εγκατάσταση/αναβάθμιση/απεγκατάσταση σεναρίων κελύφους. Δεν περιλαμβάνει αρχεία ανοδικής ροής στη sourceσυστοιχία.

Αν και το AUR έχει αποδειχθεί εξαιρετικά αξιόπιστο, είναι καλή ιδέα να κοιτάξετε ένα PKGBUILD/ETCγια να βεβαιωθείτε ότι λαμβάνει την πηγή από ένα μέρος που είστε πρόθυμοι να εμπιστευτείτε. (για παράδειγμα, μια επίσημη τοποθεσία ανοδικής ροής, η οποία μπορεί να είναι από το github - αλλά όχι μόνο το αποθετήριο github κάποιου τυχαίου ατόμου που δεν σχετίζεται με το πακέτο upstream). και ότι PKGBUILD/ETCδεν περιέχει κανέναν ύποπτο κωδικό.

Απόκτηση PKGBUILD/ETC

Από το AUR

Εάν τα επίσημα αποθετήρια δεν περιέχουν ένα πακέτο που θέλετε να εγκαταστήσετε, αναζητήστε το στη διεύθυνση https://aur.archlinux.org/ . Ας ελπίσουμε ότι θα διαπιστώσετε ότι αυτό που ψάχνετε υπάρχει, είναι ενημερωμένο και διατηρείται.

Ο καλύτερος τρόπος για να αποκτήσετε το PKGBUILD/ETCαπό το AUR είναι να το κλωνοποιήσετε μέσω git.

Εγκαταστήστε git, εάν δεν είναι ήδη:

# pacman -S git

Χρησιμοποιήστε τη "URL Git Clone" που εμφανίζεται στον ιστότοπο AUR για αυτό το πακέτο:

$ git clone https://aur.archlinux.org/fslint.git

Μπείτε στον κατάλογο και δείτε τα περιεχόμενά του. (Όλα που αναφέρονται εδώ, εκτός από . .. .gitείναι τα PKGBUILD/ETC):

$ cd <PKGNAME>
$ ls -a
.  ..  .git  PKGBUILD  .SRCINFO

Εάν εξετάσετε το PKGBUILD, ελπίζουμε ότι θα δείτε ότι χρησιμοποιεί τον επίσημο πηγαίο κώδικα και εκτελεί τυπικά βήματα για τη δημιουργία ενός πακέτου, επομένως φαίνεται αξιόπιστο. Το .SRCINFOμόνο περιέχει τις πληροφορίες που εμφανίζονται στον ιστότοπο σχετικά με το πακέτο, επομένως δεν είναι ανησυχητικό. Εάν υπάρχουν άλλα αρχεία εδώ, δεν παρέχονται (απευθείας) από το upstream, επομένως τα αρχεία και ο τρόπος χρήσης τους PKGBUILDθα πρέπει να εξεταστούν, για να βεβαιωθείτε ότι δεν περιέχουν τίποτα ύποπτο.

Από Επίσημα Αποθετήρια

Αν και απαιτείται πολύ λιγότερο συχνά, μπορείτε να δημιουργήσετε ένα πακέτο ήδη στα επίσημα αποθετήρια, να συμπεριλάβετε μια νέα ενημέρωση κώδικα, να δημιουργήσετε μια νεότερη έκδοση κ.λπ.

Λάβετε PKGBUILD/ETCαπό τον πυρήνα και τα επιπλέον αποθετήρια:

$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/packages.git "<PKGNAME>"

Από το αποθετήριο της κοινότητας:

$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/community.git "<PKGNAME>"

Επιμόρφωση προσωπικού PKGBUILD/ETC

Εάν κυκλοφορήσει μια αναβάθμιση PKGBUILD/ETC, μπορείτε να επιστρέψετε σε αυτόν τον κατάλογο που δημιουργήθηκε με τη χρήση git cloneκαι να τις ενημερώσετε:

$ git pull

Στη συνέχεια, μεταγλωττίστε ξανά και αναβαθμίστε το πακέτο χρησιμοποιώντας τη μέθοδο της επιλογής σας, παρακάτω.

Σύνταξη

Υπάρχουν πολλοί τρόποι μεταγλώττισης πακέτων. Τελικά, τα πάντα χρησιμοποιούν makepkg. Υπάρχουν 2 επίσημα υποστηριζόμενοι τρόποι:

Υπάρχουν πολλά βοηθητικά προγράμματα AUR, (όπως το makepkgπεριτύλιγμα), που δεν υποστηρίζονται επίσημα από το Arch, όπως aurutils, yay, και τα πρόσφατα διακοπείσα aurmanκαι yaourt. Ακόμα κι αν χρησιμοποιείτε ένα από αυτά τα άλλα βοηθητικά προγράμματα, συνιστάται να εξοικειωθείτε με τους επίσημα υποστηριζόμενους τρόπους για να είστε πιο αποτελεσματικοί όταν κάτι πάει στραβά.

Το υπόλοιπο αυτού του εγγράφου θα χρησιμοποιηθεί YOUR BUILDERγια να σημαίνει οποιαδήποτε μέθοδο επιλέξετε.

Τοπικό Αποθετήριο

Μπορείτε να ρυθμίσετε ένα τοπικό αποθετήριο ώστε να είναι μια κεντρική τοποθεσία για όλα τα πακέτα που δημιουργείτε.

Τοποθετήστε το τοπικό αποθετήριο όπου θέλετε:

# mkdir /archLocalRepo

Εκτελέστε YOUR BUILDERχωρίς καμία αυτόματη επιλογή εγκατάστασης και αντιγράψτε το πακέτο στο τοπικό σας αποθετήριο.

# cp <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz /archLocalRepo

Προσθέστε το νέο πακέτο στο ευρετήριο του αποθετηρίου:

# repo-add /archLocalRepo/archLocalRepo.db.tar.gz /archLocalRepo/<PACKAGE-FILE-NAME>

Για να αφαιρέσετε ένα πακέτο από το ευρετήριο του αποθετηρίου και το ίδιο το αρχείο πακέτου:

# repo-remove /archLocalRepo/archLocalRepo.db.tar.gz <PKGNAME>
# rm /archLocalRepo/<PACKAGE-FILE-NAME>

Εάν πρέπει να αντικαταστήσετε ένα υπάρχον αρχείο πακέτου, πρέπει να αφαιρέσετε ξεχωριστά αυτό που αντικαθίσταται και, στη συνέχεια, να προσθέσετε το νέο. Δεν μπορείτε απλώς να αντιγράψετε το νέο αρχείο πάνω από το παλιό.

Διαμορφώστε τις παραμέτρους pacmanγια να χρησιμοποιήσετε το τοπικό σας αποθετήριο, με επεξεργασία /etc/pacman.confκαι προσθέστε τα ακόλουθα στο τέλος:

[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo

Πρέπει να έχετε pacmanανανεώσει τις γνώσεις του για το αποθετήριο, (συμπεριλαμβανομένου του τοπικού σας), τις βάσεις δεδομένων. για να δείτε τα πακέτα που έχετε προσθέσει σε αυτό:

# pacman -Sy

Στη συνέχεια, μπορείτε να εγκαταστήσετε το πακέτο, με διαφορετικό τρόπο από ό,τι αν ήταν σε επίσημο αποθετήριο:

# pacman -S <PKGNAME>

Σημειώστε ότι εάν το πακέτο είναι απλώς μια εξάρτηση ενός άλλου πακέτου που πρόκειται να εγκαταστήσετε, δεν χρειάζεται να το εγκαταστήσετε απευθείας. Όταν εγκαταστήσετε αυτό το άλλο πακέτο, pacmanθα βρείτε και θα εγκαταστήσετε αυτόματα τα πακέτα εξαρτήσεων στο τοπικό σας αποθετήριο.

Ταχύτερη μεταγλώττιση

Από προεπιλογή, YOUR BUILDERμεταγλωττίζεται χρησιμοποιώντας ένα μόνο νήμα. Σε συστήματα πολλαπλών CPU, μπορείτε να επιτρέψετε τη χρήση πολλαπλών νημάτων όπου είναι δυνατόν. Το σύστημα κατασκευής θα μεταγλωττίσει τμήματα του πηγαίου κώδικα παράλληλα όταν μπορεί. Μερικές φορές τα μέρη του κώδικα απαιτούν άλλα μέρη με τα οποία αλληλεπιδρά να έχουν ήδη μεταγλωττιστεί, επομένως δεν θα βλέπετε πάντα να χρησιμοποιούνται τόσα νήματα όσα επιτρέπονται. Επεξεργασία /etc/makepkg.conf.

Για να επιτρέψετε τη χρήση όσων νημάτων έχετε εικονικούς πυρήνες, προσθέστε τα εξής:

MAKEFLAGS="-j$(nproc)"

Σημείωση: Αυτό θα εκτελεί την εντολή nprocκάθε φορά, επομένως θα χρησιμοποιεί πάντα τον τρέχοντα αριθμό πυρήνων, σε περίπτωση που αναβαθμίσετε τον διακομιστή σας Vultr

Για να επιτρέψετε τη χρήση πολλών εικονικών πυρήνων, αλλά όχι όλων, ώστε να μειωθεί ο αντίκτυπος στη συνολική απόδοση του συστήματος, προσθέστε έναν συγκεκριμένο αριθμό. Για παράδειγμα, εάν έχετε 24 πυρήνες, θα μπορούσατε να επιτρέψετε τη χρήση 21:

MAKEFLAGS="-j21"

Ο καθορισμός περισσότερων νημάτων από τον αριθμό των εικονικών πυρήνων που έχετε θα μειώσει την απόδοση.

Είναι αρκετά σπάνιο, αλλά τα συστήματα κατασκευής ορισμένων πακέτων έχουν προβλήματα με την παράλληλη μεταγλώττιση, λόγω του ότι δεν ορίζουν σωστά τις εξαρτήσεις μεταξύ των τμημάτων του κώδικα. Συνήθως, τα PKGBUILDαρχεία αυτών των πακέτων θα το χειριστούν αυτό για εσάς επικαλώντας το make -j1, το οποίο αντικαθιστά την προεπιλογή που έχετε ορίσει. Εάν το χρειάζεται και λείπει, αναφέρετέ το στον συντηρητή του πακέτου Arch.

Σφάλμα υπογραφής PGP

Ένας PKGBUILDπίνακας πηγών μπορεί να περιέχει .ascή .sigαρχεία. Συχνά περιλαμβάνονται με τη χρήση επέκτασης του σιδερώματος bash, επομένως είναι εύκολο να τα χάσετε:

source=("http://example.com/downloads/${pkgname}-${pkgver}.tar.gz{,.sig}")

Εάν κάποια από αυτές τις μορφές αρχείων υπογραφής περιλαμβάνεται στον πίνακα προέλευσης, YOUR BUILDERεπιχειρεί αυτόματα να επαληθεύσει την υπογραφή του αρχείου προέλευσης ανάντη. Το κλειδί PGP της υπογραφής πρέπει να βρίσκεται στο μπρελόκ του χρήστη. Διαφορετικά, θα ματαιωθεί με το σφάλμα:

==> Verifying source file signatures with gpg...
    <SOURCE-FILE> ... FAILED (unknown public key 1234567890ABCDEF)
==> ERROR: One or more PGP signatures could not be verified!

Είναι σημαντικό να κατανοήσετε ότι το κλειδί GPG μπορεί να εμφανιστεί με διάφορους τρόπους. Το δακτυλικό του αποτύπωμα είναι 40 δεκαεξαδικοί χαρακτήρες και είναι αυτό που πρέπει πάντα να χρησιμοποιείτε. Ένα μεγάλο αναγνωριστικό κλειδιού είναι τα τελευταία 16 ψηφία και ένα σύντομο αναγνωριστικό κλειδιού είναι τα τελευταία 8 ψηφία. Αν και το μικρότερο είναι βολικό, επιτρέπει διπλότυπα που ακυρώνουν ολόκληρο το σκεπτικό πίσω από την επαλήθευση υπογραφών. Ακόμη χειρότερα, είναι γνωστό ότι οι εισβολείς δημιουργούν πλαστά κλειδιά που ταιριάζουν με κλειδιά μικρότερου μήκους για προγραμματιστές υψηλού προφίλ.

Λήψη και επαλήθευση δακτυλικού αποτυπώματος κλειδιού PGP

Εάν δεν έχετε δοκιμάσει ήδη να δημιουργήσετε το πακέτο, κατεβάστε τις πηγές που θα περιλαμβάνουν το αρχείο υπογραφής: (Αν δοκιμάσατε να δημιουργήσετε, θα είναι ήδη εκεί)

$ makepkg --nobuild --noextract

Για να λάβετε το πλήρες δακτυλικό αποτύπωμα:

$ gpg <ASC-OR-SIG-FILENAME>
...
gpg:                using RSA key 155D3FC500C834486D1EEA677FD9FCCB000BEEEE
...

Στην ιδανική περίπτωση, θα πρέπει να επαληθεύσετε αυτό το δακτυλικό αποτύπωμα από το upstream. Για να είναι ασφαλές, το upstream θα πρέπει να δίνει τα κλειδιά των συντηρητών του κάπου στον ιστότοπό του ή στην πηγή. Η απλή αναζήτηση του κλειδιού σε έναν διακομιστή κλειδιού δεν κάνει τίποτα. Ένας εισβολέας μπορεί εύκολα να υποβάλει ένα ψεύτικο κλειδί, επειδή οι διακομιστές κλειδιών δεν επαληθεύουν την αυθεντικότητα. Τα κλειδιά μπορούν να υπογραφούν από άλλα κλειδιά, επομένως εάν έχετε ήδη ένα κλειδί που εμπιστεύεστε, θα πρέπει να είστε αρκετά ασφαλείς να εμπιστεύεστε τυχόν κλειδιά που έχουν υπογράψει.

Αυτό μπορεί να είναι αρκετή δουλειά, ειδικά όταν η upstream δεν δημοσιεύει το δακτυλικό τους αποτύπωμα ή το τοποθετεί κάπου που είναι εύκολο να βρεθεί. Το PKGBUILDθα περιέχει έναν validpgpkeysπίνακα, ο οποίος προστέθηκε από τον συντηρητή Arch. Εάν το πακέτο είναι επίσημο αποθετήριο, αυτό σημαίνει ότι ένας αξιόπιστος χρήστης το τοποθέτησε εκεί και θα πρέπει να είστε αρκετά ασφαλείς να εμπιστεύεστε οτιδήποτε αναφέρεται στη συστοιχία. Εάν το πακέτο βρίσκεται στο AUR, θυμηθείτε ότι σημαίνει απλώς ότι άλλος χρήστης του Arch το τοποθέτησε εκεί. Εάν ανησυχείτε να το εμπιστευτείτε, μπορείτε πάντα να κοιτάξετε τον χρήστη για να δείτε τι έχει κάνει στο παρελθόν με το Arch.

Προσθέστε το κλειδί PGP στο μπρελόκ σας

Για να προσθέσετε το δακτυλικό αποτύπωμα στο μπρελόκ σας:

$ gpg --recv-keys <FINGERPRINT>

Τώρα μπορείτε να εκτελέσετε το YOUR BUILDER, και θα εμπιστευτεί το δακτυλικό αποτύπωμα.

Αναπτυξιακά πακέτα AUR

AUR πακέτα με ονόματα που τελειώνουν -git, -svn, -bzrή -hgείναι αναπτυξιακές εκδόσεις, οι οποίες χρησιμοποιούν ανάντη της τελευταίας σύστημα ελέγχου εκδόσεων δεσμευτούν αντί προς τα πάνω είναι τελευταία έκδοση. Για παράδειγμα, α-gitΤο πακέτο θα χρησιμοποιούσε την πιο πρόσφατη δέσμευση του upstream στον κύριο κλάδο (ή τον ισοδύναμο κλάδο του.) Αυτό είναι ιδανικό για την εκτέλεση διορθώσεων σφαλμάτων και νέων λειτουργιών που δεν έχουν κυκλοφορήσει ακόμη και όταν εργάζεστε με ανοδική ροή σε ένα σφάλμα που αναφέρετε, συμπεριλαμβανομένου του εάν πρέπει να επαληθεύσετε για αυτούς ότι δεν είναι σφάλμα που έχει διορθωθεί από μια δέσμευση που δεν έχει ακόμη κυκλοφορήσει. Αυτά τα πακέτα θα πρέπει να θεωρούνται δυνητικά ασταθή. Τούτου λεχθέντος, δυστυχώς, μερικές φορές δεν υπάρχει εναλλακτική λύση, επειδή ορισμένοι συντηρητές upstream δεν προσθέτουν ποτέ ετικέτες σε εκδόσεις ή κάνουν υπερβολικό μεγάλο διάστημα μεταξύ των εκδόσεων προσθήκης ετικετών και περιμένουν από όλους να χρησιμοποιήσουν την πιο πρόσφατη δέσμευσή τους. Ανάλογα με το πακέτο, μπορεί να είστε το πρώτο άτομο που θα δοκιμάσει να εκτελέσει αυτό το commit. Ανάλογα με τους upstream προγραμματιστές, η τελευταία τους δέσμευση μπορεί να μην έχει καν μεταγλωττιστεί,

Είναι σημαντικό να κατανοήσουμε ένα κοινό λάθος. Μην επισημαίνετε ένα πακέτο ανάπτυξης AUR ως μη ενημερωμένο απλώς και μόνο επειδή εμφανίζει έναν αριθμό παλιάς έκδοσης! Τα PKGBUILDαρχεία πακέτων ανάπτυξης περιέχουν μια πρόσθετη λειτουργία pkgver(), η οποία χρησιμοποιείται για την αυτόματη ανάλυση ενός ενημερωμένου PKGVERαπό τον πηγαίο κώδικα του upstream. Μια κοινή μορφή για ένα -gitπακέτο είναι <TYPICAL-VERSION-NUMBER>.r<COMMITS-SINCE-LAST-RELEASE>.<GIT-COMMIT>-<PKGREL>. Ένα πακέτο μπορεί να αναφέρεται στο AUR ως 5.0.0.r102.8d7b42ac21-1, επειδή αυτό PKGBUILDπεριέχει. Όμως, όταν δημιουργείτε ένα πακέτο, YOUR BUILDERθα ενημερώνεται αυτόματα PKGVERγια να αντικατοπτρίζει τον πηγαίο κώδικα που λάβατε πρόσφατα. Στην πραγματικότητα, εάν έχουν κυκλοφορήσει πολλές νέες εκδόσεις, αλλά τίποτα δεν έχει αλλάξει στη διαδικασία κατασκευής, μια τέτοια PKGBUILDλίστα μιας παλιάς έκδοσης θα μπορούσε να οδηγήσει στην κατασκευή κάτι πολύ νεότερο, όπως π.χ.9.1.2.r53.2c9a41b723-1. Για αυτά τα πακέτα, η έκδοση που αναφέρεται στον ιστότοπο είναι απλώς η πιο πρόσφατη έκδοση τη στιγμή που ο συντηρητής AUR χρειάστηκε για τελευταία φορά να ενημερώσει το PKGBUILD.

Οι συντηρητές AUR ΔΕΝ υποτίθεται ότι απλώς ενημερώνουν το PKGVERγια να αντικατοπτρίζουν τις νέες εκδόσεις. Υποτίθεται ότι το κάνουν μόνο όταν τα νεότερα upstream commit απαιτούν πράγματι κάτι άλλο για PKGBUILDνα αλλάξει.

Επισημάνετε ένα αναπτυξιακό πακέτο AUR μόνο αν γνωρίζετε ότι κάτι δεν πάει καλά. Δηλαδή, δοκιμάσατε πραγματικά να το χρησιμοποιήσετε και αποτυγχάνει να μεταγλωττίσει ή να αναλύσει ένα σωστά μορφοποιημένο νέο PKGVER. Μερικές φορές συμβαίνουν πράγματα που αναγκάζουν τον συντηρητή AUR να ενημερώσει το PKGBUILD, όπως οι εξαρτήσεις upstream αλλάζουν, οι configureεπιλογές αλλάζουν, οι νέες εκδόσεις GCC εντοπίζουν σφάλματα στον πηγαίο κώδικα που δεν έκαναν οι προηγούμενες, οι τοποθεσίες αποθήκευσης ανάντη αλλάζουν ή οι προγραμματιστές upstream θα αλλάξουν εκεί που η τυπική τους έκδοση βρίσκεται μέσα στον πηγαίο κώδικα σπάζοντας τοPKGVERσυνάρτηση ανάλυσης. Κατανοήστε ότι ακόμα και αν αποτύχει η μεταγλώττιση ή η λειτουργία του, αυτό μπορεί είτε να σημαίνει ότι ο συντηρητής AUR πρέπει να κάνει αλλαγές στη διαδικασία κατασκευής του ή μπορεί να είναι ένα πρόβλημα με τον πηγαίο κώδικα για το οποίο ο συντηρητής AUR δεν έχει καμία ευθύνη.

Ξεπερασμένα πακέτα

Βεβαιωθείτε ότι έχετε διαβάσει την ενότητα "Αναπτυξιακά πακέτα AUR" παραπάνω, προτού αναφέρετε ότι ένα πακέτο δεν είναι ενημερωμένο!

Εάν η ανοδική ροή έχει κυκλοφορήσει μια νεότερη έκδοση για ένα πακέτο που δεν είναι αναπτυξιακό από το PKGBUILD, μπορείτε να κάνετε κλικ στην επιλογή "Επισήμανση πακέτου μη ενημερωμένο" και να πληκτρολογήσετε ένα μήνυμα στον συντηρητή. Χρησιμοποιήστε το https://packages.archlinux.org για επίσημα πακέτα αποθετηρίου και το https://aur.archlinux.org για πακέτα AUR. Ένα χρήσιμο μήνυμα θα ήταν ο αριθμός της νέας έκδοσης και ίσως ένας σύνδεσμος προς την ανακοίνωση κυκλοφορίας ή τον πηγαίο κώδικα. Η δυνατότητα επισήμανσης στέλνει αυτόματα το μήνυμά σας με email στον συντηρητή.

Σε ένα πακέτο AUR, εάν δεν υπάρξει απάντηση μετά από 2 εβδομάδες, μπορείτε να κάνετε κλικ στο "Υποβολή αιτήματος" με τον τύπο "Orphan", εάν θέλετε να ζητήσετε από έναν αξιόπιστο χρήστη να αφαιρέσει τον τρέχοντα συντηρητή και να καταστήσει το πακέτο ορφανό, εάν ο συντηρητής δεν ανταποκρίνεται στο ορφανό αίτημα. Γενικά, οι άνθρωποι υποβάλλουν ορφανά αιτήματα μόνο εάν είναι σε θέση και επιθυμούν να αναλάβουν το πακέτο και κατά προτίμηση μόνο εάν έχουν ήδη λειτουργικό ρεύμα PKGBUILD.

Στο μεταξύ, συχνά μπορείτε να ενημερώσετε μόνοι σας ένα παρωχημένο πακέτο. Συχνά χρειάζεται μόνο να αλλάξετε το α PKGBUILD, ενημερώνοντας τον PKGVERστον νέο αριθμό έκδοσης και τα ποσά ακεραιότητας ενημερώνονται. Υπάρχει ένα πρόγραμμα updpkgsumsσε πακέτο pacman-contrib, το οποίο υπολογίζει αυτόματα τα αθροίσματα και τα ενημερώνει στο PKGBUILDγια εσάς. Αξίζει να ελέγξετε τις σημειώσεις έκδοσης του upstream, για να δείτε αν αναφέρουν ότι κάτι πρέπει να αλλάξει κατά τη διαδικασία εγκατάστασης της νέας έκδοσης. Μερικές φορές οι αλλαγές ανάντη απαιτούν περισσότερες αλλαγές ή επισκευές στο PKGBUILD/ETC. Συχνά η sourceσυστοιχία ενσωματώνεται PKGVERσε αυτήν, επομένως συχνά δεν χρειάζεται καν ενημέρωση.


Εγκατάσταση 2019 Arch Linux σε διακομιστή Vultr

Εγκατάσταση 2019 Arch Linux σε διακομιστή Vultr

Εισαγωγή Το Arch Linux έχει μικρότερο, αλλά ακόμα ισχυρό, ακόλουθο από τις πιο δημοφιλείς διανομές. Η φιλοσοφία του είναι αρκετά διαφορετική, με πλεονεκτήματα α

Εγκατάσταση του Arch Linux σε διακομιστή Vultr

Εγκατάσταση του Arch Linux σε διακομιστή Vultr

Το Vultr σάς παρέχει την εκπληκτική λειτουργικότητα που σας επιτρέπει να χρησιμοποιείτε τη δική σας προσαρμοσμένη εικόνα εκτός από τα εξαιρετικά τους πρότυπα, που σας επιτρέπουν να τρέξετε

Χρήση Devtools στο Arch Linux

Χρήση Devtools στο Arch Linux

Το πακέτο Devtools δημιουργήθηκε αρχικά για αξιόπιστους χρήστες για τη σωστή δημιουργία πακέτων για τα επίσημα αποθετήρια. Ωστόσο, μπορεί να χρησιμοποιηθεί από απλό χρήστη

Χρήση του Makepkg στο Arch Linux

Χρήση του Makepkg στο Arch Linux

Εάν χρησιμοποιείτε απευθείας το makepkg, μολύνει κάπως το σύστημά σας. Πρέπει να εγκατασταθεί η ομάδα πακέτων βασικής ανάπτυξης. Με αυτόν τον τρόπο, από προεπιλογή, χρειάζονται μόνο εξαρτήσεις

Πώς να εγκαταστήσετε το PostgreSQL 11.1 στο Arch Linux

Πώς να εγκαταστήσετε το PostgreSQL 11.1 στο Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr με ενημερωμένο Arch Linux (δείτε αυτό το άρθρο.) Πρόσβαση Sudo. Οι εντολές που απαιτούνται για να εκτελεστούν ως root έχουν το πρόθεμα # και ένα

Πώς να χρησιμοποιήσετε το HTTPS στον διακομιστή Web Arch Linux

Πώς να χρησιμοποιήσετε το HTTPS στον διακομιστή Web Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr που εκτελεί ενημερωμένο Arch Linux (δείτε αυτό το άρθρο.) Ένας διακομιστής web που λειτουργεί, είτε Apache είτε Nginx Sudo Απαιτούνται εντολές πρόσβασης t

Εγκαταστήστε το Arch Linux With Btrfs Snapshotting

Εγκαταστήστε το Arch Linux With Btrfs Snapshotting

Το Preface Arch Linux είναι μια διανομή γενικής χρήσης, γνωστή για την τεχνολογία αιχμής και την ευέλικτη διαμόρφωση. Με στιγμιότυπα Btrfs, μπορούμε να τραβήξουμε

Δημιουργία πακέτων στο Arch Linux (συμπεριλαμβανομένου του AUR)

Δημιουργία πακέτων στο Arch Linux (συμπεριλαμβανομένου του AUR)

Στο Arch Linux, τα επίσημα αποθετήρια είναι: core, extra και κοινότητα. Αυτά τα πακέτα έχουν ήδη μεταγλωττιστεί και εγκαθίστανται μέσω του pacman. Εμπρός

Ρύθμιση διακομιστή Spigot στο Arch Linux

Ρύθμιση διακομιστή Spigot στο Arch Linux

Αυτό το σεμινάριο εξηγεί πώς να ρυθμίσετε έναν διακομιστή Minecraft χρησιμοποιώντας το Spigot στο Arch Linux. Αυτό το σεμινάριο προϋποθέτει ότι είστε κανονικός χρήστης (not-root) και έχετε

Πώς να εγκαταστήσετε το Nginx 1.14 στο Arch Linux

Πώς να εγκαταστήσετε το Nginx 1.14 στο Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr με ενημερωμένο Arch Linux (δείτε αυτό το άρθρο.) Πρόσβαση Sudo. Οι εντολές που απαιτούνται για εκτέλεση ως root έχουν το πρόθεμα #. Th

Πώς να εγκαταστήσετε το Apache 2.4 στο Arch Linux

Πώς να εγκαταστήσετε το Apache 2.4 στο Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr που λειτουργεί με ενημερωμένο Arch Linux. Δείτε αυτόν τον οδηγό για περισσότερες πληροφορίες. Πρόσβαση Sudo. Οι εντολές που απαιτούνται για εκτέλεση ως root ar

Πώς να εγκαταστήσετε την Python 3.7 σε έναν διακομιστή ιστού Arch Linux

Πώς να εγκαταστήσετε την Python 3.7 σε έναν διακομιστή ιστού Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr που εκτελεί ενημερωμένο Arch Linux (δείτε αυτό το άρθρο.) Ένας διακομιστής ιστού που λειτουργεί, είτε πρόσβαση Apache είτε Nginx Sudo: Οι εντολές απαιτούν

Πώς να εγκαταστήσετε το Perl 5.28 σε έναν διακομιστή ιστού Arch Linux

Πώς να εγκαταστήσετε το Perl 5.28 σε έναν διακομιστή ιστού Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr που εκτελεί ενημερωμένο Arch Linux (δείτε αυτό το άρθρο.) Ένας διακομιστής ιστού που λειτουργεί, είτε πρόσβαση Apache είτε Nginx Sudo: Οι εντολές απαιτούν

Πώς να εγκαταστήσετε την PHP 7.3 σε έναν διακομιστή ιστού Arch Linux

Πώς να εγκαταστήσετε την PHP 7.3 σε έναν διακομιστή ιστού Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr με ενημερωμένο Arch Linux (δείτε αυτό το άρθρο.) Ένας διακομιστής ιστού που λειτουργεί, είτε με πρόσβαση Apache είτε Nginx Sudo. Οι εντολές απαιτούν

Ρύθμιση του διακομιστή Mumble στο Arch Linux

Ρύθμιση του διακομιστή Mumble στο Arch Linux

Αυτό το σεμινάριο εξηγεί πώς να ρυθμίσετε έναν διακομιστή Mumble (Murmur) στο Arch Linux. Ό,τι γίνεται σε αυτό το σεμινάριο γίνεται ως χρήστης root. Εγκατάσταση α

Ρυθμίστε έναν διακομιστή Counter-Strike: Global Offensive (CSGO) στο Arch Linux

Ρυθμίστε έναν διακομιστή Counter-Strike: Global Offensive (CSGO) στο Arch Linux

Αυτό το σεμινάριο εξηγεί πώς να ρυθμίσετε έναν διακομιστή Counter-Strike: Global Offensive στο Arch Linux. Αυτό το σεμινάριο προϋποθέτει ότι έχετε συνδεθεί με τυπική χρήση

Ρυθμίστε έναν διακομιστή Team Fortress 2 στο Arch Linux

Ρυθμίστε έναν διακομιστή Team Fortress 2 στο Arch Linux

Αυτό το σεμινάριο εξηγεί πώς να ρυθμίσετε έναν διακομιστή Team Fortress 2 στο Arch Linux. Υποθέτω ότι έχετε συνδεθεί με έναν λογαριασμό χρήστη που δεν είναι root που έχει πρόσβαση sudo

Πώς να εγκαταστήσετε το MariaDB 10.3 ή MySQL 8.0 στο Arch Linux

Πώς να εγκαταστήσετε το MariaDB 10.3 ή MySQL 8.0 στο Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr με ενημερωμένο Arch Linux (δείτε αυτό το άρθρο.) Πρόσβαση Sudo: Οι εντολές που απαιτούνται για να εκτελεστούν ως root έχουν το πρόθεμα # και ένα

Πώς να εγκαταστήσετε το MongoDB 4.0 στο Arch Linux

Πώς να εγκαταστήσετε το MongoDB 4.0 στο Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr με ενημερωμένο Arch Linux (δείτε αυτό το άρθρο) Πρόσβαση Sudo: Οι εντολές που απαιτούνται για να εκτελεστούν ως root έχουν το πρόθεμα # και ένα

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα