Ξεκινώντας
Το JHBuild απαιτεί μερικές ρυθμίσεις προτού κτίσει λογισμικό. Έχει επίσης κάποιο προαπαιτούμενο λογισμικό, και είναι αναγκαίο να εγκατασταθούν τα προαπαιτούμενα αναγκαία εργαλεία για τη λήψη και το κτίσιμο των αρθρωμάτων λογισμικού.
2.1. Εγκαθιστώντας το JHBuild
JHBuild requires a Python runtime. Verify Python >= 2.3 is installed.
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, ~/checkout/gnome.
$ git clone git://git.gnome.org/jhbuild ... $
Αυτό θα κατεβάσει το JHBuild σε ένα νέο φάκελο που ονομάζεται jhbuild μέσα στον τρέχοντα φάκελο. Τώρα για να κτίσετε και να εγκαταστήσετε το JHBuild:
$ cd jhbuild $ ./autogen.sh ... $ make ... $ make install ... $
If gnome-common, gnome-doc-utils and autotools are available, autogen.sh will configure JHBuild to install via autotools. If gnome-common, gnome-doc-utils and autotools are not available, autogen.sh will configure JHBuild to install via a plain Makefile. To always use the plain Makefile method pass --simple-install to autogen.sh.
Αν τα πιο πάνω βήματα ολοκληρωθούν επιτυχώς, ένα μικρό σενάριο εντολών κελύφους θα εγκατασταθεί στο ~/.local/bin το οποίο θα εκκινεί το JHBuild. Προσθέστε το ~/.local/bin στο PATH:
$ PATH=$PATH:~/.local/bin $
Για να προσθέσετε μόνιμα το ~/.local/bin στη μεταβλητή PATH, εκτελέστε την ακόλουθη εντολή:
$ echo PATH=$PATH:~/.local/bin >> ~/.bashrc $
Προτού τρέξετε το JHBuild, είναι απαραίτητο να ορίσετε ένα αρχείο ρυθμίσεων στο φάκελο ~/.jhbuildrc.
2.2. Παραμετροποίηση του JHBuild
The ~/.jhbuildrc file uses Python syntax to set configuration variables for JHBuild. An example is provided with JHBuild, see examples/sample.jhbuildrc. Copy examples/sample.jhbuildrc to ~/.jhbuildrc and customize as required.
The sample configuration will make JHBuild build the meta-gnome-core and meta-gnome-apps-tested modules and dependencies from the gnome-apps-3.4 module set. JHBuild will unpack source trees to ~/checkout/gnome and install all files to subdirectories of /opt/gnome. The two directories must be writable.
Οι μεταβλητές παραμετροποίησης τεκμηριώνονται στο Ενότητα 6 ― Configuration File Reference. Οι πιο κοινά χρησιμοποιούμενες μεταβλητές είναι:
- αποθετήρια
-
Ένα λεξικό το οποίο μπορεί να χρησιμοποιηθεί για να οριστεί μια εναλλακτική τοποθεια αποθετηρίου για ένα συγκεκριμένο αποθετήριο. Αυτή η μεταβλητή παραμετροποίησης είναι χρήσιμη σε έναν προγραμματιστή αρθρωμάτων. Από προεπιλογή, το 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 ~/checkout/gnome.
- prefix
-
A string specifying the prefix to install modules to. prefix must be an absolute path. This directory must be writable. Defaults to '/opt/gnome'.
- autogenargs
-
Μια συμβολοσειρά η οποία περιέχει ορίσματα τα οποία περνούν στο σενάριο εντολών autogen.sh όλων των αρθρωμάτων. Μπορεί να παρακαμφθεί για συγκεκριμένα αρθρώματα χρησιμοποιώντας το λεξικό module_autogenargs.
- makeargs
-
Μια συμβολοσειρά με επιπρόσθετα ορίσματα που θα περαστούν στο make. Η προεπιλογή είναι ''.
2.3. Προαπαιτούμενα για το κτίσιμο
Προτού μπορούν να κτιστούν οποιαδήποτε αρθρώματα, είναι αναγκαίο να είναι εγκατεστημένα κάποια εργαλεία κτισίματος. Τα κοινά εργαλεία κτισίματος περιλαμβάνουν τα GNU Autotools (autoconf, automake, libtool και gettext), τα GNU Toolchain (binutils, gcc, g++), το pkg-config και την Python, ανάλογα με το ποια αρθρώματα θα κτιστούν.
Το JHBuild μπορεί να ελέγξει αν είναι εγκατεστημένα αυτά τα εργαλεία χρησιμοποιώντας την εντολή sanitycheck:
$ jhbuild sanitycheck
Αν αυτή η εντολή εμφανίσει οποιαδήποτε μηνύματα, τα σφάλματα μπορούν να διορθωθούν με έναν από τους εξής δύο τρόπους:
-
Εγκαταστήστε το απαιτούμενο πακέτο από τα αποθετήρια της διανομής σας. Μια λίστα από ονόματα πακέτων για διαφορετικές διανομές διατηρείται στο wiki του GNOME. Εκτελέστε την εντολή sanitycheck ξανά μετά την εγκατάσταση των πακέτων της διανομής για να βεβαιωθείτε ότι τα απαιτούμενα εργαλεία είναι παρόντα.
-
Εκτελέστε την εντολή bootstrap για να κατεβάσετε, να κτίσετε και να εγκαταστήσετε τα προαπαιτούμενα για το κτίσιμο:
$ jhbuild bootstrap
Όταν ολοκληρωθεί, εκτελέστε την εντολή sanitycheck για να βεβαιωθείτε ότι τα απαραίτητα εργαλεία είναι παρόντα.
Η εντολή bootstrap δε κτίζει όλες τις εξαρτήσεις πακέτων που απαιτούνται από τα εργαλεία κτισίματος. Αν η διανομή σας δεν παρέχει τα απαραίτητα πακέτα, θα πρέπει να κτιστούν έξω από το περιβάλλον του JHBuild.
Οι εξαρτήσεις των εργαλείων κτισίματος περιλαμβάνουν τα m4, perl και έναν μεταγλωττιστή C (για παράδειγμα τον gcc).
2.4. Χρησιμοποιώντας το JHBuild
Μετά που θα έχει ολοκληρωθεί η εγκατάσταση, το JHBuild θα μπορεί να χρησιμοποιηθεί για το κτίσιμο λογισμικού. Για να κτίσετε όλα τα αρθρώματα που είναι επιλεγμένα στο αρχείο ~/.jhbuildrc, εκτελέστε την ακόλουθη εντολή:
$ jhbuild build
Το JHBuild θα κατεβάσει, θα ρυθμίσει, θα μεταγλωττίσει και θα εγκαταστήσει κάθε ένα από τα αρθρώματα. Αν συμβεί κάποιο σφάλμα σε οποιοδήποτε στάδιο, το JHBuild θα παρουσιάσει ένα μενού και θα σας ρωτήσει τι να κάνει. Οι επιλογές περιλαμβάνουν τη μετάβαση σε ένα κέλυφος για να διορθώσετε το σφάλμα, το τρέξιμο του κτισίματος ξανά από διάφορα στάδια, την παράλειψη ενός αρθρώματος, ή την αγνόηση του σφάλματος και τη συνέχεια.
Η αγνόηση ενός αρθρώματος θα οδηγήσει στην αποτυχία και όσων αρθρωμάτων εξαρτούνται από αυτό.
Ακολουθεί ένα παράδειγμα του μενού που εμφανίζεται:
[1] Επανάληψη φάσης κτισίματος
[2] Αγνόηση σφάλματος και συνέχεια εγκατάστασης
[3] Παράβλεψη αρθρώματος
[4] Εκκίνηση κελύφους
[5] Επαναφόρτωση ρύθμισης
[6] Μετάβαση στη φάση "απάλειψη φακέλου και εκκίνηση από την αρχή"
[7] Μετάβαση στη φάση "ρύθμιση"
[8] Μετάβαση στη φάση "καθαρισμός"
[9] Μετάβαση στη φάση "distclean"
επιλογή:
Είναι επίσης δυνατό το κτίσιμο μιας διαφορετικής ομάδας αρθρωμάτων και των εξαρτήσεών τους περνώντας τα ονόματα των αρθρωμάτων στην εντολή build command. Για παράδειγμα, για να κτίσετε το gtk+:
$ jhbuild build gtk+
Αν το JHBuild ακυρωθεί κατά τη διάρκεια ενός κτισίματος, είναι δυνατή η συνέχιση του κτισίματος από ένα συγκεκριμένο άρθρωμα με χρήση της επιλογής --start-at:
$ jhbuild build --start-at=pango
Για να κτίσετε ένα ή περισσότερα αρθρώματα, αγνοώντας τις εξαρτήσεις τους, το JHBuild παρέχει την εντολή buildone. Για να ολοκληρωθεί με επιτυχία η εντολή buildone, όλες οι εξαρτήσεις πρέπει να έχουν κτιστεί και εγκατασταθεί από πριν, ή να παρέχονται από πακέτα της διανομής.
$ jhbuild buildone gtk+
Για να λάβετε μια λίστα με τα αρθρώματα και τις εξαρτήσεις που θα κτίσει το JHBuild, και τη σειρά με την οποία θα κτιστούν, χρησιμοποιήστε την εντολή list:
$ jhbuild list
Για να λάβετε πληροφορίες για ένα συγκεκριμένο άρθρωμα, χρησιμοποιήστε την εντολή info:
$ jhbuild info gtk+
Για να κατεβάσετε ή να ενημερώσετε όλες τις πηγές λογισμικού χωρίς να κτίσετε, χρησιμοποιήστε την εντολή update. Η εντολή update παρέχει την ευκαιρία να τροποποιήσετε τις πηγές πριν το κτίσιμο και μπορεί να είναι χρήσιμη αν ποικίλει το εύρος ζώνης της σύνδεσής σας στο διαδίκτυο.
$ jhbuild update
Αργότερα, το JHBuild θα μπορεί να κτίσει τα πάντα χωρίς να κατεβάσει ή να ενημερώσει τις πηγές:
$ jhbuild build --no-network
To run a particular command with the same environment used by JHBuild, use the run command:
$ jhbuild run program
To start a shell with the same environment used by JHBuild, use the shell command:
$ jhbuild shell