Προς το περιεχόμενο

ArchLinux - Οδηγος δημιουργιας πακετων - pkgbuild


freskas

Προτεινόμενες αναρτήσεις

Ο παρακατω οδηγος ειναι για να εξηγησει

την αυτοματοποιημενη (σχετικα απλη) διαδικασια,

για τη δημιουργια ενος πακετου στο ArchLinux (απο source),

που ειναι unsupported στο AUR (οχι σε καποιο απο τα repositories του pacman),

με τη μεθοδο pkgbuild και την εντολη makepkg.

Και τελος την εγκατασταση του με τον pacman.

 

Για να γινουν ολα αυτα, πρεπει να παμε στο AUR.

και να ψαξουμε για το πακετο που θελουμε.

Αφου το βρουμε και πατησουμε αριστερο κλικ πανω του,

θα μπουμε στην προσωπικη σελιδα του πακετου.

 

Σε αυτον το οδηγο θ'ασχοληθουμε με το πακετο ariadne.tar.gz :)

(το οπoιο ειναι: Compare protein sequences and profiles)

aurbg3.th.jpg

Στη σελιδα αυτη βλεπουμε οτι το πακετο ειναι στην κατηγορια: unsupported :: science

(Μερικα πακετα που δηλωνονται unsupported στο AUR εχουν ιοθετηθει απο τα repositories του pacman δλδ μπορουμε να τα βρουμε με pacman -S , αλλα επειδη δεν εχει γινει update στη σελιδα ειναι δηλωμενο unsupported, καλο ειναι να τσεκαρουμε πρωτα αν υπαρχει με pacman -S και να κοιταμε τα σχολια που εχει στο κατω μερος της σελιδας για την παραπανω πληροφορια ή για ανανεωμενα/τροποιημενα pkgbuilds ή για αλλα σχολια που γινοται σχετικα με προβληματα/λυσεις κατα το compilation)

 

Αυτο που χρειαζεται να κατεβασουμε τωρα απο αυτη τη σελιδα ειναι το αρχειο Tarball (αριστερα). Αυτο περιεχει το pkgbuild καθως και κατα περιπτωση patches που χρειαζονται για τη σημιουργια του πακετου μας.

 

αφου το κατεβασουμε σε 1 θεση στο δισκο μας (εγω προτιμω το φακελο /_com),

ανοιγουμε 1 κονσολα και κανουμε cd σε αυτον.

cd /_com

Επειτα κανουμε

tar xvf ariadne.tar.gz

ή με το gui, δεξι στο αρχειο->extract->extract here

κανουμε cd στο φακελο που δημιουργηθηκε

cd /ariadne

και δινουμε την εντολη

makepkg

 

Aν παρουμε το error :

==> ERROR: ariadne is not available for the 'i686' architecture.

Note that many packages may need a line added to their PKGBUILD

such as arch=('i686') ή arch=('i686_64'). (αναλογα ,με την πλατφορμα που ειμαστε)

πρεπει να φροντισουμε το πεδιο arch=('i686') ή arch=('i686_64') να βρισκεται στο αρχειο PKGBUILD. Γι αυτο ανοιγουμε το αρχειο PKGBUILD με καποιον editor πχ

nano PKGBUILD και προσθετουμε πανω πανω το πεδιο αυτο,το σωζουμε και ξαναδινουμε makepkg.

 

Αν ολα πανε καλα (μερικες φορες δεν πανε και περνεις error κατα τη διαδικασια), το script θα κατεβασει το source απο το net θα κανει compile και θα βγαλει εξοδο :

==> Finished making: ariadne

Τελος δινουμε

makepkg -i

και το πακετο θα εγκατασταθει με τη βοηθεια του pacman στο file system μας.

 

Σημειωση 1: Μπορουμε να κανουμε οσα makepkg ταυτοχρονα θελουμε αλλα μονο 1 makekpg -i ταυτοχρονα (οπως και με το pacman -S).

Σημειωση 2: Η διαδικασια του pkgbuild ειναι μια batch διαδικασια της

./configure make make install .

 

Viva ArchLinux!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μπορείς φυσικά να κάνεις build+install κατευθείαν δίνοντας από την αρχή makepkg -i.

Ή ακόμα καλύτερα makepkg -csi ώστε στο τέλος της διαδικασίας να σβηστούν τα προσωρινά αρχεία (φάκελοι src και pkg), να εγκατασταθούν αυτόματα τα απαιραίτητα dependencies (αν λείπουν) και φυσικα να εγκατασταθεί αυτόματα και το πακέτο με (με pacman -U) ;-)

 

http://wiki.archlinux.org/index.php/ABS

 

Arch Linux rulez notworthy.gif

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Costinio: Το makepkg -i ,αν κανεις πολλα μαζι ταυτοχρονα δεν μετραει γιατι μπορει να συμπεσουν 2 μαζι, και να σταματησει καποιο στη μεση (οχι πω πειραζει αυτο, αλλα θα πρεπει να το ξανακανεις makepkg -i μολις ελευθερωθει ο pacman)

Το makepkg -csi δεν το ξερα, ευχαριστω!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 5 μήνες μετά...

οταν παω να φτιαξψ καποιο πακετο απο AUR όταν δινω τηνεντολη makepkg -i σε καποιο σημειο μου ζηταει passwd τι passwd ειναι αυτο ???

 

Χρησιμοποιοώ fakeroot μεσα στο makepkg.conf....

 

Δεν μπορω να καταλαβω τι passwd θελει !!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

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

  • Δημιουργία νέου...