Ξεκινώντας

Το JHBuild απαιτεί μερικές ρυθμίσεις προτού κτίσει λογισμικό. Έχει επίσης κάποιο προαπαιτούμενο λογισμικό, και είναι αναγκαίο να εγκατασταθούν τα προαπαιτούμενα αναγκαία εργαλεία για τη λήψη και το κτίσιμο των ενοτήτων λογισμικού.

2.1. Εγκαθιστώντας το JHBuild

Το JHBuild απαιτεί έναν χρόνο εκτέλεσης Python. Επιβεβαιώστε ότι το Python >= 2.3 είναι εγκατεστημένο.

The recommended way to download JHBuild is via the version control system, git. This can be achieved with the following command. It is recommended to run the command from a new directory where all source code will be installed, for example, ~/jhbuild/checkout.

$ git clone git://git.gnome.org/jhbuild
...
$

Αυτό θα κατεβάσει το JHBuild σε ένα νέο φάκελο που ονομάζεται jhbuild μέσα στον τρέχοντα φάκελο. Τώρα για να κτίσετε και να εγκαταστήσετε το JHBuild:

$ cd jhbuild
$ ./autogen.sh
...
$ make
...
$ make install
...
$

Αν τα gnome-common, yelp-tools και autotools είναι διαθέσιμα, το autogen.sh θα ρυθμίσει το JHBuild να εγκαταστήσει μέσα από autotools. Αν τα gnome-common, yelp-tools και autotools δεν είναι διαθέσιμα, το autogen.sh θα ρυθμίσει το JHBuild να εγκαταστήσει μέσα από ένα απλό Makefile. Για να χρησιμοποιείτε πάντα τη μέθοδο απλού Makefile περάστε --simple-install στο autogen.sh.

Αν τα πιο πάνω βήματα ολοκληρωθούν επιτυχώς, ένα μικρό σενάριο εντολών κελύφους θα εγκατασταθεί στο ~/.local/bin το οποίο θα εκκινεί το JHBuild. Προσθέστε το ~/.local/bin στο PATH:

$ PATH=$PATH:~/.local/bin
$

Για να προσθέσετε μόνιμα το ~/.local/bin στη μεταβλητή PATH, εκτελέστε την ακόλουθη εντολή:

$ echo 'PATH=$PATH:~/.local/bin' >> ~/.bashrc
$

2.2. Παραμετροποίηση του JHBuild

Το JHBuild μπορεί να ρυθμιστεί μέσα από ένα αρχείο ρυθμίσεων. Η προεπιλεγμένη θέση είναι ~/.config/jhbuildrc. Αν δεν υπάρχει αρχείο ρυθμίσεων, χρησιμοποιούνται οι προεπιλογές. Το αρχείο ρυθμίσεων χρησιμοποιεί σύνταξη Python. Δίνεται ένα παράδειγμα, δείτε examples/sample.jhbuildrc. Αντιγράψτε το examples/sample.jhbuildrc στο ~/.config/jhbuildrc και προσαρμόστε το όπως απαιτείται.

The sample configuration will make JHBuild build the meta-gnome-core and meta-gnome-apps-tested modules and dependencies from the gnome-apps module set. JHBuild will unpack source trees to ~/jhbuild/checkout/ and install all files to subdirectories of ~/jhbuild/install/. The two directories must be writable.

Οι μεταβλητές παραμετροποίησης τεκμηριώνονται στο Ενότητα 6 ― Αναφορά αρχείου ρυθμίσεων. Οι πιο κοινά χρησιμοποιούμενες μεταβλητές είναι:

repos

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

repos['git.gnome.org'] = 'ssh://όνομα χρήστη@git.gnome.org/git/'
moduleset

Μια συμβολοσειρά ή λίστα συμβολοσειρών που καθορίζουν το όνομα ή ονόματα της ομάδας ή των ομάδων ενοτήτων που θα χρησιμοποιηθούν. Αυτά μπορεί να είναι είτε το όνομα μιας ομάδας ενοτήτων που περιλαμβάνεται με το JHBuild (χωρίς τη διαδρομή και την επέκταση αρχείου), είτε ένα πλήρες HTTP URL προς μια εξωτερικά διαχειριζόμενη ομάδα ενοτήτων. Οι ομάδες ενοτήτων HTTP URL αποθηκεύονται προσωρινά τοπικά. Αν μια ενότητα με το ίδιο όνομα υπάρχει σε περισσότερες από μία ομάδες ενοτήτων, η τελευταία ομάδα στη λίστα έχει την προτεραιότητα. Οι ομάδες ενοτήτων που παρέχονται με το JHBuild ενημερώνονται για να ταιριάζουν με την τρέχουσα έκδοση ανάπτυξης του GNOME.

modules

Μια λίστα συμβολοσειρών που καθορίζουν τις ενότητες που θα δομηθούν. Η λίστα ενοτήτων που πραγματικά θα δομηθούν θα επεκταθεί κυκλικά ώστε να συμπεριλαμβάνει όλες τις εξαρτήσεις, εκτός και αν χρησιμοποιηθεί η εντολή buildone. Η προεπιλογή είναι ['meta-gnome-desktop'].

checkoutroot

A string specifying the directory to unpack source trees to. Unless buildroot is set, builds will occur in this directory too. Defaults to ~/jhbuild/checkout.

prefix

A string specifying the prefix to install modules to. prefix must be an absolute path. This directory must be writable. Defaults to '~/jhbuild/install/'.

autogenargs

Μια συμβολοσειρά που περιέχει ορίσματα τα οποία περνούν στο σενάριο εντολών autogen.sh όλων των ενοτήτων. Μπορεί να παρακαμφθεί για συγκεκριμένες ενότητες χρησιμοποιώντας το λεξικό module_autogenargs.

makeargs

Μια συμβολοσειρά με επιπρόσθετα ορίσματα που θα περαστούν στο make. Το JHBuild θα προσαρτήσει αυτόματα την επιλογή της παράλληλης εκτέλεσης (-j) με βάση τους διαθέσιμους πυρήνες CPU. Η προεπιλογή είναι ''.

2.3. Προαπαιτούμενα για τη δόμηση

Προτού μπορούν να δομηθούν οποιεσδήποτε ενότητες, είναι αναγκαίο να είναι εγκατεστημένα κάποια εργαλεία δόμησης. Τα κοινά εργαλεία δόμησης περιλαμβάνουν τα GNU Autotools (autoconf, automake, libtool και gettext). Τα GNU Toolchain (binutils, gcc, g++), make, το pkg-config και την Python, ανάλογα με το ποιες ενότητες θα δομηθούν.

Το JHBuild μπορεί να ελέγξει αν είναι εγκατεστημένα αυτά τα εργαλεία χρησιμοποιώντας την εντολή sanitycheck:

$ jhbuild sanitycheck

Αν αυτή η εντολή εμφανίσει οποιοδήποτε μήνυμα, εγκαταστήστε παρακαλώ το απαιτούμενο πακέτο από το αποθετήριο της διανομής σας. Μια λίστα από ονόματα πακέτων για διαφορετικές διανομές διατηρείται στο βίκι του GNOME. Εκτελέστε την εντολή sanitycheck ξανά μετά την εγκατάσταση των πακέτων της διανομής για να βεβαιωθείτε ότι τα απαιτούμενα εργαλεία είναι παρόντα.

2.4. Χρησιμοποιώντας το JHBuild

Αφού έχει ολοκληρωθεί η εγκατάσταση, το JHBuild θα μπορεί να χρησιμοποιηθεί για τη δόμηση λογισμικού. Για να δομήσετε όλες τις ενότητες που είναι επιλεγμένες στο αρχείο ~/.config/jhbuildrc, εκτελέστε την ακόλουθη εντολή:

$ jhbuild build

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

Η παράβλεψη μιας ενότητας θα οδηγήσει στην αποτυχία και όσων ενοτήτων εξαρτιούνται από αυτή.

Ακολουθεί ένα παράδειγμα του μενού που εμφανίζεται:

  [1] Επανάληψη φάσης δόμησης
  [2] Παράβλεψη σφάλματος και συνέχεια εγκατάστασης
  [3] Παράβλεψη ενότητας
  [4] Εκκίνηση κελύφους
  [5] Επαναφόρτωση ρύθμισης
  [6] Μετάβαση στη φάση "απάλειψη φακέλου και εκκίνηση από την αρχή"
  [7] Μετάβαση στη φάση "ρύθμιση"
  [8] Μετάβαση στη φάση "καθαρισμός"
  [9] Μετάβαση στη φάση "distclean"
choice: 

Είναι επίσης δυνατό το κτίσιμο μιας διαφορετικής ομάδας ενοτήτων και των εξαρτήσεων τους περνώντας τα ονόματα των ενοτήτων στην εντολή build command. Για παράδειγμα, για να κτίσετε το gtk+:

$ jhbuild build gtk+

Αν το JHBuild ακυρωθεί κατά τη διάρκεια ενός κτισίματος, είναι δυνατή η συνέχιση του κτισίματος από ένα συγκεκριμένο ενότητα με χρήση της επιλογής --start-at:

$ jhbuild build --start-at=pango

Για να δομήσετε μία ή περισσότερες ενότητες, αγνοώντας τις εξαρτήσεις τους, το JHBuild παρέχει την εντολή buildone. Για να ολοκληρωθεί με επιτυχία η εντολή buildone, όλες οι εξαρτήσεις πρέπει να έχουν κτιστεί και εγκατασταθεί από πριν, ή να παρέχονται από πακέτα της διανομής.

$ jhbuild buildone gtk+

Όταν αναπτύσσεται ενεργά μια ενότητα, είσαστε πιθανόν σε έναν πηγαίο κατάλογο εργασίας. Η make θα καλέσει το σύστημα δόμησης και εγκατάστασης της ενότητας. Αυτό θα είναι ένα βασικό μέρος του κύκλου επεξεργασία-μεταγλώττιση-εγκατάσταση-δοκιμή.

$ jhbuild make

Αν το JHBuild ακυρωθεί κατά τη διάρκεια ενός κτισίματος, είναι δυνατή η συνέχιση του κτισίματος από ένα συγκεκριμένο ενότητα με χρήση της επιλογής --start-at:

Για να λάβετε μια λίστα με τις ενότητες και τις εξαρτήσεις που θα κτίσει το JHBuild, και τη σειρά με την οποία θα κτιστούν, χρησιμοποιήστε την εντολή list:

$ jhbuild list

Για να λάβετε πληροφορίες για μια συγκεκριμένη ενότητα, χρησιμοποιήστε την εντολή info:

$ jhbuild info gtk+

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

$ jhbuild update

Αργότερα, το JHBuild θα μπορεί να κτίσει τα πάντα χωρίς να κατεβάσει ή να ενημερώσει τις πηγές:

$ jhbuild build --no-network

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

$ jhbuild run program

Για την έναρξη ενός κελύφους με το ίδιο χρησιμοποιούμενο περιβάλλον από το JHBuild, χρησιμοποιήστε την εντολή shell:

$ jhbuild shell