Η μαγευτική μαγεία της διαμόρφωσης, κατασκευής και εγκατάστασης. Εγκατάσταση προγραμμάτων σε Linux (.tar, .gz, .bz, RPM και DEB) Απαιτούμενο λογισμικό

Συχνά τα απαραίτητα πακέτα μπορούν να βρεθούν μόνο σε μορφή πηγής· αυτό το άρθρο περιγράφει μια μέθοδο για την εγκατάσταση ενός πακέτου από τον πηγαίο κώδικα.

Unboxing

Τα προγράμματα συνήθως διανέμονται σε συσκευασμένα αρχεία, αυτά είναι αρχεία με τις επεκτάσεις

.tar.gz (μερικές φορές .tgz) .tar.bz2

Πρέπει να κατανοήσετε τη διαφορά μεταξύ ενός αρχειοθέτη και ενός συσκευαστή.

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

Αυτό το αρχείο θα είναι ελαφρώς μεγαλύτερο σε μέγεθος από το συνολικό μέγεθος των αρχείων που αρχειοθετήθηκαν. Επομένως (ή ίσως για άλλο λόγο) χρησιμοποιούν packers - προγράμματα που σας επιτρέπουν να μειώσετε το μέγεθος του αρχείου χωρίς να χάσετε δεδομένα.

Πρόγραμμα πίσσαμπορεί να αποσυσκευαστεί, οπότε δεν χρειάζεται να τηλεφωνήσετε φερμουάρ, ή μπορείτε απλά να πείτε το πρόγραμμα πίσσαότι το αρχείο πρέπει πρώτα να αποσυμπιεστεί. Για παράδειγμα, η εντολή

tar -xvf< some_app_name>.tar.gz

θα αποσυμπιεστεί και θα αποσυμπιεστεί αμέσως. Διαφορά μεταξύ αρχείων και επεκτάσεων

.tar.gz

.tar.bz2

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

Μετά την αποσυσκευασία, πρέπει να μεταβείτε στον κατάλογο που προκύπτει· όλες οι εντολές που περιγράφονται παρακάτω εκτελούνται στον κατάλογο με τον πηγαίο κώδικα του πακέτου.

CD< имя_пакета>*

Κατασκευή του πακέτου

Για να δημιουργήσετε προγράμματα στο GNU/Linux, χρησιμοποιείτε (κυρίως) το πρόγραμμα φτιαχνω, κανω, το οποίο εκτελεί οδηγίες από Makefile, αλλά επειδή υπάρχουν πολλές διανομές GNU/Linux και είναι όλες διαφορετικές, για να δημιουργήσετε το πρόγραμμα, για κάθε διανομή πρέπει να καθορίσετε ξεχωριστά τις διαδρομές όπου βρίσκονται οι βιβλιοθήκες και τα αρχεία κεφαλίδων. Οι προγραμματιστές δεν μπορούν να μελετήσουν κάθε διανομή και να δημιουργήσουν ξεχωριστά για καθεμία Makefile. Ως εκ τούτου, κατέληξαν σε διαμορφωτές που «μελετούν» το σύστημα και, σύμφωνα με τις γνώσεις που αποκτήθηκαν, δημιουργούν Makefile. Αλλά δεν σταμάτησαν στο configurator και βρήκαν configurators of configurators...εκεί σταμάτησαν

Για την κατασκευή χρειαζόμαστε μεταγλωττιστές: καθορίζονται στις εξαρτήσεις του πακέτου κατασκευή-απαραίτητο, οπότε αρκεί να το εγκαταστήσετε με όλες τις εξαρτήσεις. Ακόμα χρειάζεται autoconfΚαι αυτοκινητοβιομηχανία.

Έτσι, για να δημιουργήσετε κάτι από την πηγή, πρέπει πρώτα να δημιουργήσετε έναν διαμορφωτή. πώς να δημιουργήσετε το πρόγραμμα διαμόρφωσης περιγράφεται στο αρχείο configure.in. Για να δημιουργήσετε τον διαμορφωτή πρέπει να εκτελέσετε

./ bootstrap ./ autogen.sh

Εάν δεν υπάρχουν τέτοια σενάρια στο αρχείο, μπορείτε να εκτελέσετε τις ακόλουθες εντολές με τη σειρά:

aclocal autoheader automake --gnu --add-missing --copy --foreign autoconf -f -Wall

Όλες αυτές οι εντολές χρησιμοποιούν το αρχείο configure.in. Μετά την εκτέλεση αυτών των εντολών, θα δημιουργηθεί ένα αρχείο Διαμορφώστε. Μετά από αυτό, πρέπει να εκτελέσετε το πρόγραμμα διαμόρφωσης για να ελέγξετε την παρουσία όλων των εξαρτήσεων, καθώς και να εγκαταστήσετε πρόσθετες επιλογές κατασκευής (αν είναι δυνατόν) και να προβάλετε το αποτέλεσμα εγκατάστασης (προαιρετικό - ενδέχεται να μην υπάρχει)

./ Διαμορφώστε

Ο διαμορφωτής θα δημιουργήσει ένα Makefile με βάση τις γνώσεις που αποκτήθηκαν και το αρχείο makefile.am. Μπορείτε να μεταβιβάσετε στον διαμορφωτή τις επιλογές που παρέχονται στις πηγές του προγράμματος, οι οποίες σας επιτρέπουν να ενεργοποιήσετε/απενεργοποιήσετε ορισμένες λειτουργίες του προγράμματος· συνήθως μπορείτε να μάθετε για αυτές με την εντολή

./ configure --help

Υπάρχει επίσης ένα σύνολο τυπικών επιλογών, όπως

Πρόθεμα=

Το οποίο καθορίζει ποιος κατάλογος θα χρησιμοποιηθεί για εγκατάσταση. Συνήθως για το Ubuntu

--πρόθεμα =/ usr --πρόθεμα =/ usr/ τοπικό

ΧΩΡΙΣκάθετο στο τέλος! Τώρα μπορείτε να ξεκινήσετε τη διαδικασία κατασκευής του ίδιου του προγράμματος με την εντολή

φτιαχνω, κανω

Τα προνόμια τακτικού χρήστη αρκούν για τη δημιουργία. Το τέλος της κατασκευής μπορεί να θεωρηθεί η στιγμή που οι εντολές στην κονσόλα σταματούν να εκτελούνται «τυχαία» και δεν υπάρχει λέξη λάθος. Τώρα όλα είναι μεταγλωττισμένα και έτοιμα για εγκατάσταση.

Εγκατάσταση

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

Σωστή εγκατάσταση (Επιλογή Αρ. 1)

Εγκατάσταση με χρήση του βοηθητικού προγράμματος check-install. Για εγκατάσταση:

sudo apt-get install checkinstall

Μείον αυτή τη μέθοδο: check-installδεν κατανοεί όλες τις πηγές, καθώς ο συγγραφέας του προγράμματος μπορεί να γράψει ειδικά σενάρια εγκατάστασης και check-installδεν θα τους καταλάβει.

Για να δημιουργήσετε και να εγκαταστήσετε ένα πακέτο deb πρέπει να εκτελέσετε

sudo check-install

Σωστή εγκατάσταση (Επιλογή Νο. 2)

Δημιουργήστε γρήγορα ένα πακέτο deb με μη αυτόματο τρόπο.

Η κύρια διαφορά από την προηγούμενη μέθοδο είναι ότι σε αυτήν την περίπτωση δημιουργείτε το πακέτο χειροκίνητα και παρακολουθείτε όλες τις αλλαγές που κάνετε. Αυτή η μέθοδος θα σας ταιριάζει επίσης εάν οι πηγές δεν υποστηρίζουν τη δημιουργία του πακέτου με check-install.

    Εγκαθιστούμε σε έναν προσωρινό κατάλογο, όπου λαμβάνουμε ολόκληρο το σύνολο των εγκατεστημένων αρχείων:

fakeroot κάνει εγκατάσταση DESTDIR=`pwd`/tempinstall

    Ας δημιουργήσουμε έναν κατάλογο DEBIAN στη "ρίζα του πακέτου" και ας προσθέσουμε μια λίστα με όλα τα αρχεία που πρέπει να μπουν στο /etc στο DEBIAN/conffiles:

cd tempinstall mkdir DEBIAN find etc | sed "s/^/\//" > DEBIAN/ conffiles

    Στη συνέχεια δημιουργούμε ένα αρχείο DEBIAN/control με το ακόλουθο περιεχόμενο:

Πακέτο: package_name Έκδοση: 1.2.3 Αρχιτεκτονική: amd64/i386/armel/all Συντηρητής: Μπορείτε να εισάγετε το όνομά σας, μπορείτε να κάνετε σκουπίδια, αλλά αν το αφήσετε κενό, τότε το dpkg θα ορκιστεί Εξαρτάται: Εδώ μπορείτε να εισάγετε μια λίστα πακέτων χωρίζονται με κόμματα. Προτεραιότητα: προαιρετική Περιγραφή: Πρέπει επίσης να εισάγετε κάτι για να μην υπάρχουν προειδοποιήσεις

    Εάν είναι απαραίτητο, μπορείτε επίσης να δημιουργήσετε σενάρια preinst, postinst, prerm και postrm εκεί.

    Δημιουργούμε ένα πακέτο deb, για το οποίο εκτελούμε:

dpkg -b προσωρινή εγκατάσταση

    Η έξοδος είναι το tempinstall.deb, το οποίο εγκαθιστούμε

sudo dpkg -i tempinstall.deb

Εγκατάσταση (επιλογή Νο. 3)

Λανθασμένη εγκατάσταση

Το μειονέκτημα αυτής της μεθόδου είναι ότι εάν εγκαταστήσετε απευθείας μέσω κάντε εγκατάσταση, τότε πιθανότατα δεν θα μπορείτε να αφαιρέσετε ή να ενημερώσετε το πακέτο κανονικά. Επιπλέον, εγκατάσταση νέα έκδοσηπάνω από το παλιό πιθανότατα θα αντικαταστήσει τις αλλαγές σας στις ρυθμίσεις παραμέτρων. Το make install κάνει ακριβώς αυτό που του λένε να κάνει - εγκαθιστά αρχεία στα σωστά σημεία, αγνοώντας το γεγονός ότι κάτι υπάρχει ήδη. Μετά από αυτή τη διαδικασία, είναι απολύτως αδύνατο να ληφθούν πληροφορίες σχετικά με το τι τοποθετήθηκε πού και σε εύπεπτη μορφή. Μερικές φορές, φυσικά, το Makefile υποστηρίζει την ενέργεια απεγκατάστασης, αλλά αυτό δεν είναι τόσο συνηθισμένο και δεν είναι γεγονός ότι λειτουργεί σωστά. Επιπλέον, θα χρειαστεί να αποθηκεύσετε το μη συσκευασμένο δέντρο προέλευσης και να δημιουργήσετε κανόνες για απεγκατάσταση.

Για να εγκαταστήσετε πρέπει να κάνετε

sudo make install

Για να καταργήσετε ένα πακέτο που έχει εγκατασταθεί χρησιμοποιώντας αυτήν τη μέθοδο, πρέπει να το εκτελέσετε στον ριζικό κατάλογο των πηγών του προγράμματος (όπου εκτελέσατε το make install).

sudo make uninstall

Σφάλματα

Συχνά στο στάδιο της διαμόρφωσης, ο διαμορφωτής αναφέρει ότι λείπει μια συγκεκριμένη βιβλιοθήκη. Το όνομα της βιβλιοθήκης που αναφέρει δεν ταιριάζει πάντα με το όνομα του πακέτου στο Ubuntu. Από τη δική μου εμπειρία, μπορώ να σας συμβουλεύσω να κάνετε αναζήτηση στο Synaptic για το απαιτούμενο πακέτο, εξαιρουμένου του προθέματος lib. Εάν βρείτε πολλά πακέτα που διαφέρουν με το πρόθεμα -dev στο όνομα, τότε πρέπει να εγκαταστήσετε το πακέτο -dev (συνήθως αυτό συνεπάγεται επίσης ένα πακέτο χωρίς προγραμματισμό). Μπορείτε επίσης να κάνετε αναζήτηση χρησιμοποιώντας το http://packages.ubuntu.com/ εισάγοντας το όνομα της βιβλιοθήκης στην αναζήτηση για τα περιεχόμενα του πακέτου, παρομοίως, εάν βρείτε dev και non-dev, χρειάζεστε και τα δύο. Λοιπόν, ή απλώς ψάξτε στο Google.

Απαραίτητη λογισμικό

Τα πακέτα με mm στο τέλος της περιγραφής είναι πακέτα για προγράμματα C++. Λίστα για bmpx, αλλά κατάλληλη για σχεδόν οποιοδήποτε πρόγραμμα GTK2/Gnome. Επομένως, εάν δεν μπορείτε να το συναρμολογήσετε, τότε δείτε αυτήν τη λίστα και συγκρίνετε τη με αυτό που έχετε εγκαταστήσει.

Συντάσσω:Χρόνος εκτέλεσης:
Χlibx11-devlibx11-6
GlibMMlibglibmm-2.4-devlibglibmm-2.4-1c2a
GTK+libgtk2.0-dev,gtk-doc-toolslibgtk2.0-0
GTKMMlibgtkmm-2.4-devlibgtkmm-2,4-1c2a
Ξέφωτοlibglade2-devlibglade2-0
GladeMMlibglademm-2.4-devlibglademm-2.4-1c2a
XMLlibxml2-devlibxml2
XML++libxml++2.6-devlibxml++2.6c2a
DBuslibdbus-1-dev,libdbus-glib-1-devlibdbus-1-2,libdbus-glib-1-2
Alsalibasound2-devlibasound2
HALlibhal-dev,libhal-storage-devlibhal1,libhal-αποθήκευση1
Χαμίνιlibgamin-devlibgamin0
Νέοlibneon25-devlibneon25
TagLiblibtagc0-devlibtagc0
Εκκίνηση-Ειδοποίησηlibstartup-notification0-devlibstartup-notification0
Ωθησηlibboost-dev,libboost-filesystem-devlibboost-filesystem1.33.1
MusicBrainzlibmusicbrainz4-devlibmusicbrainz4c2a
GStreamerlibgstreamer0.10-dev,libgstreamer-plugins-base0.10-devlibgstreamer0.10-0,libgstreamer-plugins-base0.10-0

Υπήρχε η επιθυμία να εξοικειωθώ με την ανάπτυξη για Android. Κατέβασα το Android Studio, το ξεπακετάρωσα και το διέγραψα. Αποφάσισα να ψάξω για άλλες επιλογές εγκατάστασης. Κατά την αναζήτηση, βρήκα το Ubuntu Make (στο παρελθόν γνωστό και ως Ubuntu Developer Tools Center) και σε αυτό το σύντομο σημείωμα θέλω να σας πω γι' αυτό.

Το Ubuntu Developer Tools Center αναβοσβήνει στις ειδήσεις μαζί με το Ubuntu 14.10 (Utopic Unicorn), αλλά, μου φαίνεται, δεν τράβηξε ευρεία προσοχή. Λίγο αργότερα, το έργο μετονομάστηκε σε Ubuntu Make, όπως λέγεται μέχρι σήμερα, έχοντας εξελιχθεί στην έκδοση 0.4. Η ανάπτυξη πραγματοποιείται από τον Didier Roche, Software Engineer, Canonical. Αξιοσημείωτο είναι επίσης το γεγονός ότι το Ubuntu Make είναι γραμμένο σε Python 3.4.

Ο κύριος στόχος του έργου είναι η γρήγορη και εύκολη εγκατάσταση κοινών αναγκών προγραμματιστών στο Ubuntu. Και παρόλο που απέχει ακόμα πολύ από τις «γενικές ανάγκες» (η λίστα με τα διαθέσιμα πακέτα για εγκατάσταση είναι ακόμα μικρή), με το «γρήγορο και απλό» όλα είναι καλά.

Επί αυτή τη στιγμήΧρησιμοποιώντας το Ubuntu Make μπορείτε να εγκαταστήσετε:

  • Android Studio
  • Εκλειψη
  • IntelliJ Idea Community Edition
  • PyCharm Community Edition
  • go-lang Google compiler
  • IDE προγραμματιστής παιχνιδιών Stencyl

Εγκατάσταση

Στο ubuntu 15.04, το ubuntu-make είναι διαθέσιμο εκτός συσκευασίας, οι χρήστες των εκδόσεων 14.04 και 14.10 καλούνται να εγκαταστήσουν από το ppa:

Sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get ενημέρωση sudo apt-get εγκατάσταση ubuntu-make

Χρήση

Η εγκατάσταση με το ubuntu-make είναι απίστευτα απλή. Για Εγκαταστάσεις AndroidΤο στούντιο λειτουργεί απλώς στο τερματικό:

Κάντε android
Λίγη αναμονή και ιδού το αποτέλεσμα:

Το εικονίδιο στην παύλα και το openjdk (αν δεν υπήρχε Java στο σύστημα) περιλαμβάνονται. Μετά την εκκίνηση, το "στούντιο" ανέβασε το sdk και ενημερώθηκε στην έκδοση 1.0.2. Το "Hello world" κυκλοφόρησε στο τηλέφωνο και η δοκιμή λειτουργικότητας ολοκληρώθηκε.

Το Golang εγκαθίσταται παρόμοια:

Για τα PyCharm, Eclipse, Idea, θα προστεθεί ένα ακόμη επιχείρημα:

Umake ide pycharm

Για να αφαιρέσετε ένα πακέτο, απλώς προσθέστε το όρισμα "-r" στην ίδια γραμμή:

Umake ide pycharm -r

Γνώμη

Κάποιος θα πει: «Έχουμε πολλά να κάνουμε. Κατεβάστε το αρχείο, αποσυσκευάστε το, ελέγξτε το εικονίδιο στην παύλα και ελέγξτε το σε Java. Χρειάζεστε ubuntu make; Συμφωνώ, μπορεί να μην υπάρχουν πολλά να κάνω, αλλά βρήκα το πακέτο χρήσιμο για μένα. Μου γλίτωσε χρόνο και ξεφορτώθηκε τη ρουτίνα. Ελπίζω να είναι χρήσιμο και σε εσάς.

Υλικό από το Bryansk Linux Users Group και το www.rm.pp.ru

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

  1. Σημείωση
  2. Εφαρμογή επιθεμάτων
  3. Διαμόρφωση πυρήνα
  4. Μεταγλώττιση του πυρήνα
  5. Εγκατάσταση νέου πυρήνα
  6. Προβλήματα
  7. Συνδέσεις

Σημείωση

Θα περιγραφούν δύο μέθοδοι συναρμολόγησης του πυρήνα. Η πρώτη επιλογή θα περιγραφεί για τη συναρμολόγηση πακέτων .deb που μπορούν να εγκατασταθούν στο δικό σας ή σε άλλο σύστημα. Η δεύτερη μέθοδος είναι ο λεγόμενος «παραδοσιακός» τρόπος.

Μέθοδος ένα. Δημιουργία του πυρήνα σε πακέτα .deb

Εγκατάσταση των απαραίτητων πακέτων για τη μεταγλώττιση του πυρήνα

Αρχικά, ας ενημερώσουμε τις λίστες πακέτων:

# apt-get ενημέρωση

Ας εγκαταστήσουμε τα πακέτα που χρειαζόμαστε:

# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Κατεβάστε τις πηγές του πυρήνα

Μεταβείτε στον κατάλογο /usr/src, μεταβείτε στο www.kernel.org και επιλέξτε την επιθυμητή έκδοση του πυρήνα. Σε αυτήν την περίπτωση, θα ληφθεί υπόψη η έκδοση linux-2.6.23.1.tar.bz2. Κατεβάστε:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

Ας αποσυμπιέσουμε τις πηγές και ας δημιουργήσουμε έναν συμβολικό σύνδεσμο:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (κατάργηση του προηγούμενου συμβολικού συνδέσμου) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Εφαρμογή επιθεμάτων

Μην το κάνετε προαιρετικά ή άσκοπα!

Μερικές φορές απαιτούνται προγράμματα οδήγησης ή εργαλεία που δεν υποστηρίζονται στον υπάρχοντα πυρήνα, για παράδειγμα, τεχνολογία εικονικοποίησης ή άλλες λεπτομέρειες που δεν υπάρχουν στην τρέχουσα έκδοση. Σε κάθε περίπτωση, αυτό μπορεί να διορθωθεί εφαρμόζοντας τα λεγόμενα patches (εάν υπάρχουν).

Λοιπόν, ας υποθέσουμε ότι κατεβάσατε την απαιτούμενη ενημερωμένη έκδοση κώδικα (για παράδειγμα, ας την ονομάσουμε patch.bz2) στο /usr/src. Ας εφαρμόσουμε την ενημερωμένη έκδοση κώδικα που κατεβάσατε στις πηγές μας (Πρέπει να βρίσκεστε ακόμα στον κατάλογο /usr/src/linux):

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | patch -p1

Η πρώτη εντολή είναι μόνο μια δοκιμή και δεν θα εφαρμοστούν αλλαγές στις πηγές. Εάν δεν παρουσιάστηκαν σφάλματα μετά την πρώτη εντολή, μπορείτε να εκτελέσετε τη δεύτερη εντολή για να εφαρμόσετε την ενημερωμένη έκδοση κώδικα. Σε καμία περίπτωση δεν πρέπει να εκτελέσετε τη δεύτερη εντολή εάν δημιουργήθηκαν σφάλματα μετά την πρώτη!

Με αυτόν τον τρόπο μπορείτε να εφαρμόσετε ενημερώσεις κώδικα στις πηγές του πυρήνα. Για παράδειγμα, υπάρχουν ορισμένες δυνατότητες που είναι διαθέσιμες μόνο στον πυρήνα 2.6.23.8 και ο πηγαίος κώδικας δεν περιείχε την απαραίτητη λειτουργικότητα, αλλά κυκλοφόρησε το patch-2.6.23.8.bz2. Μπορείτε να εφαρμόσετε αυτήν την ενημέρωση κώδικα σε πηγές πυρήνα 2.6.23, αλλά όχι στις 2.6.23.1 ή 2.6.23.3 κ.λπ. Μπορείτε να διαβάσετε περισσότερα για αυτό στο:

Προθέματα (prepatches) - ισοδύναμα με εκδόσεις άλφα. Οι ενημερώσεις κώδικα πρέπει να εφαρμόζονται στις πηγές της πλήρους προηγούμενης έκδοσης με 3ψήφια έκδοση (για παράδειγμα, η ενημερωμένη έκδοση κώδικα 2.6.12-rc4 μπορεί να εφαρμοστεί στις πηγές της έκδοσης 2.6.11, αλλά όχι στην έκδοση 2.6.11.10.)

Αυτό σημαίνει ότι, εάν θέλουμε να δημιουργήσουμε τον πυρήνα 2.6.23.8, πρέπει να κατεβάσουμε τις πηγές της έκδοσης 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23 .tar.gz) που εφαρμόζεται με τη δεύτερη μέθοδο «παραδοσιακό» τρόπο!

Εφαρμόστε το patch-2.6.23.8.bz2 στον πυρήνα 2.6.23:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/ src/patch-2.6.23.8.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | patch -p1

Διαμόρφωση πυρήνα

Είναι καλή ιδέα να χρησιμοποιήσετε ένα υπάρχον αρχείο ρυθμίσεωνπυρήνα εργασίας και για τον νέο. Επομένως, αντιγράφουμε την υπάρχουσα διαμόρφωση στο /usr/src/linux:

# make clean && make mrproper # cp /boot/config-`uname -r` ./.config # make menuconfig

μετά την οποία θα φορτωθεί το μενού διαμόρφωσης γραφικού πυρήνα. Επιλέξτε το στοιχείο "Φόρτωση εναλλακτικού αρχείου διαμόρφωσης" στο μενού του διαμορφωτή και κάντε κλικ στο "Ok". Στη συνέχεια (εάν απαιτείται) κάντε τις απαραίτητες αλλαγές στη διαμόρφωση του πυρήνα πλοηγώντας στο μενού (οι λεπτομέρειες διαμόρφωσης πυρήνα βρίσκονται στη διεύθυνση www.google.com). Όταν ολοκληρώσετε και κάνετε κλικ στο "Έξοδος", θα τεθεί η ερώτηση "Θέλετε να αποθηκεύσετε τη νέα σας διαμόρφωση πυρήνα;", απαντήστε καταφατικά "Ναι".

Μεταγλώττιση του πυρήνα

Η κατασκευή του πυρήνα γίνεται με δύο μόνο εντολές:

# make-kpkg clean # fakeroot make-kpkg --initrd --append-to-version=-cybermind kernel_image kernel_headers

Μετά το --append-to-version=, μπορείτε να γράψετε όποιο όνομα θέλετε, αλλά πρέπει να ξεκινά με το σύμβολο μείον (-) και να μην έχει κενά.

Η διαδικασία μεταγλώττισης και δημιουργίας πακέτων .deb μπορεί να διαρκέσει πολύ. Όλα θα εξαρτηθούν από τη διαμόρφωση του πυρήνα και τις δυνατότητες του επεξεργαστή σας.

Επίλυση του προβλήματος με τη δημιουργία του initrd.img

Πρόσφατα, εμφανίστηκε ένα σφάλμα στο Debian στο οποίο, μετά την εγκατάσταση πακέτων με πυρήνες συναρμολογημένους χρησιμοποιώντας τη μέθοδο που περιγράφεται εδώ, δεν δημιουργείται το αντίστοιχο αρχείο /boot/initrd.img. Για να το διορθώσετε για έναν ήδη εγκατεστημένο πυρήνα, θα πρέπει να δημιουργήσετε το initrd.img με μη αυτόματο τρόπο:

ενημέρωση-initramfs -c -k<полная-версия-ядра>

Για να λύσετε το πρόβλημα "για το μέλλον", σχολιάστε, όπως φαίνεται, τη δεύτερη από τις γραμμές που αναφέρονται παρακάτω στο αρχείο /etc/kernel/postinst.d/initramfs-tools:

Το # kernel-package περνά ένα επιπλέον arg. hack για να μην εκτελείται κάτω από το πακέτο πυρήνα #[ -z "$2" ] || έξοδος 0

Εγκατάσταση νέου πυρήνα

Όταν η κατασκευή του πυρήνα ολοκληρωθεί με επιτυχία, θα δημιουργηθούν δύο πακέτα .deb στον κατάλογο /usr/src:

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - ο ίδιος ο πυρήνας και το linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind_2.6.23.1-cybermind3.6.bomers-1. πυρήνες που απαιτούνται για τη δημιουργία άλλων λειτουργικών μονάδων (για παράδειγμα, κατά τη δημιουργία μονάδων Προγράμματα οδήγησης nvidia). Εγκαταστήστε τα:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind_2.6.201-2.6.201.01.

(Αυτά τα πακέτα μπορούν τώρα να εγκατασταθούν σε άλλο σύστημα και δεν θα χρειαστεί να τα δημιουργήσετε ξανά.)

Αυτό είναι όλο, η εγκατάσταση ολοκληρώθηκε, το μενού του bootloader, η εγκατάσταση ενός νέου δίσκου RAM και πυρήνα θα γίνει αυτόματα. Το μόνο που μένει είναι να κάνετε επανεκκίνηση:

# επανεκκίνηση

Μέθοδος δεύτερη. «παραδοσιακό» τρόπο

Πραγματοποιούμε όλα τα σημεία που περιγράφονται παραπάνω ΠΡΙΝ το σημείο «Σύνταξη πυρήνα».

# make all # make modules_install # make install

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

Το κύριο μειονέκτημα αυτής της μεθόδου είναι ότι εάν ενημερώνετε συχνά πυρήνες, μετά από λίγο καιρό θα συσσωρευτεί ένας μεγάλος αριθμός από αυτούς και θα θέλετε να αφαιρέσετε τους αχρησιμοποίητους. Για να γίνει αυτό πιο εύκολο, μπορείτε να συναρμολογήσετε τον πυρήνα και άλλα αρχεία που είναι εγκατεστημένα στο σύστημα χρησιμοποιώντας τις εντολές "make modules_install" και "make install" σε ένα πακέτο deb (ή μάλλον, δύο ξεκινώντας από τον πυρήνα 2.6.27) παρόμοιο με το πρώτη μέθοδο, αλλά θα χρησιμοποιήσουμε Εδώ είναι τα σενάρια του ίδιου του πυρήνα:

# make all # make deb-pkg

Δύο αρχεία .deb θα εμφανιστούν στον κατάλογο ένα επίπεδο πάνω από τον κατάλογο προέλευσης. Συναρμολόγησα τον πυρήνα στον κατάλογο /usr/src/linux-2.6.27.10 και τα αρχεία εμφανίστηκαν στον κατάλογο /usr/src/

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-firmware-image_2.6.27.10-1_all.deb

Ο πυρήνας εγκαθίσταται με την εντολή

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

Οι παλιοί πυρήνες μπορούν να αφαιρεθούν, για παράδειγμα, από το synaptic"a

Επόμενα βήματα

Ο πυρήνας έχει μεταγλωττιστεί και εγκατασταθεί, αλλά τώρα πρέπει να δημιουργήσετε έναν δίσκο RAM (χωρίς τον οποίο ο πυρήνας απλά δεν θα εκκινήσει) και πρέπει να ενημερώσετε τον φορτωτή εκκίνησης GRUB. Για να το κάνετε αυτό, κάντε τα εξής:

# depmod 2.6.23.1 # apt-get install yaird

Εγκαταστήστε το δίσκο RAM:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

Ας ενημερώσουμε τον bootloader εύκολα και ανώδυνα:

# update-grub

Αυτό είναι όλο, ο bootloader και ο νέος πυρήνας είναι έτοιμοι, το μόνο που μένει είναι να γίνει επανεκκίνηση:

# επανεκκίνηση

Προβλήματα

Εάν, μετά την επανεκκίνηση, ο νέος πυρήνας που επιλέξατε δεν φορτωθεί, κάντε επανεκκίνηση και επιλέξτε τον προηγούμενο πυρήνα σας και μπορείτε να προσπαθήσετε να κάνετε ξανά ολόκληρη τη διαδικασία για να δημιουργήσετε έναν πυρήνα που λειτουργεί. Σε αυτήν την περίπτωση, μην ξεχάσετε να διαγράψετε τις γραμμές του πυρήνα που δεν λειτουργεί στο /boot/grub/menu.lst.

Και επίσης πρέπει να εγκατασταθούν άλλα συστήματα πρόσθετα προγράμματα. ΣΕ λειτουργικά συστήματαΣτα Windows όλα είναι πολύ απλά, κατά κανόνα υπάρχει ένα πρόγραμμα εγκατάστασης που ονομάζεται setup.exe που βοηθά στην εγκατάσταση του λογισμικού. Αλλά στο Linux τα πράγματα είναι λίγο διαφορετικά. Πώς να εγκαταστήσετε προγράμματα στο Linux;Τώρα ας δούμε αυτήν την ερώτηση.

Το Linux έχει διάφορους τύπους πακέτων εγκατάστασης και κάθε διανομή έχει τη δική της μορφή πακέτου. Οι διανομές Fedora, Mandriva, Red Hat και Suse χρησιμοποιούν την τυπική εγκατάσταση Linux RPM που αναπτύχθηκε από την Red Hat. Το αρχείο πακέτου RPM συνήθως ονομάζεται program_name-version.rpm.

Μια άλλη πολύ δημοφιλής μορφή είναι το DEB. Χρησιμοποιείται σε Debian, Ubuntu, Knoppix και Mepis. Έχει όνομα program_name-version.deb.

Και πλησιάσαμε τα αρχεία. Συνήθως αυτές είναι επεκτάσεις .tar, .tar.gz, .tgz. Θα πρέπει να αποσυσκευαστούν και στη συνέχεια να εγκατασταθούν/μεταγλωττιστούν.

Πρέπει να εκτελέσετε τη διαδικασία εγκατάστασης του προγράμματος ως υπερχρήστης.

Γρήγορη πλοήγηση

Εγκατάσταση προγραμμάτων σε Debian, Ubuntu

Υπάρχουν πολλά εργαλεία για εργασία με πακέτα DEB, αλλά το πιο συχνά χρησιμοποιούμενο είναι το apt-get, το οποίο περιλαμβάνεται στο τυπικό σύνολο εργαλείων. Για να εγκαταστήσετε την εφαρμογή, πληκτρολογήστε την εντολή:

apt-get install package_name

Για αφαίρεση:

apt-get remove package_name

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

apt-get ενημέρωση

Για να ενημερώσετε παλιά πακέτα (προγράμματα) στον υπολογιστή, πληκτρολογήστε τις ακόλουθες εντολές:

apt-get ενημέρωση ; apt-get αναβάθμιση

Εγκατάσταση προγραμμάτων σε Fedora, Red Hat

Ένα βοηθητικό πρόγραμμα παρόμοιο με το APT είναι το yum. Για να κατεβάσετε και να εγκαταστήσετε το πακέτο από το διαμορφωμένο αποθετήριο, γράψτε την εντολή:

yum install package_name

yum αφαιρέστε package_name

Η τοπική βάση δεδομένων yum δεν έχει αποθηκευτεί, επομένως δεν χρειάζεται ενημέρωση. Για να εγκαταστήσετε ενημερώσεις, χρησιμοποιήστε την εντολή:

yum ενημέρωση

Επιλέξτε κάτι συγκεκριμένο για ενημέρωση:

yum ενημέρωση πακέτου_όνομα

Εγκατάσταση προγραμμάτων στο Mandriva

Το Mandriva έχει το δικό του σύνολο εργαλείων για εργασία με πακέτα, που ονομάζονται urpmi. Για εγκατάσταση:

urpmi πακέτο_όνομα

Να διαγράψω:

urpme package_name

Ενημερώστε την τοπική βάση δεδομένων με τη λίστα των πακέτων:

urpmi. ενημέρωση -α

Για να εγκαταστήσετε ενημερώσεις:

urpmi --αυτόματη επιλογή

Εγκατάσταση προγραμμάτων από αρχεία (tarballs)

Για αρχεία που συμπιέζονται με χρήση GZIP (gz, gz2, κ.λπ.) κάνουμε το εξής:

tar -xvz f όνομα αρχείου

Για αρχεία που συμπιέζονται με χρήση BZIP (bz, bz2, κ.λπ.) είναι λίγο διαφορετικό:

Όνομα αρχείου tar -xvjf

Εντολές πίσσας:

  • x – εξαγωγή αρχείων από το αρχείο.
  • v – λεπτομερής εμφάνιση πληροφοριών στην οθόνη.
  • f – Απαιτούμενη επιλογή. Εάν δεν έχει καθοριστεί, το Tar θα προσπαθήσει να χρησιμοποιήσει ταινία αντί για αρχείο.
  • z – αρχείο διαδικασίας συμπιεσμένο με χρήση gzip.
  • j – επεξεργαστείτε ένα αρχείο συμπιεσμένο χρησιμοποιώντας bzip.

Μετά την εκτέλεση της εντολής, θα δημιουργηθεί ένας φάκελος με όνομα παρόμοιο με το όνομα του πακέτου. Στη συνέχεια, πρέπει να ανοίξετε αυτόν τον δημιουργημένο φάκελο με την εντολή:

cd folder_name

Στη συνέχεια, στο μη συσκευασμένο αρχείο, διαβάστε τις οδηγίες στο αρχείο README, εάν υπάρχουν. Σε κάθε περίπτωση, εάν το πρόγραμμα έχει μεταγλωττιστεί ως εκτελέσιμο αρχείο, τότε το πακέτο θα περιέχει ένα αρχείο .sh, που συνήθως ονομάζεται install.sh

Η ουσία είναι ότι αυτή η εντολή με τη μορφή "make install" ή "sudo make install" δεν μπορεί να χρησιμοποιηθεί σε σύγχρονες διανομές.

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

Λυρική παρέκβαση

Όπως γνωρίζετε, για κανονική λειτουργία, το μεγαλύτερο μέρος του λογισμικού πρέπει όχι μόνο να μεταγλωττιστεί, αλλά και να εγκατασταθεί σωστά στο σύστημα. Τα προγράμματα αναμένουν να βρουν τα αρχεία που χρειάζονται σε ορισμένα σημεία και αυτές οι θέσεις στα περισσότερα συστήματα *nix κωδικοποιούνται σκληρά στον κώδικα κατά τη στιγμή της μεταγλώττισης. Εκτός από αυτήν την πτυχή, η κύρια διαφορά μεταξύ της διαδικασίας εγκατάστασης σε linux/freebsd/whatever και εκείνης στα Windows και MacOS είναι ότι το πρόγραμμα δεν τοποθετεί απλώς μια δέσμη αρχείων σε έναν ξεχωριστό κατάλογο σε Program Files ή /Applications, αλλά " εξαπλώνεται» σε όλη την έκταση σύστημα αρχείων. Οι βιβλιοθήκες πηγαίνουν στο lib, εκτελέσιμα αρχείαστο bin, διαμορφώσεις σε κ.λπ., διάφορα είδη δεδομένων σε var και ούτω καθεξής. Εάν ξαφνικά χρειαστεί να το ενημερώσετε, τότε όλα αυτά πρέπει πρώτα να καθαριστούν με κάποιο τρόπο, γιατί... όταν χρησιμοποιείτε μια νέα έκδοση, τα αρχεία που έχουν απομείνει από την παλιά μπορεί να οδηγήσουν σε εντελώς απρόβλεπτες συνέπειες, συχνά δεν είναι καλό. Η πιθανότητα αυτού του συμβάντος δεν είναι τόσο υψηλή, αλλά το χρειάζεστε σε διακομιστή παραγωγής;

Και λοιπόν?

Επομένως, εάν κάνατε την εγκατάσταση απευθείας μέσω της εγκατάστασης, τότε είναι φυσιολογικό να αφαιρέσετε ή να ενημερώσετε το λογισμικό, πιθανότατα δεν μπορείς. Επιπλέον, η εγκατάσταση μιας νέας έκδοσης πάνω από την παλιά είναι πολύ πιθανό θα αντικαταστήσει τις αλλαγές σας στις ρυθμίσεις παραμέτρων. Το make install κάνει ακριβώς αυτό που του λένε να κάνει - εγκαθιστά αρχεία στα σωστά σημεία, αγνοώντας το γεγονός ότι κάτι υπάρχει ήδη. Μετά από αυτή τη διαδικασία, είναι απολύτως αδύνατο να ληφθούν πληροφορίες σχετικά με το τι τοποθετήθηκε πού και σε εύπεπτη μορφή. Μερικές φορές, φυσικά, το Makefile υποστηρίζει την ενέργεια απεγκατάστασης, αλλά αυτό δεν είναι τόσο συνηθισμένο και δεν είναι γεγονός ότι λειτουργεί σωστά. Επιπλέον, η αποθήκευση του μη συσκευασμένου δέντρου προέλευσης και των κανόνων κατασκευής για απεγκατάσταση είναι κάπως περίεργη.

Πώς να πολεμήσετε;

Δεδομένου ότι τα πακέτα στις διανομές τείνουν να ενημερώνονται μερικές φορές, για να λύσουν αυτό το πρόβλημα, βρήκαν κάτι όπως διαχειριστής πακέτων. Όταν το χρησιμοποιείτε, η εγκατάσταση γίνεται κάπως έτσι:
  1. λαμβάνεται ένα αρχείο που σχηματίζεται με συγκεκριμένο τρόπο
  2. εξάγονται πληροφορίες από αυτό σχετικά με το τι είναι, ποια έκδοση είναι, από τι εξαρτάται, με τι έρχεται σε αντίθεση, εάν είναι απαραίτητο να εκτελεστούν κάποια σενάρια για εγκατάσταση/απεγκατάσταση/διαμόρφωση κ.λπ.
  3. Βήματα άμεσης εγκατάστασης σε εξέλιξη
  4. Όλα τα δεδομένα σχετικά με το πού και τι παραδόθηκε προστίθενται στη βάση δεδομένων διαχείρισης πακέτων.

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

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

Τι να κάνω?

Μπορείτε, φυσικά, να διαμορφώσετε το δέντρο προέλευσης έτσι ώστε όλα να είναι εγκατεστημένα κάπου στο /opt/mycoolapp/ και, στη συνέχεια, εάν είναι απαραίτητο, να το διαγράψετε χειροκίνητα, αλλά πολλά δυσάρεστα πράγματα μπορεί να εμφανιστούν εδώ, ξεκινώντας από το γεγονός ότι Το πρόγραμμα αναμένει ότι μπορεί να φορτώσει τις βιβλιοθήκες σας και ο φορτωτής δεν γνωρίζει τίποτα για τον κατάλογο στον οποίο βρίσκονται, τελειώνοντας με το γεγονός ότι ο συγγραφέας του προγράμματος μπορεί να περιμένει ότι, για παράδειγμα, αν βάλει ένα αρχείο, ας πούμε, σε $prefix/share /xsessions/, τότε ο διαχειριστής οθόνης θα το πάρει. Για να μην αναφέρουμε τις διαδρομές για pkgconfig και ούτω καθεξής.

Πρέπει λοιπόν να συλλέξετε το πακέτο.

Δεν έχω χρόνο να το γαμήσω, καλύτερα να κάνω την εγκατάσταση ξανά, όλα είναι απλά και ξεκάθαρα!

Ηρέμησε, ηρέμησε. Είναι δεμένος στα πόδια μας. Όλα δεν είναι τόσο τρομακτικά και περίπλοκα όσο φαίνονται με την πρώτη ματιά.
check-install
Αυτό το υπέροχο βοηθητικό πρόγραμμα, όταν εκκινηθεί αντί να κάνει εγκατάσταση, θα κάνει πολλές ερωτήσεις, μετά τις οποίες θα δημιουργήσει και θα εγκαταστήσει το πακέτο. Αυτό είναι όλο, κατά την ενημέρωση δεν θα έχετε κανένα πρόβλημα με τον καθαρισμό των παλιών σκουπιδιών.
Δημιουργία του πακέτου deb με μη αυτόματο τρόπο
Εάν δεν έχετε την τάση να εμπιστεύεστε τέτοιους αυτοματισμούς (που μερικές φορές ακόμα δυσκολεύει) ή θέλετε να κάνετε μερικές αλλαγές, αλλά εξακολουθείτε να είστε πολύ τεμπέλης για να αντιμετωπίσετε την κανονική διαδικασία κατασκευής πακέτων, τότε μπορείτε να συναρμολογήσετε το πακέτο χειροκίνητα. Δίνω έναν τρόπο να το χτίσω για συστήματα Βάση δεδομένων Debian, γιατί τους γνωρίζω καλύτερα. Δεν είναι ιδεολογικά σωστό, αλλά η έξοδος είναι ένα εντελώς σωστό πακέτο χωρίς τη χρήση πρόσθετων οντοτήτων. Αυτό γίνεται ως εξής.
Αρχικά, συναρμολογούμε το λογισμικό με τις παραμέτρους --prefix=/usr και --exec-prefix=/usr προκαθορισμένες για configure ή autogen.sh.
Στη συνέχεια, το εγκαθιστούμε σε έναν προσωρινό κατάλογο. Γράφουμε:

Fakeroot κάνει εγκατάσταση DESTDIR=`pwd`/tempinstall
Μετά από αυτό, λαμβάνουμε ολόκληρο το σύνολο των αρχείων στον πρόσφατα δημιουργημένο κατάλογο. Παρεμπιπτόντως, τώρα βρισκόμαστε σε ένα περιβάλλον fakeroot, δηλαδή μπορείτε να αλλάξετε τον κάτοχο και τα δικαιώματα πρόσβασης των αρχείων χωρίς περιορισμούς, αλλά φυσικά θα παραμείνετε ο κάτοχος του συστήματος. Το λογισμικό εντός της συνεδρίας fakeroot θα λάβει αλλαγμένες πληροφορίες, οι οποίες θα επιτρέψουν την αρχειοθέτηση αρχείων με τα σωστά δικαιώματα.
Στη συνέχεια, δημιουργήστε έναν κατάλογο DEBIAN στη "ρίζα του πακέτου" και προσθέστε μια λίστα με όλα τα αρχεία που πρέπει να μπουν στο /etc στο DEBIAN/conffiles:

Cd tempinstall mkdir DEBIAN find etc | sed "s/^/\//" > DEBIAN/conffiles
Στη συνέχεια δημιουργούμε ένα αρχείο DEBIAN/control με το ακόλουθο περιεχόμενο:

Εάν είναι απαραίτητο, μπορείτε επίσης να δημιουργήσετε σενάρια preinst, postinst, prerm και postrm εκεί.

Αυτό ήταν όλο, κάνουμε dpkg -b tempinstall και η έξοδος είναι tempinstall.deb, το οποίο μπορείτε να χρησιμοποιήσετε το dpkg -i για να εγκαταστήσετε, να ενημερώσετε ή να αφαιρέσετε σωστά.

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

συμπέρασμα

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