Διαφορά μεταξύ των αναθεωρήσεων του "Linux/Πακετοποίηση"
Bekos (Συζήτηση | συνεισφορές) (→Εκτελέσιμο αρχείο) |
Bekos (Συζήτηση | συνεισφορές) (→Μεταγλώττιση και δοκιμή των πακέτων debian) |
||
Γραμμή 373: | Γραμμή 373: | ||
Το επόμενο βήμα είναι η '''εγκατάσταση''' του πακέτου debian: <br/>{{Terminal|sudo dpkg -i ../debian-package-name_1.0_all.deb}} | Το επόμενο βήμα είναι η '''εγκατάσταση''' του πακέτου debian: <br/>{{Terminal|sudo dpkg -i ../debian-package-name_1.0_all.deb}} | ||
− | '''Αφαίρεση''' του πακέτου debian μπορεί να γίνει με: <br/>{{Terminal|sudo apt-get purge debian-package-name_1.0_all}} | + | '''Αφαίρεση''' του πακέτου debian μπορεί να γίνει με την εντολή: <br/>{{Terminal|sudo apt-get purge debian-package-name_1.0_all}} |
Όπου ''''debian-package-name'''' είναι το όνομα του πακέτου debian. | Όπου ''''debian-package-name'''' είναι το όνομα του πακέτου debian. | ||
− | Η επιλογή '''purge''' χρησιμοποιείται ώστε να αφαιρεθούν και τυχόν αρχεία ρυθμίσεων του πακέτου, εάν υπάρχουν. | + | Η επιλογή '''purge''' χρησιμοποιείται, ώστε να αφαιρεθούν και τυχόν αρχεία ρυθμίσεων του πακέτου, εάν υπάρχουν. |
Αναθεώρηση της 22:10, 27 Ιουλίου 2015
Σε αυτή την ενότητα, καταγράφεται η διαδικασία της δημιουργίας πακέτων λογισμικού σε μορφή debian (.deb), για λογισμικά που εκτελούνται σε λειτουργικό σύστημα Ubuntu Linux μέσω του λογισμικού Wine. Η διαδικασία που περιγράφεται, είναι, σε γενικές γραμμές, ανάλογη της διαδικασίας που εφαρμόστηκε για τα εκπαιδευτικά λογισμικά του Αποθετηρίου Πιστοποιημένου Εκπαιδευτικού Λογισμικού της Τεχνικής Στήριξης ΣΕΠΕΗΥ, τα οποία εκτελούνται και αυτά μέσω του Wine.
Περιεχόμενα
Τι είναι το λογισμικό Wine;
Το Wine (ακρωνύμιο της έκφρασης "Wine Is Not an Emulator") είναι ένα ελεύθερο (free) και ανοικτού κώδικα (open source) λογισμικό, με το οποίο είναι δυνατόν εφαρμογές που έχουν σχεδιαστεί να εκτελούνται σε λειτουργικό σύστημα Microsoft Windows, να μπορούν επίσης να εκτελούνται και σε λειτουργικά συστήματα παρόμοια με το Unix, όπως είναι το Ubuntu Linux.
Τι είναι το πακέτο debian (.deb);
Ένα (binary) πακέτο debian (.deb) περιέχει όλα εκείνα τα αρχεία (εκτελέσιμα αρχεία, βιβλιοθήκες, τεκμηριώσεις, κ.ά.), τα οποία είναι απαραίτητα για την εγκατάσταση νέου λογισμικού σε λειτουργικά συστήματα τύπου Debian Linux (π.χ. Ubuntu). Είναι, δηλαδή, κάτι αντίστοιχο των εκτελέσιμων αρχείων .exe, τα οποία περιέχουν οδηγίες για την εγκατάσταση νέου λογισμικού σε λειτουργικά συστήματα DOS, Microsoft Windows, κ.ά.
Τα περιεχόμενα ενός πακέτου debian οργανώνονται σε μια συγκεκριμένη μορφή. Σε γενικές γραμμές, ένα πακέτο debian περιέχει τους καταλόγους upstream και debian. Παρακάτω, αναλύεται η δομή ενός πακέτου debian και περιγράφονται αναλυτικά τα περιεχόμενα των καταλόγων upstream και debian.
Προετοιμασία
Απαιτήσεις σε λογισμικό
Θα πρέπει να έχουν εγκατασταθεί τα παρακάτω πακέτα, μαζί με τις εξαρτήσεις τους:
![]() | sudo apt-get install devscripts debhelper |
Κατά την εγκατάσταση των devscripts, εμφανίζεται ένας διάλογος ρύθμισης του πακέτου postfix (Postfix Configuration). Προτείνεται να επιλεγεί η ρύθμιση "No configuration".
Δημιουργία πακέτων debian
Για ένα νέο πακέτο debian, θα δημιουργείται ένας κατάλογος, ο οποίος μπορεί να έχει ως όνομα κάτι αντίστοιχο του ονόματος του λογισμικού, για να είναι εύκολο να απομνημονευθεί. Όπως αναφέρθηκε και παραπάνω, ένα πακέτο debian περιέχει τους καταλόγους upstream και debian. Η δομή των καταλόγων upstream και debian για κάθε πακέτο debian που δημιουργείται για ένα λογισμικό είναι η εξής:
Κατάλογος upstream
Ο κατάλογος upstream περιέχει όλα τα αρχεία που προκύπτουν από την εγκατάσταση του πρωτότυπου λογισμικού σε λειτουργικό σύστημα Microsoft Windows. Πιο αναλυτικά, ακολουθείται η παρακάτω διαδικασία.
1. Μεταφόρτωση του πρωτότυπου λογισμικού σε λειτουργικό σύστημα Microsoft Windows. Σε γενικές γραμμές, ακολουθούνται οι οδηγίες εγκατάστασης που υπάρχουν διαθέσιμες μαζί με κάθε λογισμικό. Συγκεκριμένα:
- Σε περίπτωση που διατίθεται το λογισμικό σε μορφή .zip ή .iso θα πρέπει να αποσυμπιεστεί.
- Σε περίπτωση που διατίθεται σε μορφή αρχείου εγκατάστασης, π.χ. setup.exe, θα πρέπει να εκτελεστεί και στη συνέχεια να συλλεχθούν τα αρχεία που προέκυψαν από την εκτέλεσή του.
- Σε περίπτωση που διατίθεται μέσω κάποιου CD/DVD, το οποίο περιέχει το αρχείο εγκατάστασης (π.χ. setup.exe) και βοηθητικό υλικό (π.χ.: Οδηγός χρήσης, Βιβλίο καθηγητή, κλπ.), θα πρέπει να εκτελεστεί το αρχείο εγκατάστασης και στη συνέχεια να συλλεχθούν τα αρχεία που προέκυψαν, καθώς και το βοηθητικό υλικό.
2. Μεταφορά του καταλόγου που προέκυψε από το προηγούμενο βήμα, σε ένα "καθαρό" Ubuntu μηχάνημα και προσπάθεια εκτέλεσης του αρχείου εγκατάστασης του λογισμικού με τη βοήθεια του Wine. Σε περίπτωση αποτυχίας, ανάκτηση των αρχείων που μπορεί να παρελήφθησαν κατά τη διάρκεια της εγκατάστασής του.
3. Το επόμενο βήμα, είναι η δημιουργία του καταλόγου upstream στο Ubuntu μηχάνημα. Στον κατάλογο upstream που θα δημιουργηθεί, αντιγράφονται τα αρχεία που έχουν προκύψει από τα προηγούμενα βήματα. Δηλαδή, ο κατάλογος upstream θα πρέπει να περιέχει τα αρχεία που προέκυψαν από την εγκατάσταση του λογισμικού σε Windows, τα οποία αποθηκεύονται στον κατάλογο "Program Files (Αρχεία Εφαρμογών)" (π.χ. C:\Program Files, για Windows XP), στον αντίστοιχο κατάλογο που έχει δημιουργηθεί μετά την εγκατάσταση του λογισμικού, καθώς και τυχόν βοηθητικό υλικό για το λογισμικό, εάν υπάρχει.
Προβλήματα κατά την εκτέλεση ενός λογισμικού μέσω του Wine και τρόποι αντιμετώπισής τους
Με το Wine, δεν είναι πάντα εφικτό να επιτευχθεί η εκτέλεση ενός Windows προγράμματος σε Linux. Υπάρχουν λογισμικά, τα οποία είναι αδύνατον να τρέξουν με τις υπάρχουσες υλοποιήσεις και εκδόσεις του Wine. Αλλά υπάρχουν και λογισμικά, για τα οποία πρέπει να γίνουν ορισμένες ενέργειες, για να γίνει δυνατή η σωστή εκτέλεσή τους με τη βοήθεια του Wine. Παρακάτω, αναφέρονται ορισμένες από τις πιο συνηθισμένες ενέργειες που μπορούν να γίνουν, όταν εμφανιστεί πρόβλημα κατά την εκτέλεση ενός λογισμικού μέσω του Wine:
Αρκετές φορές, υπάρχουν προβλήματα με dll αρχεία, που είναι απαραίτητα για την εκτέλεση ενός λογισμικού ή/και για την εγκατάστασή του. Δηλαδή, μπορεί ένα λογισμικό να απαιτεί την ύπαρξη ορισμένων dll αρχείων για την εκτέλεσή του. Αυτό θα γίνει εμφανές, με ένα αντίστοιχο μήνυμα στο τερματικό παράθυρο κατά την εκτέλεση του λογισμικού, όπως για παράδειγμα:
![]() | err:module:import_dll Library MSVBVM60.DLL (which is needed by L"Z:\\home\\sordelka\\Desktop\\DMD_Calendrier.exe") not found |
Αυτό το μήνυμα λάθους αναφέρει ότι λείπει το αρχείο MSVBVM60.DLL. Από το εργαλείο Winetricks του Wine (βρίσκεται στο μενού του Wine στο Gnome), μπορεί να γίνει λήψη και εγκατάσταση των πιο απαραίτητων και πιο συχνά χρησιμοποιούμενων dll αρχείων για Windows εφαρμογές (π.χ. MSVBVM60.DLL, MSVBVM50.DLL, MFC42.DLL, MSVCRT.DLL, COMDLG32.OCX, κ.ά.). Τα dll αρχεία αποθηκεύονται στον κατάλογο c:\windows\system32 του Wine (κατά αντιστοιχία με τα Windows συστήματα). Εάν το σύστημα συνεχίζει να μην βρίσκει το dll αρχείο, τότε θα πρέπει να γίνει αντιγραφή του στον κατάλογο του λογισμικού που το χρειάζεται, που βρίσκεται στον c:\Program Files. Εάν το πρόβλημα συνεχίζει να παραμένει, τότε καλό είναι να γίνει εγγραφή του dll αρχείου με την εντολή:
![]() | wine regsvr32 MSVBVM60.DLL |
Με την παραπάνω εντολή γίνεται εγγραφή του MSVBVM60.DLL. Γενικά, εάν ένα dll αρχείο χρειάζεται εγγραφή και δεν έχει γίνει, στο τερματικό παράθυρο του Ubuntu θα εμφανιστεί ένα μήνυμα λάθους, όπως για παράδειγμα:
![]() | err:ole:create_server class {00000514-0000-0010-8000-00aa006d2ea4} not registered |
Τότε, μπορεί να γίνει αναζήτηση στο διαδίκτυο, για να βρεθεί σε ποιο dll αντιστοιχεί το class id {00000514-0000-0010-8000-00aa006d2ea4}. Εάν, όντως, αυτό το id αντιστοιχεί σε κάποιο dll αρχείο, τότε θα πρέπει να γίνει εγγραφή του.
Από το Winetricks μπορεί να γίνει, επίσης, εγκατάσταση και ορισμένων Wine εφαρμογών, που προσομοιώνουν τις αντίστοιχες Windows εφαρμογές, όπως ο Internet Explorer, o Windows Media Player, ο Adobe Flash Player, κ.ά., σε περίπτωση που απαιτούνται από κάποιο λογισμικό.
Ένα άλλο πρόβλημα που μπορεί να προκύψει με τα dll αρχεία που απαιτεί ένα λογισμικό για την εκτέλεσή του, είναι το γεγονός το Wine να μην υποστηρίζει την native (Windows) υλοποίηση ενός dll αρχείου. Σε αυτή την περίπτωση, θα πρέπει να γίνει υπερκάλυψη (override) του dll αρχείου στην builtin υλοποίησή του, εάν υπάρχει, η οποία υποστηρίζεται από το Wine. Αυτό μπορεί να γίνει με το εργαλείο winecfg (Wine configuration) (βρίσκεται στο μενού του Wine στο Gnome) και, συγκεκριμένα, από την καρτέλα "Libraries" του winecfg. Γενικά, από το γραφικό περιβάλλον του winecfg μπορούν να γίνουν αρκετές αλλαγές, εκτός από τo override στις απαραίτητες βιβλιοθήκες ενός λογισμικού, όπως στα γραφικά, τον ήχο, την έκδοση των Windows που το Wine μπορεί να "μιμηθεί", κτλ. και να διορθωθούν, έτσι, διάφορα προβλήματα που μπορεί να προκύψουν με ένα λογισμικό που εκτελείται με τη βοήθεια του Wine.
Ακόμη, μπορεί να γίνει χρήση διαφορετικών εκδόσεων του Wine και να διορθωθεί με αυτόν τον τρόπο ένα πρόβλημα με ένα λογισμικό, καθώς κάθε νεότερη έκδοση του Wine είναι βελτιωμένη έκδοση των προηγούμενων.
Σε κάθε περίπτωση, μπορεί να γίνει αποσφαλμάτωση (debugging) του λογισμικού που παρουσιάζει πρόβλημα, κάνοντας χρήση της μεταβλητής περιβάλλοντος του Wine, της WINEDEBUG. Περισσότερες πληροφορίες υπάρχουν στη σελίδα βοήθειας του Wine, η οποία μπορεί να βρεθεί με την εντολή:
![]() | man wine |
Κατάλογος debian
Ο κατάλογος debian περιέχει τα ακόλουθα αρχεία, τα οποία περιγράφουν το debian πακέτο που δημιουργείται για ένα λογισμικό:
{{#tree:|openlevels=2|
- Κατάλογος debian
- Αρχείο changelog
- Αρχείο compat
- Αρχείο control
- Αρχείο copyright
- Αρχείο install
- Αρχείο rules
- Κατάλογος additional
- .desktop αρχείο. Το .desktop αρχείο θα έχει όνομα, το όνομα του πακέτου debian (π.χ. debian-package-name) και την κατάληξη .desktop. Άρα, debian-package-name.desktop.
- .png αρχείο. Το .png αρχείο θα έχει όνομα, το όνομα του πακέτου debian (π.χ. debian-package-name) και την κατάληξη .png. Άρα, debian-package-name.png.
- Εκτελέσιμο αρχείο. Το εκτελέσιμο αρχείο θα έχει όνομα, το όνομα του πακέτου debian (π.χ. debian-package-name). Άρα, debian-package-name.}}
Στη συνέχεια, αναφέρονται ορισμένα στοιχεία, για τη μορφή και τα περιεχόμενα των αρχείων του καταλόγου debian.
Αρχείο changelog
Το αρχείο changelog περιέχει πληροφορίες για την έκδοση του πακέτου debian ενός λογισμικού και τις αλλαγές που έχουν γίνει σε κάθε έκδοση. Ένα απλό παράδειγμα της μορφής που έχει ένα αρχείο changelog φαίνεται παρακάτω:
![]() |
debian-package-name (6.3.0.5.1-1) stable; urgency=low |
Όπου:
- debian-package-name: το όνομα του πακέτου debian.
- 6.3.0.5.1-1: η έκδοση του πακέτου debian.
- Maintainer of the debian package <e-mail>: πληροφορίες (όνομα, e-mail) αυτού του οποίου ευθύνεται για τη διατήρηση του πακέτου debian.
Το αρχείο changelog μπορεί να δημιουργηθεί με την εντολή dch (debian changelog):
![]() | dch --create |
Την πρώτη φορά που θα εκτελεστεί η εντολή dch, θα εμφανιστεί η παρακάτω ερώτηση:
![]() | Select an editor. To change later, run 'select-editor'. 1. /bin/ed |
Πατήστε Enter για να αφήσετε τον προεπιλεγμένο editor "nano".
Μετά την αρχική δημιουργία του αρχείου changelog, νέες καταχωρήσεις σε αυτό μπορούν να δημιουργηθούν με την εντολή:
![]() | sch-changelog |
Αρχείο compat
Το αρχείο compat περιέχει μόνο τον αριθμό της έκδοσης του debhelper που απαιτείται για να μεταγλωττιστεί το πακέτο. Η τρέχουσα έκδοση του debhelper είναι:
![]() | 7 |
Αρχείο control
Το αρχείο control περιέχει την περιγραφή και τις εξαρτήσεις του πακέτου. Αναλυτικότερα, το αρχείο control περιέχει οδηγίες για την εγκατάσταση του πακέτου debian ενός λογισμικού σε λειτουργικό σύστημα Ubuntu (από ποια πακέτα λογισμικού έχει εξάρτηση, κλπ.). Η μορφή του είναι η εξής:
Παρακάτω, δίνεται μια συνοπτική περιγραφή των πεδίων του αρχείου control, τα οποία χρησιμοποιούνται αρκετά συχνά στην πακετοποίηση σε debian μορφή των λογισμικών:
- Στο πεδίο ‘Source’ του αρχείου control εισάγεται το όνομα του πακέτου debian, π.χ. debian-package-name.
- Στο πεδίο ‘Section’ δηλώνεται η ενότητα της διανομής στην οποία θα συμπεριληφθεί το source πακέτο. Συνήθως, εισάγονται οι τιμές misc (εάν πρόκειται για λογισμικό με διάφορα είδη χρήσεων) ή devel (εάν πρόκειται για λογισμικό που χρησιμεύει ως εργαλείο προγραμματιστών).
- Στο πεδίο ‘Priority’ εκφράζεται η σημαντικότητα του πακέτου debian και εισάγονται οι τιμές extra ή optional.
- Στο πεδίο ‘Maintainer’ αναφέρεται το όνομα αυτού του οποίου ευθύνεται για τη διατήρηση του πακέτου debian.
- Στο πεδίο ‘Build-Depends’ μπαίνει η τιμή debhelper και η έκδοσή του, η οποία θα πρέπει να ελέγχεται, καθώς αλλάζει ανά έξι μήνες περίπου.
- Στο πεδίο ‘Standards-Version’ εισάγεται η τρέχουσα έκδοση, π.χ. 3.9.6, η οποία θα πρέπει να ελέγχεται κι αυτή, καθώς αλλάζει, επίσης, ανά έξι μήνες περίπου.
- Στο πεδίο ‘Homepage’ καταγράφεται η κεντρική σελίδα του λογισμικού.
- Στο πεδίο ‘Package’ γράφεται το όνομα του debian πακέτου, π.χ. debian-package-name.
- Στο πεδίο ‘Architecture’ εισάγεται η τιμή all, δηλαδή, υποστήριξη για 32-bit και 64-bit συστήματα.
- Tο πεδίο ‘Description’ αποτελείται από δύο μέρη, τη σύντομη και την αναλυτική περιγραφή του λογισμικού. Στη σύντομη περιγραφή, στην πρώτη γραμμή εισάγεται η ονοματολογία του λογισμικού, η οποία πρέπει να αποτελείται από περιορισμένο αριθμό χαρακτήρων. Μετά, εισάγονται περίπου 2 με 3 γραμμές το πολύ, με μια σύντομη περιγραφή της λειτουργίας του λογισμικού (single line synopsis). Έπειτα, ακολουθεί η αναλυτική περιγραφή (extended description) του λογισμικού, η οποία όμως δεν είναι απαραίτητη. Την σύντομη και την αναλυτική περιγραφή του εκπαιδευτικού λογισμικού τις χωρίζει μια τελεία (‘.’). Θα πρέπει να δίνεται ιδιαίτερη προσοχή στο μήκος των γραμμών. Δεν θα πρέπει μια γραμμή να είναι μεγάλη, καθώς κατά τη διάρκεια του debuild, στη φάση lintian, θα υπάρξει προειδοποίηση (warning) ότι το μήκος της γραμμής στο πεδίο ‘Description’ είναι πολύ μεγάλο. Για παράδειγμα, η σύντομη περιγραφή του λογισμικού δεν θα πρέπει να υπερβαίνει τους 80 χαρακτήρες. Επίσης, δεν θα πρέπει να αναφέρεται το όνομα του πακέτου debian. Τέλος, σε ό,τι αφορά την αναλυτική περιγραφή καλό είναι να μην είναι συνέχεια της σύντομης περιγραφής.
- Στο πεδίο ‘Depends’, στο οποίο, γενικά, πρέπει να δίνεται ιδιαίτερη προσοχή, καταγράφονται οι εξαρτήσεις του πακέτου debian του λογισμικού από άλλα πακέτα λογισμικού. Αυτό σημαίνει ότι για να εγκατασταθεί το προς πακετοποίηση λογισμικό, θα πρέπει πρώτα να εγκατασταθούν τα πακέτα λογισμικού που αναφέρονται στο πεδίο ‘Depends’. Για ένα λογισμικό που εκτελείται σε Ubuntu με τη βοήθεια του Wine, θα πρέπει στις εξαρτήσεις του πακέτου debian να υπάρχει οπωσδήποτε και η εξάρτηση από το Wine, δηλαδή, wine-el.
Επίσης, μπορεί να υπάρχουν και άλλου είδους εξαρτήσεις του λογισμικού, όπως:
- ‘Suggests’: Σε αυτό το πεδίο δηλώνονται τα πακέτα λογισμικού με τα οποία το πακέτο debian του λογισμικού θα είναι πιο χρήσιμο. Αυτό όμως δεν σημαίνει ότι πακέτα που αναφέρονται σε αυτό το πεδίο είναι απαραίτητα για την εγκατάσταση του λογισμικού.
- ‘Recommends’: Δηλώνεται μια ισχυρή, αλλά όχι απόλυτη εξάρτηση.
- Κτλ.
Τέλος, ένα αρχείο control μπορεί να περιέχει και τα εξής πεδία:
- ‘Conflicts’: Όταν για ένα πακέτο debian δηλώνεται μια «σύγκρουση» (conflict) με ένα άλλο πακέτο, το εργαλείο dpkg (με το οποίο γίνεται διαχείριση των πακέτων debian, όπως εγκατάσταση ενός πακέτου κτλ.) θα αρνηθεί να επιτρέψει και στα δύο να από-πακετοποιηθούν (unpack) ταυτόχρονα στο σύστημα. Δηλαδή, εάν ένα πακέτο πρόκειται να από-πακετοποιηθεί, το άλλο πρέπει να διαγραφεί πρώτα.
- ‘Replaces’: Τα πακέτα debian μπορούν να δηλώσουν στο αρχείο control ότι μπορούν να αντικαταστήσουν αρχεία σε συγκεκριμένα άλλα πακέτα ή να αντικαταστήσουν τελείως άλλα πακέτα (σε αυτή την περίπτωση χρησιμοποιείται σε συνδυασμό με το ‘Conflicts’), αναγκάζοντας τη διαγραφή τους. Το πεδίο ‘Replaces’, δηλαδή, χρησιμοποιείται για αυτούς τους δύο ξεχωριστούς σκοπούς.
Περισσότερες πληροφορίες για το αρχείο control ενός πακέτου debian και τα πεδία του υπάρχουν στην εξής ιστοσελίδα: https://www.debian.org/doc/debian-policy/ch-controlfields.html.
Αρχείο copyright
Το αρχείο copyright έχει την παρακάτω μορφή:
Η γενική μορφή που ακολουθεί το αρχείο copyright είναι η εξής: Αποτελείται από δύο μέρη. Στο πρώτο μέρος, αναφέρεται η άδεια για τον κατάλογο upstream του πακέτου debian, δηλαδή η επίσημη άδεια από τον κατασκευαστή του λογισμικού στην οποία αναφέρονται τα πνευματικά δικαιώματα του λογισμικού. Στο δεύτερο μέρος, αναφέρονται τα πνευματικά δικαιώματα του καταλόγου debian, τα οποία ανήκουν σε αυτόν που ευθύνεται για τη διατήρηση του πακέτου debian.
Αρχείο install
Το αρχείο install περιέχει μια λίστα με τους φακέλους και τα αρχεία που πρέπει να αντιγραφούν στο σύστημα κατά την εγκατάσταση του προς πακετοποίηση λογισμικού. Ένα παράδειγμα της μορφής που έχει το αρχείο install είναι:
Στη θέση του 'debian-package-name' θα εισάγεται το όνομα του πακέτου debian.
Μέσω του αρχείου install, τα περιεχόμενα του καταλόγου upstream αντιγράφονται στον κατάλογο /usr/share/debian-package-name, κοκ. Η τέταρτη γραμμή του αρχείου install χρειάζεται μόνο για τα λογισμικά που εκτελούνται με τη βοήθεια του Wine. Έτσι, με αυτή τη γραμμή, το εκτελέσιμο αρχείο (π.χ. debian-package-name, που βρίσκεται στο μονοπάτι /debian/additional/) του λογισμικού τοποθετείται στον κατάλογο /usr/bin/.
Γενικά, στα αρχεία του καταλόγου debian, στα σημεία όπου χρειάζεται να δηλωθεί κάποια διαδρομή, δεν βάζουμε το αρχικό '/' (π.χ. βάζουμε usr/ και όχι /usr/).
Αρχείο rules
Το αρχείο rules είναι το makefile του πακέτου debian, το οποίο ορίζει τις ενέργειες που πρέπει να γίνουν για τη δημιουργία του. Για λόγους απλότητας, χρησιμοποιείται στην πακετοποίηση λογισμικών το παρακάτω γενικό αρχείο rules, το οποίο καλεί όλα τα προγράμματα dh_* με τη σειρά:
![]() | #!/usr/bin/make -f %: |
Κατάλογος additional
Ο κατάλογος additional περιέχει τα εξής αρχεία:
Αρχείο .desktop
Το .desktop αρχείο, όπως αναφέρθηκε και παραπάνω, θα έχει όνομα, το όνομα του πακέτου debian (π.χ. debian-package-name) και την κατάληξη .desktop. Δηλαδή, debian-package-name.desktop. Ένα .desktop αρχείο έχει την εξής μορφή:
Όπου 'debian-package-name', είναι το όνομα του πακέτου debian του λογισμικού.
Σε γενικές γραμμές, το .desktop αρχείο περιέχει οδηγίες για την καταχώρηση (desktop entry) του νέου λογισμικού στο μενού του Gnome.
Στο πεδίο 'Exec' καθορίζεται η εντολή για την εκτέλεση ενός λογισμικού και τα τυχόν ορίσματα, εάν είναι απαραίτητα. Το όρισμα '%f' δηλώνει το αρχείο που επιλέγει ένας χρήστης να ανοίξει με το προς πακετοποίηση λογισμικό, και είναι απαραίτητο για τα λογισμικά που εκτελούνται με τη βοήθεια του Wine.
Τέλος, στο πεδίο 'Categories', στο οποίο δηλώνονται οι κατηγορίες των μενού του Gnome στις οποίες θα εμφανίζεται μέσα το λογισμικό, απαιτείται η τιμή 'Wine-Programs', για την περίπτωση των λογισμικών που εκτελούνται μέσω του Wine.
Αρχείο .png
Το .png αρχείο, όπως αναφέρθηκε και παραπάνω, θα έχει όνομα, το όνομα του πακέτου debian (π.χ. debian-package-name) και την κατάληξη .png. Δηλαδή, debian-package-name.png. Το .png αρχείο δηλώνει το εικονίδιο του λογισμικού που θα φαίνεται στο μενού του Gnome, διαστάσεων 32x32 ή 48x48. Ένας τρόπος να κατασκευαστεί το .png αρχείο, είναι με printscreen από κάποιο σημείο της εκτέλεσης του λογισμικού, και στη συνέχεια με αποκοπή και σμίκρυνση της κατάλληλης περιοχής με το πρόγραμμα Gimp.
Εκτελέσιμο αρχείο
Το εκτελέσιμο αρχείο, όπως αναφέρθηκε και παραπάνω, θα έχει όνομα, το όνομα του πακέτου debian (π.χ. debian-package-name). Πρόκειται για το αρχείο εκτέλεσης του προς πακετοποίηση λογισμικού, το οποίο εγκαθίσταται στον κατάλογο /usr/bin/. Το εκτελέσιμο αρχείο είναι στην ουσία μια δέσμη ενεργειών (wrapper script), για να ξεκινήσει η εκτέλεση του .exe αρχείου του λογισμικού μέσω του Wine, αμέσως μετά την εγκατάσταση του λογισμικού στο Ubuntu. Επομένως, είναι απαραίτητη η ύπαρξή του στον κατάλογο additional.
Το εκτελέσιμο αρχείο για ένα λογισμικό που εκτελείται σε Ubuntu με τη βοήθεια του Wine έχει την εξής μορφή:
Με το παραπάνω εκτελέσιμο αρχείο, μετά την εγκατάσταση του λογισμικού, ένα αρχείο του λογισμικού θα πρέπει να είναι δυνατόν να ανοιχθεί και με τους εξής τρεις τρόπους:<br\> i) Με "διπλό κλικ" πάνω στο αντίστοιχο εικονίδιο του αρχείου αυτού.<br\> ii) Από το τερματικό παράθυρο, με την εντολή "όνομα του πακέτου debian" "όνομα του αρχείου" (χωρίς τα εισαγωγικά) και τρέχων κατάλογος να είναι το μονοπάτι στο οποίο είναι αποθηκευμένο το αρχείο αυτό.<br\> iii) Από το τερματικό παράθυρο, με την εντολή "όνομα του πακέτου debian" "μονοπάτι στο οποίο βρίσκεται αποθηκευμένο στο σύστημα το αρχείο".
Μεταγλώττιση και δοκιμή των πακέτων debian
Η μεταγλώττιση και δοκιμή των πακέτων debian είναι ένας τελικός κύκλος δοκιμών, κατά τις οποίες μεταγλωττίζονται τα πακέτα debian, εγκαθίστανται, δοκιμάζονται, απεγκαθίστανται, εάν εμφανίζονται προβλήματα και επαναλαμβάνεται ξανά απ' την αρχή η ίδια διαδικασία, έως ότου όλα να είναι καλά με το πακέτο debian.
Για όλες τις παρακάτω εντολές, θεωρείται ότι ο τρέχων κατάλογος είναι μέσα στο πακέτο debian, δηλαδή ακριβώς έξω από τους καταλόγους upstream και debian.
Καταρχάς, γίνεται μεταγλώττιση του πακέτου, χρησιμοποιώντας το πρόγραμμα debuild, το οποίο εμπεριέχεται στο πακέτο devscripts:
![]() | debuild -b -tc -uc -us |
Εάν τυχόν αναφερθούν σφάλματα ή προειδοποιήσεις, θα πρέπει να διορθωθούν πριν προχωρήσετε παρακάτω. Για παράδειγμα, οδηγίες για την αντιμετώπιση του σφάλματος
![]() | E: debian-package-name: description-synopsis-is-duplicated |
υπάρχουν στη σελίδα http://lintian.debian.org/tags/description-synopsis-is-duplicated.html.
Το επόμενο βήμα είναι η εγκατάσταση του πακέτου debian:
![]() | sudo dpkg -i ../debian-package-name_1.0_all.deb |
Αφαίρεση του πακέτου debian μπορεί να γίνει με την εντολή:
![]() | sudo apt-get purge debian-package-name_1.0_all |
Όπου 'debian-package-name' είναι το όνομα του πακέτου debian.
Η επιλογή purge χρησιμοποιείται, ώστε να αφαιρεθούν και τυχόν αρχεία ρυθμίσεων του πακέτου, εάν υπάρχουν.