Πηγαίος Κώδικας λογισμικού – μεταγλώττιση & εγκατάσταση

...το μέρος για να ξεκινήσετε!

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Παρακαλώ να επιλέξετε, με προσοχή, την άδεια που θέλετε να έχουν οι οδηγοί που συγγράφετε.
Πληροφορίες για τις άδειες μπορείτε να βρείτε εδώ.
Άμα επιθυμείτε κάποια άλλη άδεια επικοινωνήστε με κάποιο Διαχειριστή είτε Συντονιστή.

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

Πηγαίος Κώδικας λογισμικού – μεταγλώττιση & εγκατάσταση

Δημοσίευσηαπό eliasps » 25 Νοέμ 2013, 02:13

Πολλές από τις ελευθερίες που μας προσφέρει το ελεύθερο λογισμικό οφείλονται στην διαφάνεια που υπάρχει λόγω της διαθεσιμότητας του πηγαίου κώδικα του λογισμικού.
Ο όρος "Open Source" (Aνοιχτού Κώδικα) σημαίνει κυριολεκτικά πως ο κώδικας του εν λόγω λογισμικού διατίθεται ελεύθερα στους χρήστες για τροποποίηση, αναδιανομή και με άλλα χαρακτηριστικά που ορίζονται από την άδεια του λογισμικού. Δηλαδή είναι ανοιχτός.
Μπορεί οποιοσδήποτε να δει ακριβώς τι εγκαθιστά στον υπολογιστή του, σε αντίθεση με το ιδιοταγές λογισμικό του οποίου ο κώδικας δεν είναι διαθέσιμος, επομένως δεν μπορεί κάποιος να γνωρίζει τι ακριβώς κάνει το λογισμικό που εγκαθιστά.

Υπάρχουν αρκετοί τρόποι για την εγκατάσταση προγραμμάτων ανοιχτού κώδικα στο Ubuntu και γενικότερα στις διανομές Linux. Ουσιαστικά πρόκειται για μία διαδικασία που εφαρμόζεται με διαφορετικές ενέργειες και με διαφορετικά εργαλεία. Μπορεί κάποιος να εγκαταστήσει ένα πρόγραμμα με χρήση εντολών για λήψη του πακέτου από κάποιο αποθετήριο και εγκατάσταση με τη χρήση του διαχειριστή πακέτων, με τη χρήση κάποιου αρχείου εγκατάστασης ή με την μεταγλώττιση του πηγαίου κώδικα και το "χτίσιμο" του προγράμματος στον υπολογιστή.

Σε αυτόν τον οδηγό θα δούμε την διαδικασία που πρέπει να ακολουθήσουμε προκειμένου να εγκαταστήσουμε λογισμικό μεταγλωττίζοντας τον πηγαίο του κώδικα.
Στόχος είναι να γίνει κατανοητή η διαδικασία της μεταγλώττισης στην απλούστερη μορφή της.
Ως "πειραματόζωο" στις εικόνες χρησιμοποιήθηκε ο πηγαίος κώδικας του polari, ενός IRC Client του GNOME Project.



Επιγραμματικά, τα βήματα που ακολουθούμε είναι:
  1. Εντοπίζουμε και κατεβάζουμε στον υπολογιστή μας το αρχείο που περιέχει τον πηγαίο κώδικα ενός πακέτου.
  2. Αποσυμπιέζουμε το αρχείο, διότι συνήθως ο κώδικας είναι συμπιεσμένος υπό μορφές που ποικίλουν, συνήθως tar.gz / tar.xz / tar.bz κλπ.
  3. Μεταγλωττίζουμε τον κώδικα. Με τον όρο μεταγλώττιση εννοούμε την μετατροπή του κώδικα από γλώσσα προγραμματισμού, σε εκτελέσιμη μορφή στον υπολογιστή.
  4. Εγκαθιστούμε το πακέτο με τη χρήση του εκτελέσιμου.
.

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


Τα βήματα που ακολουθούμε για την μεταγλώττιση του πηγαίου κώδικα ενός λογισμικού και την εγκατάστασή του, είναι τα παρακάτω.



  1. Προετοιμασία συστήματος
  2. Λήψη του πηγαίου κώδικα
  3. Unpack / Αποσυμπίεση αρχείου
  4. Έλεγχος εξαρτήσεων και ρύθμιση του πακέτου
  5. Μεταγλώττιση του κώδικα
  6. Διαγνωστικός έλεγχος
  7. Εγκατάσταση του λογισμικού
  8. Αφαίρεση περιττών αρχείων
  9. Σύνοψη




Προετοιμασία συστήματος:
Προτού ξεκινήσουμε την διαδικασία της μεταγλώττισης και της εγκατάστασης ενός πακέτου από τον πηγαίο κώδικα, θα πρέπει να έχουμε στο σύστημα κάποια πακέτα που είναι απαραίτητα για να μπορέσουμε να προχωρήσουμε με τη διαδικασία. Τα εγκαθιστούμε με την εντολή:
Κώδικας: Επιλογή όλων
sudo apt-get install build-essential checkinstall automake fakeroot dpkg-dev

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


Λήψη του πηγαίου κώδικα:
Πρόκειται για ένα καθαρά διαδικαστικό βήμα, αφού πρέπει να έχουμε τον πηγαίο κώδικα ενός πακέτου προκειμένου να τον χρησιμοποιήσουμε για εγκατάσταση. Ο πηγαίος κώδικας ενός λογισμικού ανοιχτού κώδικα είναι διαθέσιμος για λήψη σε κάποιο σημείο στο διαδίκτυο, ώστε να μπορούν οι χρήστες να τον χρησιμοποιήσουν, να τον τροποποιήσουν, να τον αντιγράψουν και γενικά να κάνουν πολλές ενέργειες που ορίζονται από την άδεια στην οποία υπόκειται το λογισμικό.
Συνεπώς, εντοπίζουμε τον πηγαίο κώδικα του λογισμικού που μας ενδιαφέρει στο διαδίκτυο και κατεβάζουμε το αρχείο στον υπολογιστή μας.

Μπορούμε εναλλακτικά να χρησιμοποιήσουμε στο τερματικό την εντολή wget για τη λήψη του κώδικα, αν γνωρίζουμε τον σύνδεμο λήψης. Η εντολή είναι:
Κώδικας: Επιλογή όλων
wget "σύνδεσμος-λήψης"

Έτσι, θα γίνει λήψη του αρχείου από τον σύνδεσμο και αποθήκευσή του στον φάκελο όπου βρισκόμαστε στο τερματικό.



Unpack / Αποσυμπίεση αρχείου:
Στο Linux και γενικότερα στα λειτουργικά συστήματα της οικογενείας του UNIX, η διανομή του πηγαίου κώδικα ενός λογισμικού γίνεται κυρίως με τη χρήση αρχείων .tar (αναφέρονται συχνά ως tarballs) με διάφορες μορφές, όπως tar.gz, tar.bz2, tar.xz κλπ. Για να προχωρήσουμε στην μεταγλώττιση του κώδικα θα πρέπει πρώτα να αποσυμπιέσουμε τον κώδικα που εμπεριέχεται στο αρχείο tar. Θα το κάνουμε με τη χρήση της γραμμής εντολών (σε τερματικό) και το αντίστοιχο εργαλείο.
Πρώτα, πηγαίνουμε στον φάκελο όπου έχουμε αποθηκευμένο το αρχείο tar που κατεβάσαμε, με την εντολή:
Κώδικας: Επιλογή όλων
cd /διαδρομή/για/φάκελο

Και συνεχίζουμε κάνοντας unpack:
  • Για αρχεία tar.gz χρησιμοποιούμε την εντολή:
    Κώδικας: Επιλογή όλων
    tar -zxvf όνομα_αρχείου.tar.gz
  • Για αρχεία tar.bz2 χρησιμοποιούμε την εντολή:
    Κώδικας: Επιλογή όλων
    tar -jxvf όνομα_αρχείου.tar.bz2
  • Για άρχεια tar.xz χρησιμοποιούμε την εντολή:
    Κώδικας: Επιλογή όλων
    tar -xJvf όνομα_αρχείου.tar.xz
Μετά από αυτή την ενέργεια θα έχει δημιουργηθεί στον φάκελο που βρισκόμαστε ένας φάκελος που θα περιέχει τον πηγαίο κώδικα του πακέτου που θέλουμε να εγκαταστήσουμε. Ξανά με την εντολή cd πηγαίνουμε σε αυτόν τον φάκελο:
Κώδικας: Επιλογή όλων
cd όνομα_φακέλου

Το όνομα του φακέλου συνήθως είναι το όνομα του λογισμικού, το οποίο βλέπουμε εύκολα με την εντολή:
Κώδικας: Επιλογή όλων
ls

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




Έλεγχος εξαρτήσεων και ρύθμιση του πακέτου:
Μέσα στον τρέχων φάκελο υπάρχει ένα script που ονομάζεται configure, το οποίο πρέπει να εκτελεστεί στον υπολογιστή.
Για την εκτέλεση του script configure, χρησιμοποιούμε την εντολή:
Κώδικας: Επιλογή όλων
./configure

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

Όπως κάθε εντολή που θα χρησιμοποιήσουμε, έτσι και η ./configure δίνει κάποια έξοδο στο τερματικό καθώς εκτελείται το script. Βλέπουμε εκεί τα μηνύματα που αφορούν την εκτέλεση του script και αν δημιουργηθεί κάποιο πρόβλημα λόγω έλλειψης εξάρτησης, τότε θα δούμε κάποιο μήνυμα που θα μας παροτρύνει να εγκαταστήσουμε την εν λόγω εξάρτηση και μετά να συνεχίσουμε.
Τα μηνύματα που εμφανίζονται όταν λείπει μία εξάρτηση είναι μηνύματα της μορφής:
έγραψε:To πακέτο πακέτο-τάδε δεν είναι εγκατεστημένο. Εγκαταστήστε το.


Aρκετές φορές σε τέτοιες περιπτώσεις, χρειάζεται να εγκαταστήσουμε την έκδοση dev του πακέτου, δηλαδή:
Κώδικας: Επιλογή όλων
sudo apt-get install πακέτο-τάδε-dev

Σε αυτή την περίπτωση λοιπόν, εγκαθιστούμε όποια πακέτα λείπουν και εκτελούμε ξανά την εντολή ./configure.


Μπορούμε να χρησιμοποιήσουμε περισσότερες επιλογές που θα καθορίσουν τις λεπτομέρειες της εγκατάστασης με τις κατάλληλες παραμέτρους στην εντολή ./configure.
Για παράδειγμα, μπορούμε να ορίσουμε την θέση της εγκατάστασης χρησιμοποιώντας:
Κώδικας: Επιλογή όλων
./configure --prefix=/διαδρομή/θέσης

Αυτή και πολλές άλλες χρήσιμες επιλογές για την χρήση της ./configure μπορούμε να τις δούμε με την εντολή:
Κώδικας: Επιλογή όλων
./configure --help


Όταν εκτελεστεί το script θα δούμε στο τερματικό διάφορα μηνύματα που ενημερώνουν για την πρόοδο της διαδικασίας. Σε αυτά τα μηνύματα βλέπουμε αν όλα πήγαν όπως πρέπει ή αν υπήρξαν προβλήματα και ποια είναι αυτά.
Όταν η διαδικασία ολοκληρωθεί με επιτυχία, ως αποτέλεσμα της εκτέλεσης του configure, θα δημιουργηθεί στον τρέχων φάκελο ένα αρχείο 'Makefile'.
To makefile είναι ένα αρχείο που ουσιαστικά περιέχει τους κανόνες σύμφωνα με τους οποίους θα γίνει η μεταγλώττιση του πηγαίου κώδικα σε εκτελέσιμη μορφή που "κατανοεί" ο υπολογιστής, προκειμένου να γίνει η εγκατάσταση.


Μεταγλώττιση του κώδικα:
Σε αυτό το σημείο θα χρησιμοποιηθεί το makefile για την μεταγλώττιση (compile) του πηγαίου κώδικα σε εκτελέσιμο αρχείο. Αυτό γίνεται με τη χρήση του εργαλείου GNU Make. To Make υπάρχει σχεδόν σε όλα τα λειτουργικά συστήματα της οικογένειας του UNIX (UNIX-like).
Το Make ψάχνει στον φάκελο που περιέχει τον κώδικα του προγράμματος για το αρχείο makefile και το χρησιμοποιεί για να μεταγλωττίσει τον πηγαίο κώδικα σε εκτελέσιμη μορφή. Αυτό γίνεται με την εντολή make ενώ βρισκόμαστε στον φάκελο που περιέχει τον πηγαίο κώδικα:
Κώδικας: Επιλογή όλων
make

Eκτελώντας λοιπόν την παραπάνω εντολή, το Make θα ακολουθήσει την διαδικασία που περιγράφεται στο makefile, που ορίζει πως ακριβώς θα γίνει η εγκατάσταση των αρχείων του λογισμικού.

Είναι χρήσιμο να παρατηρούμε την έξοδο της εντολής make για σφάλματα, εδώ φαίνονται μερικά μηνύματα που χρειάζονται έλεγχο.


Διαγνωστικός έλεγχος:
Αυτό είναι ένα προαιρετικό βήμα. Μπορούμε ξανά με τη χρήση του make, να τρέξουμε κάποιους διαγνωστικούς ελέγχους που εμπεριέχονται στον κώδικα του λογισμικού που θέλουμε να εγκαταστήσουμε, ώστε να δούμε αν όλα έχουν γίνει σωστά και δεν έχει γίνει κάποια παράληψη.
Αυτό το κάνουμε με την εντολή:
Κώδικας: Επιλογή όλων
make check

Συνεχίζουμε αν διαπιστώσουμε πως όλα έχουν γίνει όπως πρέπει ως εδώ.


Εγκατάσταση του λογισμικού:
Σε αυτό το σημείο θα εγκαταστήσουμε το λογισμικό. Έχουμε ολοκληρώσει όλα τα βήματα που χρειάζονται για να αρχίσει η εγκατάσταση:
  • Αποσυμπιέσαμε τον κώδικα από το αρχείο που κατεβάσαμε με την χρήση του tar.
  • Δημιουργήσαμε το αρχείο makefile από το configure script με την εντολή ./configure.
  • Μεταγλωττίσαμε τον κώδικα σύμφωνα με τους κανόνες του makefile με την χρήση του make και κάναμε επαληθεύσαμε πως όλα έχουν γίνει σωστά με την εντολή make check.
Για να προχωρήσουμε με την εγκατάσταση, ξανά με τη χρήση του make εκκινούμε την διαδικασία της εγκατάστασης. Η εντολή είναι:
Κώδικας: Επιλογή όλων
sudo make install


Αποτέλεσμα αυτής της εντολής θα είναι να μεταφερθούν όλα τα εκτελέσιμα αρχεία που δημιουργήθηκαν από την εντολή make στις κατάλληλες θέσεις στο σύστημά μας ώστε να λειτουργεί σωστά το πρόγραμμα που εγκαταστήσαμε.
Eναλλακτικά, μπορούμε να χρησιμοποιήσουμε την εντολή checkinstall η οποία μας παρέχει και άλλες επιλογές. Αν εκτελεστεί χωρίς παραμέτρους, τότε ουσιαστικά κάνει την διαδικασία ακριβώς όπως και η make install.


Αφαίρεση περιττών αρχείων:
Kαι αυτό το βήμα είναι προαιρετικό. Μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή για την αφαίρεση των αρχείων και των φακέλων που δημιουργήθηκαν κατά τη διάρκεια της εγκατάστασης και δεν μας χρειάζονται πλέον:
Κώδικας: Επιλογή όλων
sudo make clean



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




Σύνοψη:
Συνοψίζοντας τα παραπάνω, αφού έχουμε κατεβάσει τον πηγαίο κώδικα ενός πακέτου, στο τερματικό:
Μορφοποιημένος Κώδικας: Επιλογή όλων
sudo apt-get install build-essential checkinstall automake fakeroot dpkg-dev
cd /φάκελος/λήψης
tar -zxvf όνομα_αρχείου.tar.gz #για αρχεία .tar.gz
tar -jxvf όνομα_αρχείου.tar.bz2 #για αρχεία .tar.bz2
tar -xJvf όνομα_αρχείου.tar.xz #για αρχεία .tar.xz
cd όνομα_φακέλου
./configure #με ή χωρίς επιλογές
make
make check #προαιρετικό
sudo make install
sudo make clean #προαιρετικό


    Απεγκατάσταση
    Αν θέλουμε για οποιονδήποτε λόγο να απεγκαταστήσουμε ένα πακέτο που εγκαταστήσαμε με την παραπάνω διαδικασία, χρησιμοποιούμε την εντολή:
    Κώδικας: Επιλογή όλων
    sudo make uninstall

    H απεγκατάσταση μπορεί να γίνει και με τη χρήση του dpkg:
    Κώδικας: Επιλογή όλων
    sudo dpkg -r όνομα_πακέτου


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

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



Άβαταρ μέλους
eliasps
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4017
Εγγραφή: 16 Δεκ 2011, 22:25
Τοποθεσία: Αθήνα, Αττική
Launchpad: eliasps
IRC: eliasps
Εκτύπωση

Re: Πηγαίος Κώδικας λογισμικού – μεταγλώττιση & εγκατάσταση

Δημοσίευσηαπό Learner » 25 Νοέμ 2013, 02:25

Well Done !
:clap: :clap:
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9766
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

Re: Πηγαίος Κώδικας λογισμικού – μεταγλώττιση & εγκατάσταση

Δημοσίευσηαπό simosx » 25 Νοέμ 2013, 11:47

Μια χαρά οδηγός!

Μερικές σημειώσεις:
1. Η χρήση tarball για μεταγλώττιση είναι καλή επιλογή, διότι είναι πιο πιθανό να μεταγλωττίζεται πλήρως το πρόγραμμα σε σχέση με την έκδοση που έχει το αποθετήριο (master).
Για όσους θέλουν να πειραματιστούν με την πιο φρέσκια έκδοση του κώδικα, μπορούν να λάβουν την πιο πρόσφατη έκδοση μέσω αποθετηρίου,
όπως αναφέρει στο https://wiki.gnome.org/Apps/Polari
Αν μεταγλωττίζετε για πρώτη φορά, το tarball είναι μια χαρά επιλογή.

2. Για το checkinstall, υπάρχει τεκμηρίωση στο https://help.ubuntu.com/community/CheckInstall και είναι καλό να το χρησιμοποιεί κανείς.
Γενικά αρκετά πακέτα δεν περιλαμβάνουν make uninstall, οπότε είναι αρκετά δύσκολη η απεγκατάσταση.
Το checkinstall δημιουργεί πακέτο .deb που μπορούμε να εγκαταστήσουμε εύκολα, καθώς και να απεγκαταστήσουμε εύκολα.

3. Είναι χρήσιμο το ./configure --prefix=/usr/local
Γενικά η προεπιλογή είναι να μπαίνει το λογισμικό στο /usr/local, ωστόσο υπάρχουν μερικά πακέτα που δεν το προσέχουν και βάζουν τα αρχεία τους στο /usr
Προσωπικά προτείνω να μπαίνει πάντα ./configure --prefix=/usr/local

4. Αν το πακέτο που θέλουμε να μεταγλωττίσουμε είναι ήδη διαθέσιμο και μέσω του Κέντρου λογισμικού, τότε μπορούμε να εγκαταστήσουμε τις εξαρτήσεις εύκολα και γρήγορα με
Κώδικας: Επιλογή όλων

sudo apt-get build-dep όνομαπακέτο

Εγκαθιστά τα απαραίτητα πακέτα -dev που είναι για ανάπτυξη λογισμικού.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Πηγαίος Κώδικας λογισμικού – μεταγλώττιση & εγκατάσταση

Δημοσίευσηαπό sotos21 » 25 Νοέμ 2013, 12:48

Εύγε και από εμένα Ηλία, πολύ χρήσιμος οδηγός.
Καλό είναι να γράψουμε εδώ τα διάφορα περίεργα που συναντάμε κατά την μεταγλώττιση.
Όπως έγραψες για τον πυρήνα και τα γραφικά περιβάλλοντα, να συμπληρώσω και εγώ το πρόβλημα που υπάρχει με τον chromium-browser.
Μετά από 3 ώρες σταμάτησα την μεταγλώττιση γιατί τράβαγε πολύ και έγραφε στο swap ενώ είχε τουλάχιστον 2 GB ακόμα διαθέσιμα η ram.
Mετά από googling βρήκα στο gentoo forums, ότι χρειάζεται να έχω από 6 GB και πάνω ram.
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Καθόλου ┃ Αγγλικών: Καθόλου
2 Ubuntu 23.10 Mantic Minotaur 6.3.0-7-generic 64bit (el_GR.UTF-8, Unity:Unity7:ubuntu unity)
3 AMD Ryzen 7 7730U with Radeon Graphics ‖ RAM 15368 MiB ‖ASUS TN3604YA - ASUS Vivobook_S_Flip TN3604YA_TN3604YA
4 Advanced Micro Devices, Inc. [AMD/ATI] Barcelo [1002:15e7] {amdgpu}
5 wlp1s0: MEDIATEK Corp. Device [14c3:7922]
Άβαταρ μέλους
sotos21
Freedom
Freedom
 
Δημοσιεύσεις: 6304
Εγγραφή: 21 Φεβ 2011, 21:28
Τοποθεσία: Αθήνα
Εκτύπωση

Re: Πηγαίος Κώδικας λογισμικού – μεταγλώττιση & εγκατάσταση

Δημοσίευσηαπό eliasps » 25 Νοέμ 2013, 13:21

simosx έγραψε:Μερικές σημειώσεις:
...

Ευχαριστώ για τις σημειώσεις! Θα προστεθούν στον οδηγό οι παρατηρήσεις, μαζί με άλλα πράγματα που διαβάζω για τη βελτίωση της διαδικασίας.
Δηλαδή να μπουν παράμετροι και ρυθμίσεις για πιο στοχευμένη εγκατάσταση, χωρίς βλάβη της γενικότητας. ;)

sotos21 έγραψε:να συμπληρώσω και εγώ το πρόβλημα που υπάρχει με τον chromium-browser.
Μετά από 3 ώρες σταμάτησα την μεταγλώττιση γιατί τράβαγε πολύ και έγραφε στο swap ενώ είχε τουλάχιστον 2 GB ακόμα διαθέσιμα η ram.
Mετά από googling βρήκα στο gentoo forums, ότι χρειάζεται να έχω από 6 GB και πάνω ram.

Δεν το έχω ακούσει ξανά. Επίσης δεν έχει τύχει να εγκαταστήσω ποτέ τον chromium από τον πηγαίο κώδικα.
Συνηθίζω να κάνω εγκατάσταση από τον κώδικα μόνο για εφαρμογές όπου χρειάζομαι συγκεκριμένη, ή την τελευταία έκδοση, ή ειδικές ρυθμίσεις εγκατάστασης.
Όμως από περιέργεια θα δοκιμάσω να εγκαταστήσω έτσι τον chromium σήμερα, να δω αν εμφανιστεί και σε μένα το ίδιο πρόβλημα. Ακούγεται αρκετά περίεργο.

Δεν έχω θυμάμαι αυτή τη στιγμή περίεργα προβλήματα. Αλλά μεγάλη ταλαιπωρία σε αρκετά πακέτα για να βρω τις εξαρτήσεις!
Άβαταρ μέλους
eliasps
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4017
Εγγραφή: 16 Δεκ 2011, 22:25
Τοποθεσία: Αθήνα, Αττική
Launchpad: eliasps
IRC: eliasps
Εκτύπωση

Re: Πηγαίος Κώδικας λογισμικού – μεταγλώττιση & εγκατάσταση

Δημοσίευσηαπό Learner » 25 Νοέμ 2013, 14:51

eliasps έγραψε:Αλλά μεγάλη ταλαιπωρία σε αρκετά πακέτα για να βρω τις εξαρτήσεις!

Αν το πακέτο είναι διαθέσιμο στα αποθετήρια του Ubuntu, μπορούμε να λύσουμε το πρόβλημα των εξαρτήσεων με την παρακάτω εντολή
Κώδικας: Επιλογή όλων
sudo apt-get build-dep «όνομα πακέτου»
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9766
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

Re: Πηγαίος Κώδικας λογισμικού – μεταγλώττιση & εγκατάσταση

Δημοσίευσηαπό simosx » 25 Νοέμ 2013, 20:57

sotos21 έγραψε:
Όπως έγραψες για τον πυρήνα και τα γραφικά περιβάλλοντα, να συμπληρώσω και εγώ το πρόβλημα που υπάρχει με τον chromium-browser.
Μετά από 3 ώρες σταμάτησα την μεταγλώττιση γιατί τράβαγε πολύ και έγραφε στο swap ενώ είχε τουλάχιστον 2 GB ακόμα διαθέσιμα η ram.
Mετά από googling βρήκα στο gentoo forums, ότι χρειάζεται να έχω από 6 GB και πάνω ram.


Δες οδηγίες μεταγλώττισης ειδικές για το chromium στο http://code.google.com/p/chromium/wiki/ ... requisites
Για μνήμη χρειάζεται να έχεις αρκετή swap, 8GB. Και 4GB RAM τουλάχιστον.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Οδηγοί - How to - Tutorials