Αρχάρια ερώτηση σχετικά με την εγκατάσταση προγραμμάτων

...browsers, email, downloads, torrents, κλπ (όχι προβλήματα καρτών εδώ)

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

Re: Αρχάρια ερώτηση σχετικά με την εγκατάσταση προγραμμάτων

Δημοσίευσηαπό apóstolos » 29 Απρ 2014, 01:00

Αυτό που κατέβασες [Firefox Nightly] περιέχει (μεταξύ άλλων) ένα εκτελέσιμο αρχείο με όνομα firefox-bin. Αυτό είναι κάτι σαν αρχείο .exe. Αφού αποσυμπιέσεις το αρχείο (δεξί κλικ κτλ) μπορείς να εκτελέσεις το firefox-bin με διπλό κλικ ή δεξί κλικ και εκτέλεση και το πρόγραμμα θα ανοίξει κανονικά. Αφού ανοίξει μπορείς να κάνεις δεξί κλικ πάνω στο εικονίδιο στον εκκινητή (αριστερά) και να επιλέξεις "διατήρηση στον εκκινητή". Αυτό δεν είναι το ιδανικό αλλά αρκεί για να μπορείς να εκτελείς εύκολα το συγκεκριμένο.
1 Γνώσεις Linux: OK
3 Intel Celeron CPU G1820 @ 2.70GHz ‖ RAM 7676 MiB ‖ MSI H81M-E33
4 Intel Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics [8086:0402] {i915}
apóstolos
Ubuntistas
Ubuntistas
 
Δημοσιεύσεις: 124
Εγγραφή: 22 Αύγ 2013, 14:55
Εκτύπωση

Re: Αρχάρια ερώτηση σχετικά με την εγκατάσταση προγραμμάτων

Δημοσίευσηαπό Ilias95 » 29 Απρ 2014, 01:45

@Arathom
Ας τα πάρουμε απ' την αρχή. Δεν έχω δει τα προηγούμενα μηνύματα, απαντώ μόνο στο τελευταίο. Υπάρχουν μικρές ανακρίβειες στα παρακάτω αλλά γίνεται χάριν συντομίας και για να το καταλάβεις πιο εύκολα.

Ας πούμε ότι εγώ είμαι ένας developer και αναπτύσσω το super-duper project γραμμένο σε C. Αυτό που κάνω εγώ είναι να δημιουργώ τα source files (τον κώδικα C). Επειδή η C είναι μια compiled γλώσσα τα προγράμματα γραμμένα σε C θέλουν compile για να μπορούν να εκτελεστούν[ΥΓ3]. Αυτό που δίνω στον end-user είναι ένα tar.gz (δεν έχει σημασία η συμπίεση, το tar.gz συνηθίζεται) που περιέχει όλα τα sources. Οπότε για να τρέξει ο χρήστης το πρόγραμμα μου θα αποσυμπιέσει το πρόγραμμα μου και θα διαβάσει στο README πως να το κάνει εγκατάσταση (λογικά θα παρέχω ένα Makefile για να κάνω την διαδικασία πιο εύκολη). Ο τρόπος εγκατάστασης (μεταγλώττισης βασικά) όμως δεν είναι πάντα στάνταρ.

Μπορώ λοιπόν να τρέχω έτσι όσα λογισμικά θέλω. Που είναι το πρόβλημα; Κανείς δεν ελέγχει στο λειτουργικό μου τι software μπαίνει και τι software βγαίνει, κανείς δεν φροντίζει για τις εξαρτήσεις των προγραμμάτων μου κλπ. Επίσης σε κάθε software θα πρέπει να διαβάζω τις οδηγίες του developer για το πως να το μεταγλωττίσω. Την λύση έρχονται να δώσουν λοιπόν τα package management systems και οι package managers.

Πάει τώρα ο Γιάννης που είναι packager παίρνει το tar.gz μου, κάνει αυτός το compile στο μηχάνημα του και μου παρέχει ένα .deb αρχείο το οποίο ουσιαστικά περιέχει binaries. Τώρα αυτό το deb μπορώ να το δώσω στον apt (ο package manager του ubuntu) και αναλαμβάνει να κάνει αυτός την εγκατάσταση στο σύστημα μου αυτόματα. Στην πραγματικότητα δεν θα το δώσω στον apt αλλά κατευθείαν στο dpkg αλλά να μην σε μπερδέψω για την ώρα.

Τι κέρδισα απ' τα παραπάνω; 1. Δεν ασχολήθηκα καθόλου με το να διαβάσω το README και να ακολουθήσω περίεργες διαδικασίες. 2. Δεν χρειάστηκε να χάσω χρόνο στη μεταγλώττιση, πήρα κατευθείαν binaries. 3. Ο apt ξέρει ανά πάσα στιγμή τι software υπάρχουν εγκατεστημένα στο σύστημα μου και ποιες εκδόσεις αυτών. 4.... (η λίστα είναι πολύ μεγάλη πίστεψε με ;) πχ. αυτόματη επίλυση εξαρτήσεων των προγραμμάτων). Να 'ναι καλά ο Γιάννης!

Εκτός των άλλων ο Γιάννης είναι και πολύ καλό παιδί και πολύ αξιόπιστο άτομο και ξέρω ότι τα deb που φτιάχνει δεν περιέχουν μέσα κακόβουλο λογισμικό που μπορεί να προκαλέσει ζημιά στο σύστημα μου. Έτσι φτιάχνει η canonical ένα online ppa (αποθετήριο) το οποίο περιέχει πολλά πακέτα φτιαγμένα απ' τον Γιάννη και άλλα αξιόπιστα άτομα και έτσι αν πω στον apt να συμπεριλάβει αυτό το ppa στις πηγές του έχω πρόσβαση σε όλα αυτά τα πακέτα. Τα official ppas της Canonical περιέχονται by default στη λίστα με τις πηγές μου. Από κει και πέρα ένα ppa μπορεί να φτιάξει ο οποιοσδήποτε και είναι στην κρίση σου αν θα τον εμπιστευτείς (δεν είναι όλοι καλά παιδιά σαν τον Γιάννη) ώστε να προσθέσεις το ppa στα sources σου. Όταν ένα πρόγραμμα αποκτά κάποια δημοτικότητα τότε η Canonical φροντίζει να φτιάξει ένα πακέτο το οποίο περιέχεται στα official (trusted) ppas της.

Το software center και το synaptic δεν είναι τίποτα άλλο από γραφικά front-ends για τον apt. Σου εμφανίζουν όλα τα πακέτα που υπάρχουν στη λίστα με τα sources σου (official και μη). Μετά σκέψου ότι όταν επιλέξεις ένα πρόγραμμα στο soft center και πατήσεις install από κάτω θα εκτελεστεί η εντολή 'apt-get install packagename'. Με τη σειρά του ο apt αναλαμβάνει να κατεβάσει το deb και το δίνει στον dpkg για εγκατάσταση. Αυτά τα προγράμματα παρέχονται για διευκόλυνση των χρηστών που δεν θέλουν να μπλέκουν με command line.

Το packaging management model του Ubuntu όμως δεν είναι το μοναδικό που υπάρχει. Η Fedora πχ. χρησιμοποιεί rpm πακέτα και έχει σαν package manager τον yum, ενώ το Arch χρησιμοποιεί tar.gz πακέτα και έχει σαν package manager τον pacman.

Άρα τελικά ο developer παρέχει ένα .tar.gz πακέτο και έπειτα οι packagers της κάθε διανομής το παίρνουν αυτό και δημιουργούν πακέτα για την εκάστοτε διανομή. Όταν εγκαθιστώ ένα πρόγραμμα όχι μέσω του package manager μου αλλά κατευθείαν απ' τον πηγαίο κώδικα λέμε ότι κάνω install from source. Δεν προτείνεται γενικά παρά μόνο στις περιπτώσεις που δεν έχει πακεταριστεί ένα πρόγραμμα ή θέλω συγκεκριμένη έκδοση του προγράμματος.

Arathorn έγραψε:χρειάζονται μια "μεταγλώττιση" το λεγόμενο compile ή mount

Το mount είναι τελείως άλλο πράγμα απ' την μεταγλώττιση/compile και εντελώς άσχετο με την εγκατάσταση προγραμμάτων.
έγραψε:αυτά του είδους τα αρχεία (tar.gz) μπορούν να γίνουν convert σε .deb.

Δεν υφίσταται τέτοιο πράγμα. Για να δημιουργήσεις ένα .deb πρέπει να ακολουθήσεις τις συγκεκριμένες οδηγίες για τη δημιουργία deb.
Arathorn έγραψε: Άν και η εγκατάσταση "ολοκληρώθηκε", εν τούτοις δεν υπήρχε firefox στο σύστημά μου!

Προφανώς γιατί δεν ξέρουμε τι ήταν αυτό το και καλά "deb" που έφτιαξες.
Arathorn έγραψε:τα αρχεία με κατάληξη .tar.gz [2] απ' ότι κατάλαβα, χρειάζονται μια "μεταγλώττιση"

Όχι απαραίτητα. Πχ. ένα πρόγραμμα σε python δεν θέλει μεταγλώττιση αφού η python δεν είναι compiled γλώσσα αλλά interpreted. Έτσι μπορείς να τρέξεις κατευθείαν το πρόγραμμα from source. Και πάλι όμως χρησιμοποιείς τον package manager σου για όλους τους λόγους που είπαμε παραπάνω.

ΥΓ1.
Τώρα είδα το alien που λες. :?
Δεν ήξερα ότι έχει επιχειρηθεί τέτοιο πράγμα. Δεν θα το πρότεινα για κανένα λόγο όμως. Αν δεις την μορφή ενός deb και ενός rpm θα καταλάβεις γιατί.

ΥΓ2.
Ρίξε μια ματιά αν θες και σ' αυτό για να καταλάβεις τι είναι apt και τι είναι dpkg: viewtopic.php?f=41&t=28916#p306484

ΥΓ3.
Έτσι όπως το έγραψες δεν είμαι σίγουρος αν κατάλαβες και τι ακριβώς είναι η μεταγλώττιση γι' αυτό το αναφέρω κι αυτό στα γρήγορα.
Ένα πρόγραμμα σε C (πχ.) δεν είναι τίποτα άλλο παρά ένα text file που περιέχει μέσα κώδικα C. Τα text files ως γνωστόν δεν εκτελούνται. Ο compiler είναι ένα πρόγραμμα το οποίο διαβάζει το text file με τον κώδικα C και δημιουργεί ένα εκτελέσιμο, δηλαδή ένα αρχείο το οποίο ο υπολογιστής καταλαβαίνει (γλώσσα μηχανής) και μπορεί να εκτελέσει. Τα εκτελέσιμα στα Windows έχουν κατάληξη exe. Στο linux δεν έχουν κάποια κατάληξη. Μπορείς να βρεις τα εκτελέσιμα από σχεδόν όλα τα προγράμματα σου στον κατάλογο /usr/bin.

ΥΓ4.
Για να καταλάβεις λίγα περισσότερα για τα deb, δεν περιέχουν μόνο τα binaries του προγράμματος, αλλά και άλλες meta-πληροφορίες όπως την έκδοση, τις dependencies και τις opt-dependencies του προγράμματος, αν κάνει conflict με κάποιο άλλο πακέτο και πολλά άλλα.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Αρχάρια ερώτηση σχετικά με την εγκατάσταση προγραμμάτων

Δημοσίευσηαπό dim459 » 29 Απρ 2014, 13:04

@ Arathorn
Είναι θετική η επιθυμία σου να μάθεις πράγματα, από την άλλη νομίζω ότι πας ολίγον τι ανάποδα.
Το να κάνεις compile μια εφαρμογή από τον κώδικα δεν είναι το πρώτο πράγμα που πρέπει να ξέρει ο αρχάριος (στις μέρες μας τουλάχιστον) ούτε και η checkinstall.
Aπό την άλλη είναι μονόδρομος στην (σπάνια πλέον) περίπτωση που μια εφαρμογή που θες δεν υπάρχει ούτε στα repos, αλλά ούτε και σε έτοιμο .deb.
Τέλος πάντων, αφού διάβασα ότι υπάρχει η checkinstall, κάνω την υπόθεση ότι υπάρχει εγκατεστημένο και το πακέτο build-eesential, γιατί χωρίς αυτό δεν μπορείς να κάνεις δουλειά.
Αν λοιπόν μιλάμε για μια απλή εφαρμογή και έχοντας διαβάσει το read me, μάλλον με λίγη προσπάθεια θα εγκαταστήσεις μια εφαρμογή από tarball.
Aν όμως μιλάμε για κάτι πολύπλοκο, τότε θα βρεθείς μπροστά στο πρόβλημα των εξαρτήσεων που σου εξέθεσε ο mad, το οποίο κάποιες φορές μπορεί να είναι κυκεώνας.
Προσπάθησε λοιπόν αρχικά να χρησιμοποιείς έτοιμες εφαρμογές των repos ή έστω έτοιμα .deb και πριν μπεις σε άλλες διαδικασίες κάνε ένα ερώτημα μήπως και έχουμε κάποια εναλλακτική πρόταση.
Στα 8-9 χρόνια που χρησιμοποιώ linux δε νομίζω ότι χρειάστηκε να εγκαταστήσω κάτι από κώδικα πάνω από 5-6 φορές και οι 3-4 εξ αυτών ήταν drivers για ασύρματα τσιπάκια, σε κάποιες πιο δύσκολες εποχές.
Γνώσεις ⇛ Linux: Αν μου δώσεις οδηγίες σε τερματικό δεν τρομάζω ┃ Προγραμματισμός: Καθόλου┃ Αγγλικά: Εξαιρετικά
Λειτουργικό : Kubuntu 24.04 64bit.
Συσκευές-> Πάρα πολλές, θα στο γράψω ανά περίπτωση.
Άβαταρ μέλους
dim459
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 3781
Εγγραφή: 15 Φεβ 2009, 19:28
Τοποθεσία: Bόρεια Αττική
Εκτύπωση

Re: Αρχάρια ερώτηση σχετικά με την εγκατάσταση προγραμμάτων

Δημοσίευσηαπό Arathorn » 05 Μάιος 2014, 01:14

Ilias95 έγραψε:
Το mount είναι τελείως άλλο πράγμα απ' την μεταγλώττιση/compile και εντελώς άσχετο με την εγκατάσταση προγραμμάτων.


Να σου πω την αλήθεια, δεν ήθελα να γράψω mount, αλλά build! :P Δεν ξέρω βέβαια αν αυτό έχει καμία σχέση, πάντως αυτό ήθελα να γράψω :P

Ilias95 έγραψε:
Τώρα είδα το alien που λες. :?
Δεν ήξερα ότι έχει επιχειρηθεί τέτοιο πράγμα. Δεν θα το πρότεινα για κανένα λόγο όμως.


Συγκεκριμένα ιδού το βίντεο απο το οποίο ακολούθησα τις οδηγίες.



Ilias95 έγραψε:
Έτσι όπως το έγραψες δεν είμαι σίγουρος αν κατάλαβες και τι ακριβώς είναι η μεταγλώττιση γι' αυτό το αναφέρω κι αυτό στα γρήγορα.

Γενικά αν και το κείμενό σου ήταν αναλυτικά γραμμένο, όπως βλέπεις είμαι τελείως νέος στο άθλημα· ειδικά απο προγραμματισμό είμαι ντιπ για ντιπ (διαβάζω το φόρουμ για να μάθω python). Οπότε διάφορες ορολογίες που για εσάς δείχνουν αυτονόητες, στην περίπτωσή μου απαιτείται λίγο ψάξιμο παραπάνω. Σ' ευχαριστώ πολύ όμως!



dim459 έγραψε:@ Arathorn
Είναι θετική η επιθυμία σου να μάθεις πράγματα, από την άλλη νομίζω ότι πας ολίγον τι ανάποδα.
Το να κάνεις compile μια εφαρμογή από τον κώδικα δεν είναι το πρώτο πράγμα που πρέπει να ξέρει ο αρχάριος (στις μέρες μας τουλάχιστον) ούτε και η checkinstall.

Το έκανα γιατί "χρειάστηκε" να το κάνω (βλ πρόγραμμα μtorrent, firefox nightly). Kαι φυσικά δεν στο κρύβω και ολίγον τι ενθουσιασμός.

Πάντως για να σου πω την αλήθεια, καλά καλά ούτε έχω καταλάβει τι καει η checkinstall, ούτε το synaptic. Ακολουθώ όμως (στον βαθμό που μπορώ) τις οδηγίες σας και δεδομένου ότι σας εμπιστεύομαι, εγκαθιστώ τα προγράμματα που προτείνετε. :)
Άβαταρ μέλους
Arathorn
babeTUX
babeTUX
 
Δημοσιεύσεις: 147
Εγγραφή: 24 Μαρ 2014, 20:33
Εκτύπωση

Re: Αρχάρια ερώτηση σχετικά με την εγκατάσταση προγραμμάτων

Δημοσίευσηαπό dim459 » 05 Μάιος 2014, 22:41

Arathorn έγραψε:Πάντως για να σου πω την αλήθεια, καλά καλά ούτε έχω καταλάβει τι καει η checkinstall

http://asic-linux.com.mx/~izto/checkinstall/
Ας πούμε χοντρικά ότι από τον πηγαίο κώδικα, φτιάχνει ένα πακέτο που είναι σε θέση να διαχειριστεί ο package manager της διανομής, ώστε να γνωρίζει τι έχει εγκατασταθεί και πως να το απεγκαταστήσει.
Arathorn έγραψε:ούτε το synaptic

Είναι μια εφαρμογή με γραφικό περιβάλλον του διαχειριστή πακέτων της διανομής, όπως ας πούμε το software center, με αρκετά παλιομοδίτικο περιβάλλον, αλλά σαφώς περισσότερες δυνατότητες και έλεγχο της διαδικασίας, κατ' εμέ η πληρέστερη προσέγγιση που μπορεί να έχει κάποιος αν επιλέξει gui και όχι τερματικό.
Τελευταία επεξεργασία από dim459 και 07 Μάιος 2014, 22:30, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις ⇛ Linux: Αν μου δώσεις οδηγίες σε τερματικό δεν τρομάζω ┃ Προγραμματισμός: Καθόλου┃ Αγγλικά: Εξαιρετικά
Λειτουργικό : Kubuntu 24.04 64bit.
Συσκευές-> Πάρα πολλές, θα στο γράψω ανά περίπτωση.
Άβαταρ μέλους
dim459
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 3781
Εγγραφή: 15 Φεβ 2009, 19:28
Τοποθεσία: Bόρεια Αττική
Εκτύπωση

Re: Αρχάρια ερώτηση σχετικά με την εγκατάσταση προγραμμάτων

Δημοσίευσηαπό Arathorn » 07 Μάιος 2014, 19:02

dim σε ευχαριστώ για τις απαντήσεις και το site πολύ καλό!
Άβαταρ μέλους
Arathorn
babeTUX
babeTUX
 
Δημοσιεύσεις: 147
Εγγραφή: 24 Μαρ 2014, 20:33
Εκτύπωση

Προηγούμενη

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

Επιστροφή στο Εφαρμογές για Internet