Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

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

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

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

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

Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό simosx » 24 Αύγ 2008, 15:10

Cygnus έγραψε:Τώρα για το gupnp κατά τη μεταγλώττιση του gssdp μου βγάζει τα εξής:
Κώδικας: Επιλογή όλων
....
checking pkg-config is at least version 0.9.0... yes
checking for LIBGSSDP... configure: error: Package requirements (gobject-2.0 >= 2.9.1 libsoup-2.4) were not met:

No package 'gobject-2.0' found
No package 'libsoup-2.4' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBGSSDP_CFLAGS
and LIBGSSDP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.


Το παραπάνω μήνυμα είναι κλασσικότατο μήνυμα κατά τη μεταγλώττιση. Αυτό που σημαίνει είναι ότι χρειάζεται να εγκαταστήσεις τα πακέτα ανάπτυξης εφαρμογών για τα gobject και libsoup.

Είναι σημαντικό να ξεκαθαρίσσουμε ότι κατά τη μεταγλώττιση θα λαμβάνουμε τέτοια μηνύματα ότι κάτι λείπει. Για κάθε μήνυμα, κάνουμε εγκατάσταση κάποιου πακέτου, και δοκιμάζουμε ξανά ./configure. Και βλέπουμε.

Κάνεις αναζήτηση για τα δύο μέσα από το Synaptic, και επιλέγεις να βάλεις τις εκδοχές των πακέτων που έχουν -dev στο όνομά τους. Η μορφή των ονομάτων των πακέτών που χρειάζονται είναι lib + <παραπάνω όνομα> + <κάποια νούμερα> -dev.

Το gobject είναι ειδική (σπάνια) έκδοχη. Με αναζήτηση στο Google για το μήνυμα No package 'gobject-2.0' found εμφανίζει ως πρώτη σελίδα ένα γράμμα που αναφέρει ότι το gobject είναι μέρος του glib, οπότε ψάχνεις για glib και -dev.

Από γραμμή εντολής μπορείς να κάνεις αναζήτηση με

Κώδικας: Επιλογή όλων
apt-cache search libglib


ή και

Κώδικας: Επιλογή όλων
apt-cache search libglib | grep -- -dev


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

Κώδικας: Επιλογή όλων
$ apt-cache search libglib | grep -- -dev
libglib-java-dev - GLib bindings for Java (development files)
libglib1.2-dev - The GLib library of C routines (development)
libglib2.0-dev - Development files for the GLib library
libglibmm-2.4-dev - C++ wrapper for the GLib toolkit (development files)


Από τα παραπάνω, χρειαζόμαστε το πακέτο libglib2.0-dev (οι βιβλιοθήκες του GNOME είναι στη βασική έκδοση 2.0χ, ενώ οι παλαιότερες εκδόσεις είναι 1.2x. Σε μερικά χρόνια θα υπάρξει μεταφορά στην έκδοση 3.χ)

Κώδικας: Επιλογή όλων
$ apt-cache search libsoup | grep -- -dev
libsoup2.2-dev - an HTTP library implementation in C -- Development files
libsoup2.4-dev - an HTTP library implementation in C -- Development files


Εδώ βάζουμε τη νεώτερη έκδοση.

Και δοκιμάζουμε ξανά με την εντολή ./configure ....
προσωπικό ιστολόγιο ϗ πλανήτης 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: Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό Cygnus » 25 Αύγ 2008, 02:28

Τα εγκατέστησα όλα με τη σωστή σειρά (gssdp, gupnp, gupnp-tools), μου έβγαλε στο Application menu το Programming αλλά όταν πάω να ξεκινήσω κάποιο πρόγραμμα του gupnp αυτό μένει στο starting up και ύστερα εξαφανίζεται.. :oops:
Cygnus
babeTUX
babeTUX
 
Δημοσιεύσεις: 44
Εγγραφή: 18 Ιούλ 2008, 17:52
Εκτύπωση

Re: Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό simosx » 25 Αύγ 2008, 03:10

Cygnus έγραψε:Τα εγκατέστησα όλα με τη σωστή σειρά (gssdp, gupnp, gupnp-tools), μου έβγαλε στο Application menu το Programming αλλά όταν πάω να ξεκινήσω κάποιο πρόγραμμα του gupnp αυτό μένει στο starting up και ύστερα εξαφανίζεται.. :oops:


Αυτό που πιστεύω ότι συμβαίνει είναι ότι έχεις εγκαταστημένα τα πακέτα του gupnp (από το Synaptic) και ταυτόχρονα τα αρχεία (2 βιβλιοθήκες + εργαλείο). Έτσι, μπορεί να συμβαίνει κάποιο μπέρδεμα.

1. Βγάλε τις βιβλιοθήκες που εγκατέστησες μέσω του Synaptic.
2. Κάνε επανεκκίνση του υπολογιστή, ή εκτέλεσε sudo ldconfig
Στόχος είναι το σύστημα να ενημερωθεί με τη τρέχουσα λίστα των βιβλιοθηκών.
3. Εκτέλεσε

Κώδικας: Επιλογή όλων
ldd /usr/local/bin/gupnp-universal-cp


Αυτό θα δείξει τις εξαρτήσεις (σε βιβλιοθήκες) που έχει η εφαρμογή. Εδώ πρέπει να έχει 2 εξαρτήσεις από το /usr/local/lib/*, που είναι οι βιβλιοθήκες που μεταγλωττίσαμε. Συγκεκριμένα,

Κώδικας: Επιλογή όλων
$ ldd /usr/local/bin/gupnp-universal-cp | grep "/usr/local/lib"
   libgupnp-1.0.so.2 => /usr/local/lib/libgupnp-1.0.so.2 (0x00007f93f9eb6000)
   libgssdp-1.0.so.1 => /usr/local/lib/libgssdp-1.0.so.1 (0x00007f93f9cac000)


Ως εδώ είμαστε πολύ ωραία. Εκτελείς

$ /usr/local/bin/gupnp-universal-cp


και πρέπει να έχεις το πρόγραμμα να λειτουργεί όπως πριν, δηλαδή, να εμφανίζει το παράθυρο αλλά να μην εντοπίζει το router.

Σε αυτό το σημείο είμαστε σε θέση να κάνουμε την αλλαγή στον κώδικα. Το περιγράφω αυτό σε νέα απάντηση παρακάτω.
προσωπικό ιστολόγιο ϗ πλανήτης 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: Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό simosx » 25 Αύγ 2008, 03:18

Η αλλαγή στον κώδικα, κατά το
http://bugzilla.openedhand.com/show_bug.cgi?id=1078

A. Από το αρχείο gssdp-0.6.1/libgssdp/gssdp-protocol.h
B. αντικαθιστάς το κείμενο

Κώδικας: Επιλογή όλων
#define SSDP_DISCOVERY_REQUEST                      \
        "M-SEARCH * HTTP/1.1\r\n"                   \
        "Host: " SSDP_ADDR ":" SSDP_PORT_STR "\r\n" \
        "Man: \"ssdp:discover\"\r\n"                \
        "ST: %s\r\n"                                \
        "MX: %d\r\n"                                \
        "User-Agent: %s GSSDP/" VERSION "\r\n\r\n"  \


με

Κώδικας: Επιλογή όλων
#define SSDP_DISCOVERY_REQUEST                      \
        "M-SEARCH * HTTP/1.1\r\n"                   \
        "Host: " SSDP_ADDR ":" SSDP_PORT_STR "\r\n" \
        "Man: \"ssdp:discover\"\r\n"                \
        "ST: %s\r\n"                                \
        "MX: %d\r\n\r\n"                            \


Γ. Στον ίδιο κατάλογο εκτελείς
Κώδικας: Επιλογή όλων
make
sudo make install
sudo ldconfig


Δ. Και αυτό ήταν. Τώρα μπορείς να εκτελέσεις
Κώδικας: Επιλογή όλων
/usr/local/bin/gupnp-universal-cp


και θα δεις το router σου, κατά τις οδηγίες στο
http://simos.info/blog/archives/730
προσωπικό ιστολόγιο ϗ πλανήτης 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: Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό Cygnus » 25 Αύγ 2008, 03:19

Όλα όπως τα λες:
Απεγκατέστησα τα πακέτα από synaptic, έκανα επανεκκίνηση,
Κώδικας: Επιλογή όλων
$ ldd /usr/local/bin/gupnp-universal-cp | grep "/usr/local/lib"
   libgupnp-1.0.so.2 => /usr/local/lib/libgupnp-1.0.so.2 (0xb7a41000)
   libgssdp-1.0.so.1 => /usr/local/lib/libgssdp-1.0.so.1 (0xb7a38000)


Και τρέχοντας το πρόγραμμα, δεν βρίσκει το router
Cygnus
babeTUX
babeTUX
 
Δημοσιεύσεις: 44
Εγγραφή: 18 Ιούλ 2008, 17:52
Εκτύπωση

Re: Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό Cygnus » 25 Αύγ 2008, 03:24

Δεν το εμφανίζει...Μήπως φταίει ότι αντί για make install κάνω sudo make install γιατί αλλιώς μου βγάζει error; Επίσης υπάρχει τρόπος να το απεγκαταστήσω τελείως και να το ξεκινήσω από την αρχή;
Cygnus
babeTUX
babeTUX
 
Δημοσιεύσεις: 44
Εγγραφή: 18 Ιούλ 2008, 17:52
Εκτύπωση

Re: Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό simosx » 25 Αύγ 2008, 05:11

Cygnus έγραψε:Δεν το εμφανίζει...Μήπως φταίει ότι αντί για make install κάνω sudo make install γιατί αλλιώς μου βγάζει error; Επίσης υπάρχει τρόπος να το απεγκαταστήσω τελείως και να το ξεκινήσω από την αρχή;


Ναι, sudo make install θέλει για να βάλει τα αρχεία στη θέση τους. Διαφορετικά δε θα ολοκληρωθεί η εγκατάσταση.

Μπορείς να επιβεβαιώσεις ότι
1. έκανες την αλλαγή στο συγκεκριμένο αρχείο *.h
2. εκτέλεσες sudo make install καθώς βρίσκεσαι μέσα στον κατάλογο με το πηγαίο κώδικα του gssdp
3. εκτέλεσες sudo ldconfig (δεν έχει σημασία σε πιο κατάλογο βρίσκεσαι).

Για απεγκατάσταση, μπορείς να πας στον καθένα από τους 3 καταλόγους με τον πηγαίο κώδικα και να εκτελέσεις

sudo make uninstall
προσωπικό ιστολόγιο ϗ πλανήτης 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: Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό Cygnus » 25 Αύγ 2008, 15:23

ΟΚ το απεγκατέστησα επιτυχώς..Τώρα θα το πάω από την αρχή μήπως και βγει άκρη.
Cygnus
babeTUX
babeTUX
 
Δημοσιεύσεις: 44
Εγγραφή: 18 Ιούλ 2008, 17:52
Εκτύπωση

Re: Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό Cygnus » 25 Αύγ 2008, 15:39

Λοιπόν:
1. Εγκαθιστώ κατά σειρά gssdp-0.6.1, gupnp-0.12.1, gupnp-tools-0.6
2. sudo ldconfig
3. Τρέχω το /usr/local/bin/gupnp-universal-cp, ανοίγει το πρόγραμμα και δεν βλέπει το router
4. Πάω και αλλάζω το gssdp-protocol.h και εγκαθιστώ την "νέα" βιβλιοθήκη gssdp
5. sudo ldconfig
6. Τρέχω το /usr/local/bin/gupnp-universal-cp, ανοίγει το πρόγραμμα και ΑΚΟΜΑ δεν βλέπει το router

Ε μα τι στο καλό συμβαίνει πια; :twisted:

ps. simosx σε ευχαριστώ για τη βοήθειά σου..
Cygnus
babeTUX
babeTUX
 
Δημοσιεύσεις: 44
Εγγραφή: 18 Ιούλ 2008, 17:52
Εκτύπωση

Re: Μεταγλώττιση (compilation/compile) πακέτων του GNOΜΕ

Δημοσίευσηαπό simosx » 25 Αύγ 2008, 16:19

Έχεις φτάσει πάρα πολύ κοντά στην ολοκλήρωση της διαδικασίας.

Μπορεί να συμβαίνουν διάφορα. Ας τα πάρουμε από την αρχή.

α. Χρησιμοποιείς το wireshark για να διαβάσεις τα πακέτα του δικτύου σου.
Φυσικά κλείνεις ό,τι άλλο διακτυακό πρόγραμμα για να είναι απλό το αποτέλεσμα της σύλληψης των πακέτων. Ανοίγεις λοιπόν το wireshark και το βάζεις να τρέχει
β. Τρέχεις το gupnp-universal-cp, το αφήνεις για 5 δευτερόλεπτα και μετά το κλείνεις.
γ. Πας πίσω στο wireshark, διακόπτεις τη σύλληψη πακέτων και κοιτάς το αποτέλεσμα.

Εδώ προσπαθείς να δεις τα πακέτα που στέλνει το gupnp-universal-cp. Για να σε βοηθήσει, τα πακέτα αυτά αναφέρουν το αλφαριθμητικό M-SEARCH. Θα δεις αιτήσεις από το μηχάνημά σου (192.168.1.χχχ) προς 255.255.255.0 (broadcast στο δίκτυο για όποια συσκευή υποστηρίζει, για να απαντήσει).
1. Αν δεις τέτοια πακέτα, τότε το gupnp-universal-cp δουλεύει.
1β. Μπορείς να δεις το περιεχόμενο του πακέτου M-SEARCH για να εντοπίσεις αν πράγματι υπάρχει αναφορά για "User-Agent" (δεν πρέπει να υπάρχει διότι το βγάλαμε).
2. Μπορείς να επιβεβαιώσεις αν το ST585 απαντάει στις αιτήσεις αυτές.
προσωπικό ιστολόγιο ϗ πλανήτης 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