[Howto] Δημιουργία πακέτων και παραγώγων λογισμικού Arch Linux

Ένα από τα πράγματα που μου αρέσουν περισσότερο για το Arch Linux και τα παράγωγά του είναι το τεράστια ευκολία να δημιουργήσετε πακέτα που θα εγκατασταθούν αργότερα στο σύστημα, σε αντίθεση με τα γνωστά . Deb του Debian / Ubuntu / Linux Mint / etc που είναι χάος (και αν είναι βιβλιοθήκες δεν σας το λέω).

Ένα βασικό πρότυπο θα ήταν αυτό:

# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()

build() {
...
}
package() {
...
}

Τώρα θα εξηγήσω κάθε παράμετρο:

  • # Συντηρητής: Σε αυτό τοποθετείται το όνομα του συντηρητή του πακέτου
  • pkgname: Το όνομα του πακέτου. Μπορεί να περιέχει μόνο γράμματα, αριθμούς, -, _ και +
  • pkver: έκδοση πακέτου. pe 1.0.0
  • pkgrel: αναθεώρηση του προγράμματος ή του πακέτου. pe 1
  • pkgdesc: περιγραφή πακέτου.
  • αψίδα: την αρχιτεκτονική του προγράμματος: μπορεί να είναι οποιοδήποτε (για όλους), i686 και x86_64, είναι για πακέτα που δεν απαιτούν μεταγλώττιση, όπως προγράμματα bash ή python. Εάν είναι ένα πρόγραμμα που το χρειάζεται (για παράδειγμα, προγράμματα σε C ή C ++), θα πρέπει να υποδείξετε το i686 εάν είναι για 32 bit ή x86_64 για 64 bit. Σε γενικές γραμμές, εάν είναι συμβατό και με τα δύο, έχει ρυθμιστεί (i686, x86_64)
  • url: το url στην επίσημη σελίδα του προγράμματος. Συνιστάται να το βάλετε.
  • άδεια: την άδεια προγράμματος. π.χ. GPL3
  • ομάδες: τις ομάδες στις οποίες ανήκει το πακέτο. ομάδες = ('σύστημα')
  • Εξαρτάται: Σε αυτό υποδεικνύουμε τα πακέτα που χρειάζονται για την εκτέλεση του προγράμματος. pependens = ("python2" pygtk ")
  • εξαρτημένα: τις εξαρτήσεις που απαιτούνται μόνο για τη μεταγλώττιση του πακέτου. Εάν πρόκειται να κατεβάσετε τον κωδικό από έναν διαχειριστή έκδοσης, συνιστάται να τον τοποθετήσετε. pe: makedepends = ('git')
  • πηγή: Σε αυτό υποδεικνύουμε τα αρχεία που είναι απαραίτητα για τη δημιουργία του πακέτου. Κατά γενικό κανόνα, είναι η διεύθυνση URL του πακέτου που περιέχει τον κώδικα, μια ενημερωμένη έκδοση κώδικα, ένα αρχείο .desktopt, εικονίδια κ.λπ. pe: πηγή = (pacsyu.desktop)
  • md5sums: εδώ είναι τα αθροίσματα md5 των αρχείων που αναφέρονται στην πηγή. Για να μάθουμε ποια τρέχουμε από ένα τερματικό στο φάκελο όπου βρίσκεται το PKGBUILD (έχοντας γράψει τις διαδρομές αρχείων στην πηγή) makepkg -g και τα ποσά θα εμφανιστούν στην οθόνη.
    Είναι επίσης δυνατό να χρησιμοποιήσετε άλλα ποσά όπως το sh1.
  • χτίζω: σε αυτή τη λειτουργία θα βάλουμε το απαιτούμενες εντολές για να προχωρήσουμε στη μεταγλώττιση του λογισμικού. Εάν δεν είναι απαραίτητο να μεταγλωττιστεί μόνο η ακόλουθη λειτουργία είναι απαραίτητη)
  • πακέτο: σε αυτήν την άλλη λειτουργία, οι εντολές εγκατάστασης προγράμματος θα πάνε. Για παράδειγμα, εάν συντάσσουμε τον κώδικα C εδώ, η εγκατάσταση του make θα πάει.

Και για να τελειώσουμε πρέπει απλώς να εκτελέσουμε makepkg για να επαληθεύσετε ότι το πακέτο έχει δημιουργηθεί.
Όπως μπορείτε να δείτε, είναι δύσκολο για εμάς. Τότε σας αφήνω με μερικές επιπλέον παραμέτρους του makepkg:

  • -Εγώ: Δίνει εντολή στο makepkg να εγκαταστήσει το πακέτο μετά τη δημιουργία του.
  • -μικρό: Εγκαταστήστε τις εξαρτήσεις πακέτων εάν βρίσκονται στα αποθετήρια.
  • -ΦΑ: Εάν υπάρχει ήδη ένα πακέτο με αυτό το όνομα, έκδοση και αναθεώρηση με αυτήν την παράμετρο, σας λέμε να το αντικαταστήσετε.
  • -ντο: Καθαρίστε τους φακέλους εργασίας (pkg και πηγή) μόλις τελειώσετε.
  • -Ρ: Επανασυσκευάστε το πακέτο χωρίς να χρειάζεται να μεταγλωττιστεί ξανά.

Συνιστώ να δείτε περισσότερα αρχεία PKGBUILD για να δείτε περισσότερα παραδείγματα, να εκτελέσετε την εντολή makepkg -η για να δείτε τις υπόλοιπες παραμέτρους του προγράμματος, εκτός από το να δείτε το επίσημη τεκμηρίωση makepkg στο Arch Linux Wiki τι μπορείς να βρεις Aquí


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Jamin-Samuel dijo

    Πολύ καλά …

    Μπορείτε να κάνετε ένα πακέτο .exe να διαχειριστεί (μεταγλώττιση) σε ένα πακέτο Arch;

    Όπως για παράδειγμα ο διάσημος διαχειριστής λήψεων Mipony ??

    1.    κατάλληλος dijo

      Από όσο γνωρίζω, δεν είναι δυνατό, να θυμάστε ότι το .exe είναι δυαδικά και όχι πηγαίος κώδικας. Αλλά υπάρχει το JDownloader.

    2.    V3on dijo

      κάποιος χρησιμοποιεί linux και χάνει το Myponi… jijijijiji

      Το jDownloader είναι σε Java και είναι γνωστό σε όλους ότι η java προκαλεί καρκίνο του πνεύμονα ...

  2.   γαλακτώδες28 dijo

    ενδιαφέρον, θα έπρεπε να δοκιμάσουμε πακέτα, νομίζω ότι θα τείνω να κάνω αυτό από το qbittorrent hahaha υπάρχει ήδη στο yaourt, αλλά έχοντας τη δική σας έκδοση δεν θα είναι κακό να δοκιμάσετε, ευχαριστώ για τις πληροφορίες, χαιρετισμούς

  3.   MSX dijo

    Καλή είσοδος, +1
    Θέλω να προσθέσω ότι είναι επίσης πιο εύκολο να δημιουργηθούν και να συντηρηθούν από το Gentoo ebuilds!

    Όσον αφορά το Debian, πιστεύω ότι αυτή η διανομή θα αυξήσει το μειονέκτημά της απλώς εκσυγχρονίζοντας ή μετεγκαθιστώντας σε ένα πιο σύγχρονο σύστημα διαχείρισης πακέτων και πακέτων, δεν ξέρω πότε θα γίνει η τελευταία ενημέρωση του σετ dpkg / apt, αλλά η ιδέα θα έπρεπε ήδη 15 χρόνια και η αλήθεια είναι ότι σήμερα είναι αναχρονιστική.

  4.   σαπίζει87 dijo

    Σας ευχαριστώ πολύ, μόλις πρόσφατα, το έψαχνα στο wiki και δεν είχα καταλάβει τη δομή (ήθελα να ενημερώσω το PlayonLinux) αλλά ακόμα παραιτήθηκα ... υπάρχουν πράγματα στα οποία θα ήθελα να έχω ένας βοηθός ή κάτι τέτοιο (μην με πυροβολείτε) αλλά ακόμα ... απουσία εργαλείων με την πάροδο του χρόνου θα δω αν δημιουργώ

    1.    MSX dijo

      Χάρη στον οδηγό σας ξεκίνησα να δημιουργώ το PKGBUILD του Zeya (http://web.psung.name/zeya/), μόλις το τελειώσω, το ανεβάζω στο AUR 🙂

  5.   hypersayan_x dijo

    σε αντίθεση με το γνωστό .deb του Debian / Ubuntu / Linux Mint / etc που είναι χάος

    Συμφωνώ απολύτως, πριν από λίγο καιρό προσπάθησα να δημιουργήσω ένα πακέτο για το Ubuntu και δεν μπόρεσα να βρω κατανοητές πληροφορίες για το πώς να φτιάξω ένα, στο τέλος εγκατέλειψα και εγκατέστησα το πρόγραμμα περίπου.
    Το ίδιο πρόγραμμα για το Arch μου πήρε λιγότερο από 5 λεπτά για να βάλω το πακέτο μαζί.
    Και δεν είμαι σίγουρος, αλλά νομίζω ότι τα RPM είναι ελαφρώς πιο εύκολα από τα DEB, αλλά είναι πιο δύσκολο από το Arch.

  6.   hackloper775 dijo

    Πολύ καλό και εύκολο, και για το .deb δεν είναι τόσο δύσκολο, καλά για το iOS

    αφορά

  7.   Κάρλος dijo

    Νομίζω ότι αυτό θα με εξυπηρετούσε πριν από λίγο καιρό όταν ανέβασα το πρώτο μου PKGBUILD στο AUR 🙂

  8.   κλεραφέλ dijo

    Μπορεί κάποιος να εξηγήσει τι είναι για μένα, είμαι νέος και δεν ξέρω αν αυτό με βοηθά να εγκαταστήσω ένα πακέτο .deb αλλά τοπικά στο manjaro, ένα παιχνίδι για να είμαι ακριβής. Ναι, λειτουργεί;