Makepkg (Ελληνικά)

From ArchWiki
Jump to: navigation, search

Η εντολή makepkg χρησιμοποιείται για να μεταγλωττίσετε τα δικά σας πακέτα καταλλήλως, έτσι ώστε να μπορεί να τα διαχειριστεί ο Pacman. Χρησιμοποιεί ένα σύστημα χτισίματος βασισμένο σε script το οποίο μπορεί να κατεβάζει και να ελέγχει την ακεραιότητα των πηγαίων αρχείων, να ελέγχει για εξαρτήσεις, να ρυθμίζει τις επιλογές για το χτίσιμο, να χτίζει/μεταγλωττίζει το πακέτο, να το εγκαθιστά σε ένα προσωρινό root περιβάλλον, να κάνει τροποποιήσεις, να δημιουργεί μετα-πληροφορίες και να πακετάρει το αποτέλεσμα. Όπως μπορείτε να δείτε η εντολή makepkg έχει πολλά χαρακτηριστικά, τα βασικά από τα οποία περιγράφονται παρακάτω.


Ξεκινώντας με τα απαραίτητα

Arch Build System

Καταρχήν σιγουρευτείτε ότι έχετε εγκατεστημένα όλα τα απαραίτητα εργαλεία έτσι ώστε να μπορείτε να τρέξετε τις εντολές Arch Build System/makepkg και να μπορείτε να μεταγλωττίζετε software από τα πηγαία αρχεία:

pacman -S base-devel
pacman -S abs

Απαντήστε 'Y' ή απλά πατήστε Enter.

Τώρα μπορείτε να τρέξετε την εντολή abs για να κατεβάσετε στον υπολογιστή σας όλα τα PKGBUILDs και τα σχετικά αρχεία από τα οποία έχουν χτιστεί τα επίσημα πακέτα του Arch:

abs

Αυτό θα δημιουργήσει μια SVN ιεραρχία των αποθετηρίων κάτω από τον φάκελο /var/abs στον σκληρό σας δίσκο. Από προεπιλογή ορισμένα αποθετήρια είναι απενεργοποιημένα και θα χρειαστεί να επεξεργαστείτε πρώτα το αρχείο /etc/abs.conf και να αφαιρέσετε τα θαυμαστικά.

Επειδή ο φάκελος /var/abs έχει ιδιοκτήτη τον χρήστη root (είναι μέρος του πακέτου 'filesystem') και οι περισσότεροι άνθρωποι και οδηγοί υποθέτουν ότι χτίζετε τα πακέτα σας μέσα στον φάκελο /var/abs/local, χρειάζεται να επιτρέψετε στον χρήστη σας να έχει τα σωστά δικαιώματα στον φάκελο:

groupadd abs
gpasswd -a $USER abs
chown root:abs /var/abs/local
chmod 775 /var/abs/local

Makepkg

Εάν θέλετε να είστε ικανοί να εγκαθιστάτε εξαρτήσεις με την εντολή makepkg ως χρήστης (με την makepkg -s, δείτε παρακάτω) θα χρειαστεί να εγκαταστήσετε το πακέτο sudo και να προσθέσετε τον χρήστη σας στο /etc/sudoers

USER_NAME    ALL=(ALL)    NOPASSWD: /usr/bin/pacman

To παραπάνω θα εξαλείψει την ανάγκη να εισάγετε password με τον pacman. Δείτε το άρθρο στο wiki για το Sudo για λεπτομερείς πληροφορίες.

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

Δημιουργείστε τον φάκελο

mkdir /home/$USER/packages

Μετά τροποποιήστε τον μεταβλητή PKGDEST στο αρχείο /etc/makepkg.conf ανάλογα.


Όσο βρίσκεστε εδώ, μπορείτε να ρίξετε μια ματιά και στις άλλες μεταβλητές στο makepkg.conf. Για παράδειγμα, μπορείτε να επεξεργαστείτε την PACKAGER, ή να αφαιρέσετε τα ! από το docs στην προκαθορισμένη σειρά OPTIONS, σε περίπτωση που δεν θέλετε ο φάκελος /usr/share/doc/<onoma_paketou> να διαγράφεται από την makepkg. ΔΕίτε το Makepkg.conf για περισσότερες πληροφορίες.

Χτίζοντας ένα πακέτο

Για να χτίσετε ένα πακέτο χρειάζεται είτε να δημιουργήσετε ένα όπως περιγράφετε στο Creating packages, ή να πάρετε ένα από το AUR ή το ABS (δείτε παραπάνω) ή από κάποια άλλη πηγή. Θα πρέπει να είστε προσεκτικοί στο από που παίρνετε τα πακέτα σας, και να εγκαθιστάτε μόνο εκείνα τις πηγές των οποίων εμπιστεύεστε.

Ας πούμε ότι βρήκατε ένα εξαιρετικό πακέτο στο AUR που θέλετε να χτίσετε και να εγκαταστήσετε (σε αυτό το παράδειγμα θα χρησιμοποιήσουμε το "rufus", ένα torrent client βασισμένο σε Python). Μπορείτε να πάρετε το PKGBUILD του και όσα αρχεία χρειάζονται από την σελίδα του στο AUR, κάντε κλικ στο link του "Tarball"

cd /path/to/file
tar -zxf rufus.tar.gz
cd rufus

Θα παρατηρήσετε ότι υπάρχουν κάποια αρχεία κάτω από αυτόν τον φάκελο, συμπεριλαμβανομένου του PKGBUILD script που χρησιμοποιείται για να χτιστεί το πακέτο. Για να χτίσετε το πακέτο, δώστε απλά την εντολή (σαν απλός χρήστης):

makepkg

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

makepkg -s

Πρέπει να σημειωθεί ότι αυτές οι εξαρτήσεις πρέπει να υπάρχουν στα αποθετήρια που έχετε ρυθμίσει να χρησιμοποιούνται από το σύστημα σας. Εναλλακτικά μπορείτε από χειροκίνητα να κατεβάσετε πρώτα τα πακέτα χρησιμοποιώντας την: pacman -S dep1 dep2 klp

Όταν όλες οι εξαρτήσεις έχουν ικανοποιηθεί και το πακέτο σας χτιστεί επιτυχώς θα πρέπει να έχετε το αρχείο rufus-0.7.0-1.pkg.tar.gz στο φάκελο απ' τον οποίο τρέξατε το makepkg. Για να το εγκαταστήσετε (σαν υπερχρήστης -- root), δώστε την εντολή:

pacman -U rufus-0.7.0-1.pkg.tar.gz


Εγκαθιστώντας από buildscripts

Μερικές φορές παίρνουμε από τα αποθετήρια τρίτων μόνο τα αρχεία *.pkgbuild. Σε αυτήν την περίπτωση χρησιμοποιούμε:-

makepkg -p

Συγχαρητήρια! Τώρα έχετε εγκαταστήσει επιτυχώς το δικό σας πακέτο!

Χρήσιμοι Σύνδεσμοι