Πως αναβαθμίζουμε ένα λογισμικό σε νεότερη του έκδοση, αν δεν είναι διαθέσιμο στο Κέντρο Λογισμικού της έκδοσης του Ubuntu που έχουμε;
Η απορία γεννήθηκε όταν ένας φίλος στην κοινότητα Ubuntu G+ Communities, στο άρθρο με τίτλο » Παίξτε Ταινίες, Μουσική, Φωτογραφίες από το PC στην Τηλεόραση, κινητό και τάμπλετ » με ρώτησε αν μπορεί να αναβαθμίσει το minidlna του στην τελευταία έκδοση, διότι η διαθέσιμη τελευταία μέσω των επίσημων αποθετηρίων ήταν παλιότερη.
Εδώ θα δούμε πως μπορούμε να το κάνουμε με χειροκίνητα (χωρίς PPA) αλλά και χωρίς μεταγλώττιση του πηγαίου κώδικα (χωρίς την κλασική τριάδα [./configure – make – make install]).
Λίγη θεωρία : Τα λογισμικά στις διανομές Linux είναι αρθρωτά και όχι μονολιθικά. Δηλαδή τα λογισμικά ΔΕΝ έρχονται με όλες τις βιβλιοθήκες και τις εξαρτήσεις τους πακεταρισμένες σε ένα εκτελέσιμο. Αντίθετα περιλαμβάνουν το βασικό λογισμικό και της πληροφορίες για το ποια και από που θα κάνουν λήψη των βιβλιοθηκών. Το πλεονέκτημα εδώ είναι οτι τα λογισμικά δεν εγκαθιστούν π.χ. 10 επαναλαμβανόμενες, διαφορετικές εκδόσεις, βιβλιοθηκών και εξαρτήσεων αλλά χρησιμοποιούν μια κοινόχρηστη βάση βιβλιοθηκών που είναι ήδη εγκατεστημένα στο σύστημα. Προβλήματα μπορούν να προκύψουν όταν κάνουμε χειροκίνητη εγκατάσταση εφαρμογές που δεν είναι διαθέσιμες στο Κέντρο Λογισμικού της διανομής μας, αλλά τις έχουμε κατεβάσει από το διαδίκτυο. Το μειονέκτημα φυσικά είναι ότι αν δεν υπάρχει η εξάρτηση στο σύστημα η δεν πληρεί τις προϋποθέσεις του λογισμικού που πάμε να εγκαταστήσουμε τότε πολύ πιθανών να μην δουλέψει το λογισμικό. Τέλος ένα άλλο μειονέκτημα είναι ότι για να διαφυλάξουν την σταθερότητα του συστήματος και λόγο της εξάρτησης από κοινόχρηστες βιβλιοθήκες, οι εκδόσεις των λογισμικών συνήθως δεν αναβαθμίζονται στην τελευταία έκδοση που διαθέτει ο προγραμματιστής.
Για τους παραπάνω λόγους «επινόησα» μια ενδιάμεση μέθοδο. :) Θα κάνουμε μεν, χειροκίνητη εγκατάσταση αλλά θα χρησιμοποιήσουμε πηγές λογισμικού από νεώτερες εκδόσεις του Ubuntu
Αναβάθμιση λογισμικού Ubuntu 12.04, μέσω νεότερης έκδοσης 13.10
Έστω λοιπόν ότι έχουμε Ubuntu 12.04 και έχουμε διαθέσιμη την minidlna 1.0.21. Αντίθετα στη νεότερη έκδοση Ubuntu 13.10 είναι διαθέσιμη η minidlna 1.0.24. Η διαφορές που έχουν οι εκδόσεις αυτές είναι αρκετές και προσωπικά για μένα είναι χρήσιμες για αυτό και θα αναβαθμίσω.
Βήμα 1
Πάμε στην σελίδα http://packages.ubuntu.com/ και στο πεδίο αναζήτησης γράφουμε το όνομα της εφαρμογής (π.χ. minidlna) και από κάτω επιλέγουμε στο «Search on: Source package names» για να μας εμφανίσει τα διαθέσιμα πακέτα πηγαίου κώδικα για την έκδοση «saucy» (Ubuntu 13.10).
Κάνουμε click στο αποτέλεσμα «saucy«
Βήμα 2
Κατεβάζουμε τα 3 αρχεία που είναι διαθέσιμα στην σελίδα του πηγαίου κώδικα και έχουν κατάληξη .dsc, .orig.tar.gz, .debian.tar.gz.
Φτιάχνουμε ένα φάκελο π.χ. sourcecode και βάζουμε αυτά τα 3 αρχεία μέσα σε αυτόν τον φάκελο. Ανοίγουμε ένα τερματικό και πριν από όλα, κάνουμε εγκατάσταση τις απαραίτητες, γενικές βιβλιοθήκες μεταγλώττισης:
sudo apt-get install build-essential fakeroot dpkg-dev
τέλος κάνουμε εγκατάσταση και τις εξαρτήσεις μεταγλώττισης του minidlna εκτελώντας:
sudo apt-get build-dep minidlna
Βήμα 3
Όπως ήμαστε στο τερματικό μπαίνουμε στον φάκελο «sourcecode» που φτιάξαμε νωρίτερα και που βάλαμε τα 3 αρχεία του πηγαίου κώδικα. Εκεί πρέπει να αποσυμπιέσουμε το πρόγραμμά μας με βάση τις οδηγίες που βρίσκονται στο αρχείο με κατάληξη .dsc δίνοντας στο τερματικό :
dpkg-source -x minidlna_1.0.24+dfsg-1.dsc
Αυτό θα φτιάξει ένα φάκελο minidlna-1.0.24xxxx όπου και μπαίνουμε μέσα από το τερματικό. Αφού μπούμε, φτιάχνουμε ένα πακέτο εγκατάστασης :
dpkg-buildpackage -rfakeroot -b
Όταν τελειώσουν οι εργασίες μεταγλώττισης, στον φάκελο «sourcecode» θα δείτε ένα πακέτο εγκατάστασης :)
Μπορείτε να το εγκαταστήσετε είτε απο το τερματικό είτε με διπλό κλίκ επάνω του.
Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα: