tag:blogger.com,1999:blog-72232342054439380632024-03-17T23:39:41.465+02:00iBlog Efstathios IosifidisEfstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.comBlogger277125tag:blogger.com,1999:blog-7223234205443938063.post-52639172286403500992024-02-19T13:49:00.005+02:002024-02-19T15:17:10.027+02:00Γιατί οι προγραμματιστές δεν γράφουν τεκμηρίωση;<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR4vIJWgjgfXI1mfnVDs4lhsBqbjI_shc9nG5oiHVtw02UvvhrFDFFlrfwYw3By4fIaSU9MLcU7qxqEno05SP9qjgOn9mKCEMzBUxJu12mhTzkjcxUfOnfvSd7pl5EW_0_KLpHDOogoKIN3xW_Uv8t0J4zdYKG4ZkET5D1RynDUavzSU-r2lQVONlKoZh8/s1200/Programmers-Hate-Writing-Documentation.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Γιατί οι προγραμματιστές δεν γράφουν τεκμηρίωση" border="0" width="400" data-original-height="675" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR4vIJWgjgfXI1mfnVDs4lhsBqbjI_shc9nG5oiHVtw02UvvhrFDFFlrfwYw3By4fIaSU9MLcU7qxqEno05SP9qjgOn9mKCEMzBUxJu12mhTzkjcxUfOnfvSd7pl5EW_0_KLpHDOogoKIN3xW_Uv8t0J4zdYKG4ZkET5D1RynDUavzSU-r2lQVONlKoZh8/s400/Programmers-Hate-Writing-Documentation.png"/></a></div>
Όσοι με γνωρίζουν, επιμένω συνέχεια στους προγραμματιστές να γράψουν σχόλια στον κώδικά τους αλλά και να γράφουν τεκμηρίωση γενικότερα.<br>
Πιστεύω ότι υπάρχουν δύο κύριοι λόγοι που οι προγραμματιστές δεν γράφουν τεκμηρίωση. Τα εργαλεία παίζουν το ρόλο τους, αλλά είναι άλλοι λόγοι.
<br><br>
<h2>Το γράψιμο είναι δύσκολο</h2>
Οι "μηχανικοί λογισμικού" δεν γράφουν γιατί η <b>σαφής</b> γραφή είναι πολύ, ΠΟΛΥ δύσκολη.
<br><br>
Η συγγραφή είναι ένα δύσκολο, απαιτητικό έργο. Απαιτεί να οργανώνουμε με σαφήνεια τις σκέψεις μας, να τις εξετάζουμε κριτικά και να τις εκφράζουμε καθαρά. Το εκφραστικό μέρος μπορεί να απλοποιηθεί σε κάποιο βαθμό (ανάλογα με την ποιότητα γραφής που απαιτείται).
<br><br>
Στον κόσμο του προγραμματισμού, όπου το "εξαρτάται" είναι συχνά η καλύτερη απάντηση και όλα βασίζονται σε συμβιβασμούς, το γράψιμο γίνεται πολύ πιο δύσκολο. Πρέπει να καθοριστεί το πλαίσιο, να αιτιολογηθούν οι αποφάσεις και στη συνέχεια, να ενισχυθεί τη σκέψη χαμηλού επιπέδου που οδηγεί στον κώδικα. Αυτός ο τύπος γραφής είναι χρήσιμος μόνο εάν γίνεται καλά, και επειδή το γίνει καλά είναι δύσκολο, συχνά δεν γίνεται καθόλου. Ο κακός κώδικας θα συνεχίσει να δουλεύει, η κακή τεκμηρίωση μπερδεύει.
<br><br>
Αυτός είναι ο λόγος για τον οποίο πολλοί άνθρωποι διαφωνούν σχετικά με την αξία των σχολίων στον κώδικα και τα πλεονεκτήματα της αυτο-τεκμηρίωσης κώδικα (ό,τι κι αν σημαίνει αυτό). Ο Kevlin Henney λέει ότι "<i>το να ζητάμε σχόλια γύρω από περίπλοκο κώδικα είναι μάταιο, επειδή περιμένουμε από τους ίδιους ανθρώπους που δεν μπορούσαν να εκφραστούν καθαρά στον κώδικα να εκφραστούν καθαρά και κατανοητά με κείμενο (Αγγλικά)</i>".
<br><br>
<h2>Η μη τεκμηρίωση δεν εμποδίζει την κυκλοφορία</h2>
Εάν ένας προγραμματιστής δεν γράψει τεκμηρίωση, η δουλειά του εξακολουθεί να έχει ολοκληρωθεί. Το να μην γράψει τεκμηρίωση δεν εμποδίζει την κυκλοφορία του προγράμματος (τουλάχιστον όχι αμέσως). Η ζημιά που προκαλείται από τη μη τεκμηρίωση τεχνικών αποφάσεων είναι σωρευτική. Όπως το τεχνικό χρέος, δεν προκαλεί ζημιά εδώ και τώρα.
<br><br>
Όπως ειπώθηκε και παραπάνω, η συγγραφή είναι πρωτίστως θέμα σκέψης και ανάλυσης. Στα περισσότερα μέρη, η συγγραφή κώδικα μπορεί να γίνει εύκολα. Ένας αποδιοργανωμένος σωρός κλάσεων και μεθόδων στον κώδικα μπορεί να λειτουργήσει - ένας σωρός λέξεων και παραγράφων δεν θα λειτουργήσει. Η γραφή ΠΡΕΠΕΙ να είναι σαφής εάν πρόκειται να είναι χρήσιμη. Ο κώδικας θα γίνει αποδεκτός (σε κάποιο βαθμό) αρκεί να κάνει τη δουλειά του. Και δεδομένου ότι οι περισσότεροι οργανισμοί επικεντρώνονται μόνο στην κυκλοφορία του προϊόντος, αυτό που δεν εμποδίζει την κυκλοφορία αγνοείται.
<br><br>
Οι δοκιμές (unit tests) αντιμετωπίζουν παρόμοιο πρόβλημα σε πολλές ομάδες. Για να ελέγξουμε τον κώδικα πρέπει να τον κατανοήσουμε (που απαιτεί περισσότερη προσπάθεια από τη σύνταξη του) και η απουσία δοκιμών δεν εμποδίζει την κυκλοφορία. Επομένως, συνήθως δεν υπάρχουν δοκιμές σε κώδικα.
<br><br>
Υπάρχει και το θέμα της παλαιότητας. Ακόμη και τα καλά έγγραφα είναι παρωχημένα, επομένως οι προγραμματιστές πρέπει να συνεχίζουν να επαναλαμβάνουν το σκέφτομαι-αναλύω-εκφράζω ξανά και ξανά καθώς κατασκευάζουν συστήματα. Έτσι, η αποφυγή της συγγραφής της τεκμηρίωσης είναι εύκολη. Έτσι, ακόμη και με τις καλύτερες προθέσεις, η τεκμηρίωση συμβαίνει συχνά μόνο σε στιγμές συγγραφής και καθαρισμού.
<br><br>
<h2>Τι γίνεται με τα εργαλεία</h2>
Δεν υπάρχει αμφιβολία ότι το σύνολο εργαλείων που χρησιμοποιούνται συνήθως για την τεκμηρίωση λογισμικού σήμερα είναι θλιβερά ανεπαρκή. Δεν σκεφτόμαστε τα έγγραφα ένα-ένα. Σκεφτόμαστε με όρους ιδεών και στόχων συγκεντρώνοντας πολλές έννοιες ταυτόχρονα. Το έγγραφο που προκύπτει είναι μόνο μια εκδήλωση της διαδικασίας σκέψης. Χρειαζόμαστε εργαλεία που μπορούν να μας βοηθήσουν να συγκεντρώνουμε ιδέες διαχρονικά για να λύσουμε το πρόβλημα. Τα <b>Έγγραφα Google</b>, το <b>Confluence</b>, το <b>Markdown</b> είναι όλα κακά εργαλεία για αυτόν τον τύπο γραφής.
<br><br>
Ωστόσο, μια νέα γενιά εργαλείων όπως το <a href="https://www.notion.so/" target="_blank">Notion</a> και το <a href="https://roamresearch.com/" target="_blank">Roam</a> αντιμετωπίζουν αυτό το πρόβλημα της αξιοποίησης των εργαλείων. Ας ελπίσουμε ότι αυτά θα λειτουργήσουν όπως προβλέπεται και θα βοηθήσουν στη σκέψη που οδηγεί στη συγγραφή.
<br><br>
Ωστόσο, η έλλειψη δεύτερου εγκεφάλου δεν μπορεί πραγματικά να χρησιμοποιηθεί ως δικαιολογία για τη μη χρήση του πρώτου. Τα εργαλεία παίζουν το ρόλο τους, αλλά η προθυμία να αναλάβει τη διαδικασία είναι το πραγματικό εμπόδιο.
<br><br>
<h2>Πώς να δημιουργείτε λοιπόν τεκμηρίωση</h2>
Το λογισμικό γραφής μας δίδαξε ένα πράγμα. Αν θέλετε πραγματικά οι χρήστες σας να κάνουν κάτι, τότε αυτό θα πρέπει να είναι ένα βήμα που τους εμποδίζει στο ταξίδι τους με το προϊόν σας. Με τον ίδιο τρόπο, η προσαρμογή τεκμηρίωσης σε γραπτό κώδικα δεν πρόκειται ποτέ να λειτουργήσει. Ακόμα χειρότερα, είναι άχρηστη. Η συγγραφή έχει να κάνει με την κριτική σκέψη. Σκοπός της είναι να εξηγήσετε τη διαδικασία σκέψης και την πρόθεσή σας στον εαυτό σας και στο ακροατήριό σας (π.χ. την ομάδα σας). Η διαδικασία σκέψης είναι το σημείο όπου η τεκμηρίωση/συγγραφή προσθέτει αξία, όχι ως στατική καταγραφή ήδη υλοποιημένου κώδικα.
<br><br>
Οι υποστηρικτές του προγραμματισμού mob/pair και των XP συχνά υποτιμούν την τεκμηρίωση. Αλλά αν δεν υιοθετηθούν αυτές οι τεχνικές, η πρακτική της συγγραφής και της αναθεώρησης των τεχνικών εγγράφων είναι ο μόνος τρόπος με τον οποίο οι ομάδες οικοδομούν μια συλλογική κατανόηση αυτού που προσπαθούν να οικοδομήσουν. Αυτή η κοινή οικοδόμηση του κόσμου είναι που καθιστά αυτή τη διαδικασία κρίσιμη για τη μακροπρόθεσμη υγεία της ομάδας και της βάσης κώδικα.
<br><br>
Ο μόνος τρόπος για να καταστεί βιώσιμη η διαδικασία συγγραφής τεκμηρίωσης είναι να την καταστήσουμε ανασταλτικό παράγοντα για την ανάπτυξη λογισμικού. Να την κάνουμε ελαφριά αλλά υποχρεωτική. Θα πρέπει να γίνει μέρος της διαδικασίας αντί να είναι ένα ακόμη πράγμα που πρέπει να κάνουμε. Μερικά πράγματα που έχουν λειτουργήσει για αυτό από την εμπειρία μου.
<ul>
<li><b>Γράψτε τεκμηρίωση πριν τον κώδικα.</b> Εκτός αν η αλλαγή είναι ασήμαντη, κάθε προγραμματιστής γράφει ένα σημείωμα για το τι πρόκειται να κάνει και το περνάει από την υπόλοιπη ομάδα. Στο τέλος της συζήτησης, η πραγματική συγγραφή κώδικα θα πρέπει να γίνει ασήμαντη.</li>
<li><b>Γράψτε απλά.</b> Μην περιπλέκετε το κείμενο, τουλάχιστον μέχρι να γίνει συνήθεια. Τα διαγράμματα, οι φανταχτερές ενότητες κ.λπ. μπορούν να περιμένουν. Γράψτε πολύ απλά για το τι σκεφτήκατε, τι κάνετε και γιατί. Ακόμη και αν το έγγραφο μπορεί να χρησιμεύσει ως βασικός δείκτης για την υπόλοιπη ομάδα τώρα και στο μέλλον, είναι εξαιρετικά πολύτιμο.</li>
<li><b>Τεκμηριώστε την απόφαση με τις εναλλακτικές τους</b> - Αντί να τεκμηριώνετε λεπτομερώς την πραγματική υλοποίηση (η οποία μπορεί να αλλάξει με την πάροδο του χρόνου), επικεντρωθείτε στην τεκμηρίωση των επιλογών και του λόγου για τον οποίο έγιναν. Αυτό είναι κάτι που ο κώδικας δεν μπορεί ποτέ να εξηγήσει και ως εκ τούτου η καταγραφή του τον κάνει πολυτιμότερο. Οι λεπτομέρειες μπορούν να τεκμηριωθούν με βάση τον χρόνο που είστε διατεθειμένοι να επενδύσετε.</li>
<li><b>Κάντε την αναζητήσιμη</b> - Καμία ποσότητα τεκμηρίωσης δεν θα έχει καμία χρησιμότητα εάν οι χρήστες δεν μπορούν να την βρουν. Χρησιμοποιήστε εργαλεία που υποστηρίζουν την αναζήτηση κειμένου. Αυτός είναι ένας από τους λόγους για τους οποίους δεν μου αρέσουν τα Έγγραφα Google για τεκμηρίωση. Είναι εξαιρετικό για τη συγγραφή, αλλά απλά απαίσιο για τη συνεργασία και την ανακάλυψη της πληροφορίας.</li>
<li><b>Παρακολουθήστε τις αλλαγές.</b> Ορισμένοι οργανισμοί χρησιμοποιούν τον έλεγχο εκδόσεων (version control όπως πχ github) για να παρακολουθούν τις αλλαγές στο σχεδιασμό του συστήματος με την πάροδο του χρόνου. Αυτό είναι υπέροχο. Αλλά αν δεν έχετε φτάσει ακόμα εκεί, κρατήστε ένα έγγραφο ανά χαρακτηριστικό και συνεχίστε να βάζετε σε αυτό ενημερώσεις με ημερομηνία, ώστε η εξέλιξη να μπορεί να παρακολουθείται σε ένα μέρος με ελάχιστη ταλαιπωρία.</li>
</ul>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9yhT0Euce-TZPlxJC7h7lQVoA7kt7an0_IyUIuMiX3oUTlT4qWw-plrNst5TKARBQmALTziSyLxGEq8rNVEXWF-z_Iz7lVTA81Sm-Tyt0vVei-izSfM1xBV_MhI0bHm2obWb9pVeRT8zB8Ta0uBNKs3q02TcUQz0Jf8ziKChsFnKovKyXmVzfwIRG3fvN/s1600/documentation.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Γιατί οι προγραμματιστές δεν γράφουν τεκμηρίωση" border="0" data-original-height="739" data-original-width="956" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9yhT0Euce-TZPlxJC7h7lQVoA7kt7an0_IyUIuMiX3oUTlT4qWw-plrNst5TKARBQmALTziSyLxGEq8rNVEXWF-z_Iz7lVTA81Sm-Tyt0vVei-izSfM1xBV_MhI0bHm2obWb9pVeRT8zB8Ta0uBNKs3q02TcUQz0Jf8ziKChsFnKovKyXmVzfwIRG3fvN/s1600/documentation.png"/></a></div>
Η ελπίδα είναι ότι καθώς η ομάδα φαίνεται να αντιλαμβάνεται τα πλεονεκτήματα της ύπαρξης και της αναθεώρησης ορισμένων εγγράφων (π.χ. τα νέα μέλη χρειάζονται λιγότερη βοήθεια) και η συγγραφή γίνεται συνήθεια, η πρακτική θα γίνει αυτοσυντηρούμενη. Μέχρι τότε, θα πρέπει να αντιμετωπίζεται όπως η γυμναστική ή η δίαιτα - επώδυνη αλλά απαραίτητη.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-65247660448926015762023-12-10T12:58:00.000+02:002023-12-10T12:58:09.693+02:00Γνωριμία με το Open Build Service<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglkeazVjvhzi2rsMYsAinO-1ttxC4TF1-AJP7OX-849PVdsNpKZAsyeIf4_ChR2OcjsjFqQ1nnlHYT99oM1okTzRz2-w2pI8j1I1yX4Jk8vXSlyL_6GXYmSwPB3V6FWLDHqFrBJnf1kPPfNvAs0lb0oPuX5367phUgvdCTqGAoFHGw6gHpsvxN294Cus2l/s726/open-build-serivce.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="open build service" border="0" width="400" data-original-height="332" data-original-width="726" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglkeazVjvhzi2rsMYsAinO-1ttxC4TF1-AJP7OX-849PVdsNpKZAsyeIf4_ChR2OcjsjFqQ1nnlHYT99oM1okTzRz2-w2pI8j1I1yX4Jk8vXSlyL_6GXYmSwPB3V6FWLDHqFrBJnf1kPPfNvAs0lb0oPuX5367phUgvdCTqGAoFHGw6gHpsvxN294Cus2l/s400/open-build-serivce.png"/></a></div>
Το <a href="https://openbuildservice.org/" target="_blank">Open Build Service (OBS)</a> είναι μια πλατφόρμα ανοικτού κώδικα που παρέχει ένα πλήρες σύστημα αυτοματοποιημένης δημιουργίας πακέτων λογισμικού από τον πηγαίο κώδικα. Αρχικά αναπτύχθηκε από την εταιρεία SUSE, αλλά τώρα είναι διαθέσιμο ως ένα ελεύθερο λογισμικό υπό την άδεια GPL.<br><br>
Το Open Build Service παρέχει ένα ολοκληρωμένο περιβάλλον για την κατασκευή πακέτων λογισμικού για πολλές διανομές Linux, όπως το openSUSE, το Fedora, το Debian, το Ubuntu και πολλές άλλες. Επιπλέον, υποστηρίζει τη δημιουργία πακέτων για αρχιτεκτονικές διαφορετικές από το x86, όπως ARM και PowerPC. Με το OBS, οι προγραμματιστές μπορούν να ανεβάζουν τον κώδικά τους, να ορίζουν τις απαιτούμενες εξαρτήσεις και να δημιουργούν αυτόματα πακέτα λογισμικού για πολλές πλατφόρμες και διανομές.<br><br>
Τα πλεονεκτήματα του Open Build Service είναι πολλά. Πρώτον, παρέχει μια ενοποιημένη πλατφόρμα για τη δημιουργία πακέτων λογισμικού για πολλαπλές διανομές, εξοικονομώντας χρόνο και πόρους στους προγραμματιστές. Δεύτερον, προσφέρει αυτοματοποιημένες διαδικασίες για τη δημιουργία και την ενημέρωση των πακέτων, προσφέροντας ένα σταθερό και επαναληπτικό περιβάλλον. Τέλος, παρέχει ευέλικτες δυνατότητες προσαρμογής και διαμόρφωσης, επιτρέποντας στους χρήστες να προσαρμόσουν τις διαδικασίες κατασκευής και να προσθέσουν πρόσθετες λειτουργίες ανάλογα με τις ανάγκες τους.<br><br>
Παρά τα πλεονεκτήματα του Open Build Service, υπάρχουν και μειονεκτήματα που πρέπει να ληφθούν υπόψη. Πρώτον, η εκμάθηση και η εξοικείωση με το σύστημα μπορεί να απαιτήσει χρόνο και προσπάθεια, ειδικά για νέους χρήστες. Δεύτερον, η συντήρηση και η διαχείριση των υποδομών του OBS μπορεί να απαιτήσει επιπλέον πόρους και επιδεξιότητες. Αυτό μπορεί να το παρέχει το openSUSE στην ιστοσελίδα <a href="https://build.opensuse.org/" target="_blank">https://build.opensuse.org/</a>.<br><br>
<h2>Χρήστες του Open Build Service</h2>
Όσον αφορά στους χρήστες του Open Build Service, αυτοί κυμαίνονται από ανεξάρτητους προγραμματιστές μέχρι μεγάλες επιχειρήσεις. Οι προγραμματιστές μπορούν να αξιοποιήσουν το OBS για να διευκολύνουν τη διαδικασία της κατασκευής, της δοκιμής και της διανομής του λογισμικού τους σε πολλές πλατφόρμες και διανομές. Από την άλλη πλευρά, οι μεγάλες επιχειρήσεις μπορούν να αξιοποιήσουν το OBS για τη δημιουργία ενός ενοποιημένου κέντρου κατασκευής λογισμικού, που επιτρέπει τον έλεγχο και τη διαχείριση των πακέτων σε διάφορες διανομές και πλατφόρμες.<br><br>
Όσον αφορά στον τρόπο χρήσης του Open Build Service, οι χρήστες μπορούν να ανεβάζουν τον κώδικα τους στο σύστημα στην ιστοσελίδα <a href="https://build.opensuse.org/" target="_blank">https://build.opensuse.org/</a> και να ορίζουν τις απαιτούμενες εξαρτήσεις για την κατασκευή του πακέτου. Στη συνέχεια, μπορούν να εκκινήσουν τη διαδικασία κατασκευής, η οποία περιλαμβάνει τη συγκέντρωση και τη σύνθεση των απαιτούμενων στοιχείων για την παραγωγή του τελικού πακέτου με τη χρήση ενός αρχείο <i>spec</i>. Οι χρήστες μπορούν να διαμορφώσουν τις διαδικασίες κατασκευής, να προσθέσουν πρόσθετες ενέργειες και να διαχειριστούν τις εξαρτήσεις τους. Τέλος, το OBS παρέχει διάφορα εργαλεία και δυνατότητες για την αυτοματοποίηση της διαδικασίας κατασκευής, τη διαχείριση των πακέτων και την ενημέρωση του λογισμικού.<br><br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW70b6r6UNs8KzEsx2nNKFDqvdRWj35szK85XmyfHg0AXHiXE1OZ03vFF51ByBbuMbtiYHcrw1lW0LkQQyYmVlSstI1tp-t7KTnpVempdjlFIz9MQ_3eCqOPuCgv-9aN5GCMUetesOUpAtn8g-K4rhzht4hWV3okCIEZgTlo977o4UxIT_cuRUWKv4h8iv/s1600/Obs_Webclient.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE Build Service" border="0" data-original-height="832" data-original-width="1105" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW70b6r6UNs8KzEsx2nNKFDqvdRWj35szK85XmyfHg0AXHiXE1OZ03vFF51ByBbuMbtiYHcrw1lW0LkQQyYmVlSstI1tp-t7KTnpVempdjlFIz9MQ_3eCqOPuCgv-9aN5GCMUetesOUpAtn8g-K4rhzht4hWV3okCIEZgTlo977o4UxIT_cuRUWKv4h8iv/s1600/Obs_Webclient.jpg"/></a></div>
Συνοψίζοντας, το Open Build Service είναι μια πλατφόρμα λογισμικού ανοιχτού κώδικα που προορίζεται για τη δημιουργία και την αυτοματοποίηση της διαδικασίας κατασκευής πακέτων λογισμικού. Παρέχει πλεονεκτήματα, όπως την υποστήριξη πολλαπλών διανομών και αρχιτεκτονικών, την αυτοματοποίηση και την προσαρμοστικότητα. Χρησιμοποιείται από προγραμματιστές και επιχειρήσεις για τη δημιουργία και τη διαχείριση πακέτων λογισμικού σε διάφορες πλατφόρμες και διανομές. Με τη βοήθεια του OBS, οι χρήστες μπορούν να αυτοματοποιήσουν και να διαχειριστούν τη διαδικασία κατασκευής πακέτων λογισμικού.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-29641031082847264912023-11-01T23:17:00.001+02:002023-11-01T23:19:43.202+02:00OpenQA - Το εργαλείο ελέγχου ποιότητας λογισμικού που αυξάνει την αξιοπιστία και την αποτελεσματικότητα<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYdOEQ2ZMYDY_p1Wzx9oP0OaaWBp09elh1VwWLtoRX9m36LkmUM3YXpSB7GcqiMqfbo0a7eObSXfCJoeqSIHLsrmMMTOPBPoJRqIGH-WjPM2vh1-JNmXcx9_LixeltPxev82q8IlK6AwilTyUzixt8UOBQTOi63piaLwq5OMTVV6hXCvkXFxGNp8ckL1Rr/s1600/Openqa-new250.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openqa" border="0" data-original-height="250" data-original-width="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYdOEQ2ZMYDY_p1Wzx9oP0OaaWBp09elh1VwWLtoRX9m36LkmUM3YXpSB7GcqiMqfbo0a7eObSXfCJoeqSIHLsrmMMTOPBPoJRqIGH-WjPM2vh1-JNmXcx9_LixeltPxev82q8IlK6AwilTyUzixt8UOBQTOi63piaLwq5OMTVV6hXCvkXFxGNp8ckL1Rr/s1600/Openqa-new250.png"/></a></div>
Το <a href="http://open.qa/" target="_blank">openQA</a> είναι ένα εργαλείο αυτοματοποιημένου ελέγχου ποιότητας λογισμικού (QA), που χρησιμοποιείται για τον έλεγχο της λειτουργικότητας, της απόδοσης και της αξιοπιστίας μιας εφαρμογής. Βασίζεται στην αυτοματοποίηση των διαδικασιών ελέγχου, χρησιμοποιώντας τεχνικές δοκιμής για να ελέγξει το λογισμικό και να εντοπίσει πιθανά σφάλματα ή ασυνέπειες.<br><br>
Υπάρχουν αρκετοί λόγοι για τους οποίους κάποιος θα μπορούσε να χρησιμοποιήσει το <b>openQA</b> για τον έλεγχο της ποιότητας του λογισμικού του. Καταρχήν, η αυτοματοποίηση των διαδικασιών ελέγχου επιτρέπει την εκτέλεση γρήγορων και αξιόπιστων δοκιμών, εξοικονομώντας χρόνο και πόρους στη διάρκεια της διαδικασίας ανάπτυξης του λογισμικού. Επιπλέον, η αυτοματοποίηση μπορεί να εξασφαλίσει υψηλότερη ακρίβεια και συνέπεια στις δοκιμές, αποτρέποντας την ανθρώπινη παραμέληση και λανθασμένες εκτελέσεις.<br><br>
Το openQA χρησιμοποιείται από μια ποικιλία οργανισμών και κοινοτήτων που αναπτύσσουν λογισμικό. Παραδείγματα οργανισμών που χρησιμοποιούν το openQA περιλαμβάνουν την <i>openSUSE</i>, τόσο για την διανομή όσο και άλλως προγραμμάτων και εργαλείων, και το <a href="https://fedoraproject.org/wiki/QA" target="_blank">Fedora QA</a>. Και οι δύο οργανισμοί χρησιμοποιούν το openQA για να ελέγξουν την ποιότητα των νέων εκδόσεων του λογισμικού τους πριν από την κυκλοφορία τους, εντοπίζοντας πιθανά σφάλματα και διασφαλίζοντας την ομαλή λειτουργία του συστήματος.<br><br>
Η χρήση του openQA συνίσταται σε μια σειρά βημάτων. Καταρχήν, πρέπει να δημιουργηθούν σενάρια δοκιμών που θα εκτελεστούν αυτοματοποιημένα. Αυτά τα σενάρια μπορούν να περιλαμβάνουν ενέργειες όπως πλοήγηση στην εφαρμογή, εισαγωγή δεδομένων και επαλήθευση αποτελεσμάτων. Έπειτα, τα σενάρια δοκιμών εκτελούνται αυτοματοποιημένα σε ένα περιβάλλον ελέγχου, όπου το openQA παρακολουθεί την εκτέλεσή τους και ελέγχει τα αποτελέσματα. Οποιαδήποτε ασυμφωνία ή σφάλμα που εντοπίζεται από το openQA αναφέρεται και αναλύεται για περαιτέρω έρευνα και διόρθωση.<br><br>
Ένα παράδειγμα χρήσης του openQA είναι η διαδικασία έλεγχου της νέας έκδοσης μιας διανομής Linux, όπως η openSUSE. Το openQA εκτελεί αυτοματοποιημένα δοκιμαστικά σενάρια σε διάφορα συστήματα, μοντέλα και περιβάλλοντα για να δοκιμάσει τη λειτουργικότητα και τη σταθερότητα της διανομής. Εάν το openQA ανιχνεύσει οποιαδήποτε σφάλματα, αποτυχίες ή ασυνέπειες, θα δημιουργήσει αναφορές για να επισημάνει τα προβλήματα προς τους προγραμματιστές, οι οποίοι θα αναλάβουν τη διόρθωση και την επανεξέταση του κώδικα. Αυτός είναι ο λόγος που η <a href="https://get.opensuse.org/tumbleweed/" target="_blank">openSUSE Tubleweed</a> καταφέρνει να εισάγει πρώτη (αν όχι πρώτη, τότε από τις πρώτες διανομές), τις τελευταίες εκδόσεις των προγραμμάτων, των GUI κλπ.<br><br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy5G8QU8MeAtlPiK25QRSZ0GkkDfxlWusAEX-bnrsbjkKx-C5tjhnKpDOkzzKWrrG-nKU-QY_ORnk1fKlSoM2uOrwTuTYPd8i3wNHKw281jZPC6LJ5fF0lrPkPemRugtcRwLOr18kEwWyAJv6T9DX2Ulhtc0sFIBJgH_A_dplwIPiGDTMqebtu1CXqUMIx/s1600/openQA-test-overview.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openqa test overview" border="0" data-original-height="796" data-original-width="1583" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy5G8QU8MeAtlPiK25QRSZ0GkkDfxlWusAEX-bnrsbjkKx-C5tjhnKpDOkzzKWrrG-nKU-QY_ORnk1fKlSoM2uOrwTuTYPd8i3wNHKw281jZPC6LJ5fF0lrPkPemRugtcRwLOr18kEwWyAJv6T9DX2Ulhtc0sFIBJgH_A_dplwIPiGDTMqebtu1CXqUMIx/s1600/openQA-test-overview.png"/></a></div>
Συνοψίζοντας, το openQA είναι ένα ισχυρό εργαλείο αυτοματοποιημένου ελέγχου ποιότητας λογισμικού που χρησιμοποιείται για να αυξήσει την αξιοπιστία, την αποτελεσματικότητα και την ποιότητα των εφαρμογών λογισμικού. Με την αυτοματοποίηση των διαδικασιών ελέγχου, το openQA επιτρέπει στις οργανώσεις να εξοικονομήσουν χρόνο και πόρους, ενώ παρέχει ακρίβεια και συνέπεια στις δοκιμές. Οι κοινότητες και οργανισμοί όπως η openSUSE και το Fedora χρησιμοποιούν το openQA για τον έλεγχο και τη βελτίωση των λογισμικών τους, ενώ επιτρέπει στους προγραμματιστές να εντοπίζουν και να διορθώνουν πιθανά σφάλματα. Αυτό το εργαλείο συμβάλλει στην ανάπτυξη υψηλής ποιότητας και αξιόπιστου λογισμικού για τους χρήστες.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-55204288305792240392023-08-01T09:55:00.004+03:002023-08-01T18:06:27.619+03:00Εξερευνώντας τη δύναμη του openSUSE MicroOS: Μια επαναστατική διανομή Linux<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5AnBImrwdTQtxqzhOmMFzTyQvsuIuvMTgvAQYDC825gEQn3irl75Yq5QIxSJlgj2EcXEU0JSXKJFMCeas1torvtl-eSSENALZStESD5XRwntf4qZl87dQ_Pv5AsnTJqBKeO7mhlBEQJC7I4hEqc_iVPe6edOQfYOYHn1XOiatGAbdDM-ub3wiSnEU9ch2/s664/microos-opensuse.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE Micro OS" border="0" width="600" data-original-height="322" data-original-width="664" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5AnBImrwdTQtxqzhOmMFzTyQvsuIuvMTgvAQYDC825gEQn3irl75Yq5QIxSJlgj2EcXEU0JSXKJFMCeas1torvtl-eSSENALZStESD5XRwntf4qZl87dQ_Pv5AsnTJqBKeO7mhlBEQJC7I4hEqc_iVPe6edOQfYOYHn1XOiatGAbdDM-ub3wiSnEU9ch2/s600/microos-opensuse.png"/></a></div>
Στην εποχή του containerization και των cloud-native εφαρμογών, η αποτελεσματική διαχείριση της ανάπτυξης λογισμικού είναι ζωτικής σημασίας για τη διατήρηση της σταθερότητας, της ασφάλειας και της επεκτασιμότητας. Το <a href="https://microos.opensuse.org/" target="_blank">openSUSE MicroOS</a>, ένα καινοτόμο λειτουργικό σύστημα που βασίζεται στα θεμέλια του openSUSE, προσφέρει μια εξορθολογισμένη και βελτιστοποιημένη πλατφόρμα για φόρτο εργασίας που βασίζεται σε containers. Σχεδιασμένο για να απλοποιεί την ανάπτυξη και τη λειτουργία εφαρμογών που βασίζονται σε containers, το openSUSE MicroOS συνδυάζει τις καλύτερες πτυχές της αξιοπιστίας του openSUSE και του μοντέλου ατομικών ενημερώσεων που πρωτοπορεί το <a href="https://github.com/coreos" target="_blank">CoreOS</a>. Αυτό το άρθρο διερευνά τα βασικά χαρακτηριστικά και τα οφέλη του openSUSE MicroOS και πώς δίνει τη δυνατότητα στους προγραμματιστές και τους διαχειριστές συστημάτων να αγκαλιάσουν το μέλλον του containerization.<br><br>
<h2>Αποδοτικές ατομικές ενημερώσεις</h2>
Το openSUSE MicroOS διακρίνεται για το μοντέλο ατομικών ενημερώσεων, εξασφαλίζοντας συνεκτικές και αξιόπιστες ενημερώσεις χωρίς να διαταράσσονται οι εφαρμογές που εκτελούνται. Χρησιμοποιώντας τη λειτουργία <i>transactional updates</i>, το λειτουργικό σύστημα εφαρμόζει αυτόματα τις ενημερώσεις ως ενιαία μονάδα, εξαλείφοντας τις πολυπλοκότητες που σχετίζονται με τους παραδοσιακούς μηχανισμούς ενημέρωσης. Η προσέγγιση αυτή μειώνει σημαντικά τον κίνδυνο αποτυχιών του συστήματος που προκαλούνται από μερικές ενημερώσεις και απλοποιεί τη διαδικασία επαναφοράς σε περίπτωση τυχόν προβλημάτων.<br><br>
<h2>Αμετάβλητο σύστημα αρχείων</h2>
Στην καρδιά του openSUSE MicroOS βρίσκεται ένα αμετάβλητο σύστημα αρχείων root μόνο για ανάγνωση. Με την υιοθέτηση ενός αμετάβλητου σχεδιασμού, το λειτουργικό σύστημα διασφαλίζει ότι τα βασικά στοιχεία του συστήματος παραμένουν αναλλοίωτα, ενισχύοντας τη σταθερότητα και την ασφάλεια. Οποιεσδήποτε τροποποιήσεις ή εγκαταστάσεις αποθηκεύονται σε container και αποθηκεύονται σε ξεχωριστά στιγμιότυπα με δυνατότητα εγγραφής, τα οποία μπορούν εύκολα να απορριφθούν ή να ανακληθούν αν χρειαστεί. Αυτή η προσέγγιση επιτρέπει επίσης καλύτερη αναπαραγωγιμότητα και εγγυάται ότι το σύστημα παραμένει σε γνωστή και προβλέψιμη κατάσταση.<br><br>
<h2>Εστίαση σε container</h2>
Το openSUSE MicroOS έχει σχεδιαστεί με μια νοοτροπία που είναι πρώτα από τα container. Ενσωματώνεται καλά με τεχνολογίες container όπως το Docker και το Kubernetes, παρέχοντας μια απρόσκοπτη εμπειρία για προγραμματιστές και διαχειριστές. Με το βελτιστοποιημένο σύστημα του host, το openSUSE MicroOS προσφέρει ελάχιστο αποτύπωμα, μειώνοντας την επιφάνεια επίθεσης και βελτιστοποιώντας τη χρήση των πόρων. Επιπλέον, η ενσωμάτωσή του με πλατφόρμες ενορχήστρωσης container επιτρέπει την αποτελεσματική κλιμάκωση, εξισορρόπηση φορτίου και διαχείριση εφαρμογών με container.<br><br>
<h2>Ενισχυμένη ασφάλεια και απομόνωση</h2>
Η ασφάλεια αποτελεί πρωταρχικό μέλημα στα σύγχρονα υπολογιστικά περιβάλλοντα. Το openSUSE MicroOS ενσωματώνει διάφορα χαρακτηριστικά για να διασφαλίσει ισχυρή ασφάλεια και απομόνωση για τα φορτία εργασίας που βασίζονται σε container. Χρησιμοποιώντας τεχνολογίες όπως το SELinux και το AppArmor, το λειτουργικό σύστημα επιβάλλει αυστηρούς ελέγχους πρόσβασης και απομονώνει τα container, αποτρέποντας τη μη εξουσιοδοτημένη πρόσβαση και μειώνοντας τον αντίκτυπο των πιθανών ευπαθειών. Επιπλέον, το μοντέλο ατομικής ενημέρωσης διασφαλίζει την άμεση εφαρμογή των επιδιορθώσεων ασφαλείας, ελαχιστοποιώντας το παράθυρο έκθεσης σε γνωστές ευπάθειες.<br><br>
<h2>Ευκολία διαχείρισης</h2>
Το openSUSE MicroOS προσφέρει μια βελτιωμένη και διαισθητική εμπειρία διαχείρισης. Με εργαλεία οι διαχειριστές μπορούν να διαχειρίζονται εύκολα τις ενημερώσεις, τις επαναφορές και τη διαχείριση στιγμιότυπων, διασφαλίζοντας τη συνέπεια και την αξιοπιστία του συστήματος. Επιπλέον, το εργαλείο <a href="https://github.com/openSUSE/yomi" target="_blank">Yomi</a> απλοποιεί την ανάπτυξη και τη διαχείριση των συστοιχιών Kubernetes, διευκολύνοντας τη δημιουργία και τη συντήρηση περιβαλλόντων container. Αυτά τα εργαλεία διαχείρισης, σε συνδυασμό με το μοντέλο ατομικών ενημερώσεων, μειώνουν σημαντικά τον διαχειριστικό φόρτο, επιτρέποντας στους διαχειριστές συστημάτων να επικεντρωθούν σε εργασίες υψηλότερης αξίας.<br><br>
<h2>Κατεβάστε το openSUSE MicroOS</h2>
Το <a href="https://get.opensuse.org/microos/?ref=iosifidis.gr" target="_blank">openSUSE MicroOS είναι διαθέσιμο για δωρεάν λήψη από τον ιστότοπο του openSUSE</a>. Μπορείτε να κατεβάσετε το openSUSE MicroOS για μια ποικιλία αρχιτεκτονικών, συμπεριλαμβανομένων των x86_64, ARMv6, ARMv7 και ARMv8.<br><br>
<h2>Συμπέρασμα</h2>
Το openSUSE MicroOS είναι ένα εξαιρετικό λειτουργικό σύστημα που φέρνει στο προσκήνιο τη δύναμη των container. Με το μοντέλο ατομικής ενημέρωσης, το αμετάβλητο σύστημα αρχείων, τη σχεδίαση που εστιάζεται σε container, τις βελτιωμένες δυνατότητες ασφαλείας και τα απλοποιημένα εργαλεία διαχείρισης, το openSUSE MicroOS παρέχει μια στέρεη βάση για την αποτελεσματική και ασφαλή εκτέλεση φόρτου εργασίας με container. Είτε είστε προγραμματιστής που αναζητά ένα σταθερό και βελτιστοποιημένο περιβάλλον είτε διαχειριστής συστήματος που αναζητά βελτιωμένες δυνατότητες διαχείρισης, το openSUSE MicroOS είναι μια συναρπαστική επιλογή που συνδυάζει τα δυνατά σημεία του openSUSE με τα πλεονεκτήματα των σύγχρονων τεχνολογιών container.<br><br>
Θα βρείτε ερωτήσεις και απαντήσεις σχετικά με το <a href="https://forums.opensuse.org/tag/microos/?ref=iosifidis.gr" target="_blank">Micro OS στο formum του openSUSE</a>.
<br><br>
<h2>Βίντεο</h2>
Δείτε κάποια βίντεο σχετικά με το Micro OS.<br>
<center>
<iframe width="560" height="315" src="https://www.youtube.com/embed/V2dKMfuqRnE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe><br><br>
<iframe width="560" height="315" src="https://www.youtube.com/embed/CyodmkDbOW4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe><center>Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-18487246002690282382023-02-23T21:25:00.002+02:002023-02-23T21:46:18.246+02:00Νους υγιής εν κώδικα υγιεί<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm5pIsIRdUlWPcp2qs6tSYHFS1zMFJVfP-IOa4q7tbcOFBKEOL0wavOPA2spfoVq2ScJE4tJdHApu5VVIz-sC_Wj2y8je6vG14yroHHDEr5LDq36ppiWWNcuClWNTmOUh48IQyFvbCrsooB1c-A00Dmj5dC2xa5xDITYitj5DtFNV5NZwD_lXyEPjpeQ/s519/FOSS.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Open Source Software" border="0" width="400" data-original-height="519" data-original-width="519" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm5pIsIRdUlWPcp2qs6tSYHFS1zMFJVfP-IOa4q7tbcOFBKEOL0wavOPA2spfoVq2ScJE4tJdHApu5VVIz-sC_Wj2y8je6vG14yroHHDEr5LDq36ppiWWNcuClWNTmOUh48IQyFvbCrsooB1c-A00Dmj5dC2xa5xDITYitj5DtFNV5NZwD_lXyEPjpeQ/s400/FOSS.png"/></a></div>
Αυτό είναι εμπνευσμένο θέμα που το έχω αγαπήσει ιδιαίτερα.
<br><br>
Ένα υγιές μυαλό οδηγεί σε υγιή κώδικα. Το ένα είναι απαραίτητο για να έχουμε το άλλο. Το θέμα το λάτρεψα διότι συνέβη και σε εμένα κατά τη διάρκεια του έτους. Πέρασε χρόνος που δεν αισθανόμουν ιδιαίτερα καλά λόγω προσωπικών θεμάτων.
<br><br>
Νομίζω ότι είναι απαραίτητο να υπενθυμίσουμε στους εαυτούς μας ότι δεν είμαστε ρομπότ. Χρειαζόμαστε ελεύθερο χρόνο κάθε τόσο και πρέπει να ισορροπήσουμε σωστά τη ζωή μας. Θα πρέπει να ζείτε τη ζωή σας. Δεν πρέπει να ξοδεύετε κάθε στιγμή που ξυπνάτε στο project που δουλεύετε, διότι δεν είναι υγιές. Μπορείτε να ξοδέψετε ένα μεγάλο μέρος του χρόνου σας σε projects που σας ευχαριστούν.
<br><br>
Το πιο σημαντικό πράγμα είναι να λέτε συχνά <b>ΟΧΙ</b>. Αυτό είναι και δικό μου λάθος. Μπορείτε να πειτε <b>ΟΧΙ δεν μπορώ</b> όταν κάποιος σας ρωτά "Μπορείς να κάνεις αυτό;". Βέβαια μπορείτε να πείτε και ΝΑΙ μερικές φορές. Μην τα ισοπεδώνουμε. <br><br>
Υπάρχουν άλλα σημαντικά πράγματα. <br>
<ul>
<li>Ένα από τα πιο σημαντικά πράγματα είναι ο ύπνος. Να κοιμάστε πολλές ώρες. Να ξεκουραστείτε.</li>
<li>Επίσης σημαντικές είναι οι φιλίες. Μπορείτε να έχετε φιλίες. Φιλίες εντός του project είτε εκτός. Θα σας κάνουν να αισθανθείτε περίφημα. </li>
<li>Υιοθετήστε έναν έναν υγιεινό τρόπο ζωής και ίσως μερικές φορές σκεφτείτε τη δική σας κατάσταση του μυαλού. Πώς αισθάνεστε και πώς σας κάνει να νιώθετε το project που συνεισφέρετε. Ίσως επειδή ίσως σας αγχώνουν, είναι καλό να καταλάβετε γιατί αγχώνεστε και έτσι κάνετε σωστά την ερώτηση στον εαυτό σας. </li>
</ul>
<br>
Να έχετε υπόψη σας ότι τα projects ανοικτού λογισμικού αποτελούν μια εθελοντική προσπάθεια. Δεν βγάζετε κάτι από αυτό, σωστά; Οπότε θα πρέπει να έχετε στο νού σας να πάρετε κάτι από αυτό. Ίσως είναι απόλαυση, ίσως είναι απλώς η αίσθηση της κοινότητας, η αίσθηση της φιλίας που βιώνουμε. Αυτό που σίγουρα δεν θέλετε να έχετε είναι να χάσετε τον ύπνο σας. Γι' αυτό αν υπάρχει ένα ιδιαίτερα δύσκολο πρόβλημα που αντιμετωπίζετε στην καθημερινή σας δουλειά στο project σας, απλώς ρωτήστε κάποιον άλλο. Πάρτε τη γνώμη κάποιου άλλου. Μην χάσετε τον ύπνο σας. Ο ύπνος είναι πολύ σημαντικός. Φυσικά μερικές φορές μπορεί απλώς να χρειαστεί να αποστασιοποιηθείτε από τα πράγματα.<br><br>
Ορίστε μερικές συμβουλές, μερικές πολύ γενικές συμβουλές: <br><br>
<ul>
<li>Να ξέρετε τα όριά σας. Μην αγχώνεστε πολύ αν δεν μπορείτε να διορθώσετε όλα τα σφάλματα στον κόσμο. Τα μισά από αυτά μπορεί να ειναι ΟΚ. Μην απλώσετε το εύρος ζώνης σας, ακόμα και αν πιστεύετε ότι αυτό που θα κάνετε θα σας αποφέρει ευχαρίστηση.</li>
<li>Μερικές φορές είναι εντάξει να κάνετε διακοπές για μερικά χρόνια. Εννοώ ότι μπορείτε να απέχετε από το project ανοικτού λογισμικού που συνεισφέρετε. Όλη η κοινότητα θα σας αγαπά ακόμα όταν επιστρέψετε. Και ελπίζω ότι θα επιστρέψετε.</li>
<li>Δεν χρειάζεται να σχεδιάζετε υπερβολικά τη ζωή σας. Να είστε ελεύθεροι να δεσμευτείτε στο project που σας άρεσε και συνεισφέρατε τόσο χρόνο, μόνο και μόνο επειδή συντηρείτε ένα κομμάτι λογισμικού δεν σημαίνει ότι έχετε το παντρευτήκατε και πρέπει να το συντηρείτε για πάντα. Μπορεί να κάνετε ένα βήμα πίσω και να μπείτε σε ένα άλλο έργο πχ έρευνας και ανάπτυξης.</li>
<li>Αν διαπιστώσετε ότι κάτι δεν σας προσφέρει ικανοποίηση, δεν σας προσφέρει απόλαυση, μειώστε τον χρόνο που διαθέτετε σε αυτό. Καλύτερα είναι να το αφήσετε τελείως, ιδιαίτερα αν είναι μια λίστα αλληλογραφίας ή κάτι άλλο που δεν οδηγεί σε τίποτα παραγωγικό ούτως ή άλλως</li>
</ul>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipLlI6Sg3NhCyBnFuoGx30rBBJVEZK-LPlItlsdc9CYVNHYinEz0J7j4mO3zmSslOVfUjo2M9edXcWa7sXcdm8MgriUDfHPxF-9I_edbpJRSgYtAzQJMm7TZNRx1P8nnogX7SyKpnJArbnhExNBjkJWKraAGWyxWuXcFRnnjJDqe-Gnu6XpZKOXQDTtg/s1212/healthy-git.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Healthy Git" border="0" width="600" data-original-height="476" data-original-width="1212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipLlI6Sg3NhCyBnFuoGx30rBBJVEZK-LPlItlsdc9CYVNHYinEz0J7j4mO3zmSslOVfUjo2M9edXcWa7sXcdm8MgriUDfHPxF-9I_edbpJRSgYtAzQJMm7TZNRx1P8nnogX7SyKpnJArbnhExNBjkJWKraAGWyxWuXcFRnnjJDqe-Gnu6XpZKOXQDTtg/s600/healthy-git.png"/></a></div>
Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-55372909490565364892022-06-21T20:14:00.002+03:002022-06-21T20:14:20.310+03:00Εγκατάσταση και ρυθμίσεις του i3-wm στο openSUSE<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQlq4fX88eEFff__wlFgvU841LvcEAhqcBcakYsv9GDapG2xGsIbUzNN5MI298iAPxpzXvAF7v8jPnwQVDj0LcMpZg7YwalvU5RWIzFD3XdJ5-oXn9QbEI6d0Ac0PC5IChxoR83UtWqR1E/s436/i3-logo.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="i3 logo" border="0" width="600" data-original-height="146" data-original-width="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQlq4fX88eEFff__wlFgvU841LvcEAhqcBcakYsv9GDapG2xGsIbUzNN5MI298iAPxpzXvAF7v8jPnwQVDj0LcMpZg7YwalvU5RWIzFD3XdJ5-oXn9QbEI6d0Ac0PC5IChxoR83UtWqR1E/s600/i3-logo.png"/></a></div>
<h1>ΕΠΙΛΟΓΗ ΓΡΑΦΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ</h1>
Κατά την μετάβασή σας από Windows σε Linux, θα επιλέξετε <a href="https://eiosifidis.blogspot.com/2014/01/kaliteri-dianomi.html" target="_blank">ποια διανομή σας βολεύει περισσότερο</a> (από πλευράς εργαλείων για την δουλειά που θέλετε τον υπολογιστή) και στη συνέχεια επιλέγετε ποιο γραφικό περιβάλλον σας αρέσει περισσότερο. Προσωπικά χρησιμοποιώ <a href="https://eiosifidis.blogspot.com/search/label/Gnome" target="_blank">GNOME</a> και έχω μάθει τις περισσότερες ρυθμίσεις του. Δεν συστήνω άλλο γραφικό περιβάλλον σε νέους χρήστες, γιατί γνωρίζω ότι θα μου τηλεφωνήσουν για κάποια ρύθμιση και είμαι σίγουρος ότι μπορώ να τους βοηθήσω.<br><br>
Τελευταία χρησιμοποιώ για εκπαιδευτικούς σκοπούς κάποιους υπολογιστές με όχι και τόσο προηγμένες δυνατότητες. Μιλάμε για 1GB μνήμη, για 4GB μνήμη. Έχω εγκατεστημένο ένα θεωρητικά απλό γραφικό περιβάλλον, αλλά έχω εγκαταστήσει και τον διαχειριστή παραθύρων <a href="https://i3wm.org/" target="_blank">i3wm</a>. Με βόλεψε αρκετά και πλέον δεν μου είναι δύσκολο να το χρησιμοποιήσω και σε πιο δυνατούς υπολογιστές. Οπότε ξεκίνησα την εγκατάσταση και την ρύθιση. Βρήκα κάποια έτοιμα αρχεία ρυθμίσεων και προσάρμοσα έτσι όπως με βολεύουν. Θα τα μοιραστώ μαζί σας εδώ. <br><br>
<h2>ΕΓΚΑΤΑΣΤΑΣΗ</h2>
Η εγκατάσταση είναι πολύ απλή. Υπάρχει στο <a href="https://en.opensuse.org/I3" target="_blank">wiki στο openSUSE</a>. Γίνεται με μια απλή εντολή:<br>
<div class="code">
sudo zypper install i3 dmenu i3status
</div><br />
Επειδή θα χρειαστούμε και κάποια εργαλεία (θα αναφέρω παρακάτω) καλύτερα να τα εγκαταστήσετε με τη μία, με την εντολή:<br>
<div class="code">
sudo zypper install i3 i3status i3lock dmenu gtk-doc gobject-introspection dh-autoreconf autoconf lxappearance automake libtool glib2-devel feh arandr rofi compton gtk-chtheme libnotify4 NetworkManager-applet maim xclip byzanz feh perl-Sys-MemInfo
</div><br />
Έτοιμο...<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfEMhArWSZGzwfowygnu3XrfGVj-n1bi4pt6nPuVmvItzEYP6tv09-rmqJqAjD8IpW3dUO28UR8DvY_Wcmm3XgJUSy9oSNISk6MBm0if6S9ATkz_AgvEljUAT4BCbh2Vjw8oUrc-7Rfa18/s0/i3-desktop.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE i3wm" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfEMhArWSZGzwfowygnu3XrfGVj-n1bi4pt6nPuVmvItzEYP6tv09-rmqJqAjD8IpW3dUO28UR8DvY_Wcmm3XgJUSy9oSNISk6MBm0if6S9ATkz_AgvEljUAT4BCbh2Vjw8oUrc-7Rfa18/s0/i3-desktop.jpg"/></a></div>
<br><br>
<h2>ΡΥΘΜΙΣΕΙΣ</h2>
Το παιχνίδι θα παιχτεί στις ρυθμίσεις. Στο τέλος θα σας έχω link με τις δικές μου ρυθμίσεις. Εδώ θα δούμε 2-3 πραγματάκια. Όλα θα ρυθμιστούν στο αρχείο <b>.config/i3/config</b>.<br><br>
<h3>ΠΛΗΚΤΡΟ MOD</h3>
Πλήκτρο mod είναι αυτό που χρησιμοποιείται για διάφορες λειτουργίες (όπως να ανοίξετε ένα πρόγραμμα). Εγώ χρησιμοποιώ το πλήκτρο Windows (ή super key), επειδή θα χρησιμοποιήσω το alt για αλλαγή γλώσσας. Το πλήκτρο ρυθμίζεται κατά την πρώτη εκκίνηση του i3wm αλλά μπορείτε να το αλλάξετε και μετά. Εγώ έχω αυτά στην κορυφή του αρχείου config.<br>
<div class="code">
# Alt key<br>
# set $mod Mod1<br>
<br><br>
# Windows key<br>
set $mod Mod4
</div><br />
<br>
<h3>ΔΙΚΤΥΟ</h3>
Το δίκτυο είναι μεγάλο μανίκι. Στο netbook χρησιμοποιώ το <b>wicd-curses</b>. Στο openSUSE χρησιμοποιώ το <b>nm-applet</b> (στην φωτογραφία είναι αυτό που βλέπετε κάτω δεξιά). Γενικά υπάρχει τρόπος σύνδεσης στο ασύρματο δίκτυο μέσω τερματικού, αλλά δυσκολεύει πολλούς (και εμένα). Οπότε έψαξα ένα πιο εύκολο τρόπο. Το συγκεκριμένο applet έγινε εγκατάσταση με το πακέτο <b>NetworkManager-applet</b>. Πρόσθεσα στο τέλος του αρχείου config τις γραμμές.<br>
<div class="code">
# Network<br>
exec nm-applet
</div>
<br><br>
Εάν είστε λίγο πιο hardcore τύποι, μπορείτε να συνδεθείτε με τη <a href="https://en.opensuse.org/SDB:WiFi" target="_blank">βοήθεια του YaST</a>. Όμως καλύτερα να ανοίξετε ένα τερματικό (<b>mod+enter</b>) και να γράψετε την εντολή:<br>
<div class="code">
nmtui
</div>
<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpj_yWeq_uLnWs39ShpeYmm7u9KIpznuNH85oFK6e2PBIILo-BVhqr6isCojRNSIFDGN95Z-SADstG2zxL4poNuwoG7ov-0RBSqMXzCMhnmm4NFoXbDosXwqR6y8l6WvuQhZ5vHWB_8GUm/s0/i3-nmtui.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE i3wm nmtui" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpj_yWeq_uLnWs39ShpeYmm7u9KIpznuNH85oFK6e2PBIILo-BVhqr6isCojRNSIFDGN95Z-SADstG2zxL4poNuwoG7ov-0RBSqMXzCMhnmm4NFoXbDosXwqR6y8l6WvuQhZ5vHWB_8GUm/s0/i3-nmtui.png"/></a></div>
<br>
Βλέπετε ότι η οθόνη είναι μεν στο τερματικό αλλά μπορείτε να χρησιμοποιήσετε τα βελάκια. Εάν επιλέξετε το ενεργοποιήστε μια σύνδεση, θα μπορείτε να επιλέξετε το ασύρματο δίκτυο που επιθυμείτε...<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihrZiYD7bTcYyncLjqvAk-ljxr4trh0erExjHl5N4ocLUO4SOmMJsMDbmhUAoElpSzHRnBYEj5YiHCCPPkNaomVdzochHYrmxIzOt4kRIBSL74Az_XAjPUrfPAEsqEK1yAa_hBEMUrC_F5/s0/i3-nmtui-connect.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE i3wm επιλογή ασύρματου δικτύου" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihrZiYD7bTcYyncLjqvAk-ljxr4trh0erExjHl5N4ocLUO4SOmMJsMDbmhUAoElpSzHRnBYEj5YiHCCPPkNaomVdzochHYrmxIzOt4kRIBSL74Az_XAjPUrfPAEsqEK1yAa_hBEMUrC_F5/s0/i3-nmtui-connect.png"/></a></div>
<br><br>
<h3>ΕΝΑΛΛΑΓΗ ΓΛΩΣΣΑΣ</h3>
Όπως είπα παραπάνω, άφησα το πλήκτρο alt για να κάνω την αλλαγή της γλώσσας. Πρόσθεσα στο τέλος του αρχείου config την εντολή:<br>
<div class="code">
# Layout<br>
exec "setxkbmap -layout us,el"<br>
exec "setxkbmap -option 'grp:alt_shift_toggle'"
</div>
<br />
Μια άλλη εναλλακτική είναι να προσθέστε την παρακάτω γραμμή.<br>
<div class="code">
# Layout<br>
exec_always "setxkbmap -option 'grp:alt_shift_toggle' -layout us,el -variant ,qwerty"</div>
<br />
Στο αρχείο <b>/etc/locale.conf</b> είχα τα παρακάτω:<br>
<div class="code">
LANG="el_GR.UTF-8"
</div>
<br />
Ίσως να χρειάζεται να είναι διαφορετικό. Αν δεν σας αλλάζει η γλώσσα, θα πρεπει να πειράξετε αυτό το αρχείο.
<br><br>
<h3>ΠΡΟΣΘΗΚΗ WALLPAPER</h3>
Αυτό δεν είναι απαραίτητο. Απλά προσφέρει λίγη ομορφιά. Θα χρειστεί να έχετε εγκατεστημένο το πρόγραμμα <b>feh</b>. Εγώ έχω μια φωτογραφία και την έχω προσέσει σταθερά με την παρακάτω γραμμή στο τέλος του αρχείου config.<br>
<div class="code">
# Wallpaper<br>
exec --no-startup-id feh --bg-scale ~/Pictures/opensuse-wallpaper.jpg
</div>
<br />
Μια εναλλακτική, είναι να φτιάξετε ένα κατάλογο Wallpapers μέσα στον κατάλογο Pitures και να βάλετε όλα τα αρχεία που σας αρέσουν. Στη συνέχεια προσθέστε την παρακάτω γραμμή στο τέλος του αρχείου config και κάθε φορά που ανοίγει ο υπολογιστής, θα εμφανίζεται διαφορετική φωτογραφία στο background.<br>
<div class="code">
# Wallpaper<br>
exec --no-startup-id feh --randomize --bg-scale ~/Pictures/Wallpapers/*
</div>
<br />
<br>
<h3>ΗΧΟΣ</h3>
Η αυξομοίωση του ήχου είναι ένα πρόβλημα. Πρόσθεσα τα παρακάτω:<br>
<div class="code">
# Volume<br>
bindsym $mod+comma exec amixer set Master -q 5%-<br>
bindsym $mod+period exec amixer set Master -q 5%+
</div>
<br />
Ουσιαστικά πατώντας το mod και το κόμμα, μειώνεται ο ήχος ενώ με το mod και την τελεία, αυξάνεται ο ήχος.
<br><br>
<h3>ΛΗΨΗ ΣΤΙΓΜΙΟΤΥΠΟΥ ΟΘΟΝΗΣ</h3>
Δοκίμασα πολλές λύσεις. Κάποιες δούλεψαν, κάποιες όχι. Θα γράψω πρώτα αυτή που χρησιμοποιώ και μετά τις υπόλοιπες. Σχεδόν για όλες τις λύσεις, χρειάζεται να έχετε εγκατεστημένα τα προγράμματα <b>maim, xclip, byzanz</b>. <br><br>
Κάπου ενδιάμεσα στο αρχείο config πρόσθεσα τις παρακάτω γραμμές.<br>
<div class="code">
# Printscreen<br>
# Screenshots<br>
bindsym Print exec --no-startup-id maim "/home/$USER/Pictures/Screenshot-$(date -Iseconds | cut -d'+' -f1).png"<br>
bindsym $mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) "/home/$USER/Pictures/Screenshot-$(date -Iseconds | cut -d'+' -f1).png"<br>
bindsym Shift+Print exec --no-startup-id maim --select "/home/$USER/Pictures/Screenshot-$(date -Iseconds | cut -d'+' -f1).png"<br>
<br>
## Clipboard Screenshots<br>
bindsym Ctrl+Print exec --no-startup-id maim | xclip -selection clipboard -t image/png<br>
bindsym Ctrl+$mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) | xclip -selection clipboard -t image/png<br>
bindsym Ctrl+Shift+Print exec --no-startup-id maim --select | xclip -selection clipboard -t image/png
</div>
<br />
Τελειώσαμε με το αρχείο config. Απλά για reference, σας αφήνω από την ιστοσελίδα του project, την χρήση του πληκτρολογίου.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihOiyCh5ybXSaTRRHmL4D0JR05_Phr0_4MM5F4KzV0vA_FA-aeUNoMTGXwsgG4amZ2bjtL7yGX5jbwHOyAt9N-ikgLAAH2YXMxOh6JCV3pqiPI0Y_zx_SfPzLZUlfsmFdT6she5Fx5qqR_/s0/keyboard-layer1.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="i3 χρήση πληκτρολογίου" border="0" data-original-height="300" data-original-width="900" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihOiyCh5ybXSaTRRHmL4D0JR05_Phr0_4MM5F4KzV0vA_FA-aeUNoMTGXwsgG4amZ2bjtL7yGX5jbwHOyAt9N-ikgLAAH2YXMxOh6JCV3pqiPI0Y_zx_SfPzLZUlfsmFdT6she5Fx5qqR_/s0/keyboard-layer1.png"/></a></div>
<br><br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi_xoc8d-Lm1B3BNg1WHc4EkC05kDyAo8oUtbJ8YMVaCtbVoTT3kGL4y7NxZlnaz9Mmut61cvVW7vdLQnPnuI_h9E9m7bfpCm9NnVCmUHLJKHLgnjGg35heOFJ5Wb4Qmhq_-jRQz4NP-JK/s0/keyboard-layer2.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="i3 χρήση πληκτρολογίου" border="0" data-original-height="300" data-original-width="900" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi_xoc8d-Lm1B3BNg1WHc4EkC05kDyAo8oUtbJ8YMVaCtbVoTT3kGL4y7NxZlnaz9Mmut61cvVW7vdLQnPnuI_h9E9m7bfpCm9NnVCmUHLJKHLgnjGg35heOFJ5Wb4Qmhq_-jRQz4NP-JK/s0/keyboard-layer2.png"/></a></div><br>
Επίσης μπορείτε να <a href="https://github.com/iosifidis/dot-files/blob/master/i3wm/i3%20-%20Reference%20Card.pdf" target="_blank">κατεβάσετε και το αρχείο pdf</a> με όλες τις λειτουργίες των συνδυασμών των πλήκτρων.
<br><br>
<h2>ΡΥΘΜΙΣΕΙΣ ΑΡΧΕΙΟΥ .i3status.conf</h2>
Αυτο είναι ένα αρχείο που θα το αποθηκεύσετε στο home. Ουσιαστικά θα κάνει την ρύθμιση με τις πληροφορίες που θέλετε να φαίνεται στην κάτω μπάρα.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_iZXE8ReWpWknKzsbuaO7ysTwA8BSr6NBt-WJpZVZZ6Gr4y0TnLnz3IWVtDliqkAsvbCppIbdXXQZKGlHhXThqjFBuqKNfOfu2dj1F2c2fUyUzgMKgE7TeLh4Ro2FGqwilYJl01K4Fe1B/s0/i3-status.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="i3 status μπάρα" border="0" data-original-height="38" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_iZXE8ReWpWknKzsbuaO7ysTwA8BSr6NBt-WJpZVZZ6Gr4y0TnLnz3IWVtDliqkAsvbCppIbdXXQZKGlHhXThqjFBuqKNfOfu2dj1F2c2fUyUzgMKgE7TeLh4Ro2FGqwilYJl01K4Fe1B/s0/i3-status.jpg"/></a></div>
Βλέπουμε στην παραπάνω μπάρα, εμφανίζονται με την σειρά:<br>
<ol>
<li>Ένταση ηχείων</li>
<li>Κατανάλωση μνήμης</li>
<li>Φόρτωση διεργασιών (αριθμός των διεργασιών έτοιμων προς εκτέλεση για τα τελευταία 1 λεπτό, 5 λεπτά, 15 λεπτά)</li>
<li>Ελεύθερος αποθηκευτικός χώρος στο /home</li>
<li>Ασύρματο δίκτυο (IP, ποιότητα, ταχύτητα)</li>
<li>Ενσύρματο δίκτυο (IP, ποιότητα, ταχύτητα)</li>
<li>Ημερομηνία και ώρα</li>
<li>nm-applet (για σύνδεση στο ασύρματο με την χρήση ποντικιού)</li>
</ol>
<br><br>
Δείτε μερικές φωτογραφίες:<br><br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBpi27l8Bas82IqTem-GVWBpr3GRGF3iKPie04XTP7J1xKhREnPahAFT1ccZTdsMrbK4u_qPaFsCkHSNtHSTfuJ_XwFWAJIgjh7t3-dqsEz4-B1wqlgWx3TmrMUVpn7y7661gMo-CdioOa/s0/i3-dmenu.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="i3 dmenu" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBpi27l8Bas82IqTem-GVWBpr3GRGF3iKPie04XTP7J1xKhREnPahAFT1ccZTdsMrbK4u_qPaFsCkHSNtHSTfuJ_XwFWAJIgjh7t3-dqsEz4-B1wqlgWx3TmrMUVpn7y7661gMo-CdioOa/s0/i3-dmenu.jpg"/></a>i3 dmenu: Με την χρήση του πλήκτρου mod (πλήκτρο με το σήμα των windows) και το d, ανοίγει το πλαίσιο αυτό. Εδώ πληκτρολογείτε το πρόγραμμα που θελετε να ανοίξετε.</div>
<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3scW5u1gL555bjENNVj1rQPKFxsoqJIt3NabM2Z3julXe_2kHtZF4ErCoVozZ7MLI68EOLvk1akSS_3MtMx894iOBDEG6Qky8DxGAAaEAATk4ZVSajxuL2BWyg53nTiJDaIL3RoWLCk84/s0/i3-terminal.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="i3 τερματικά" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3scW5u1gL555bjENNVj1rQPKFxsoqJIt3NabM2Z3julXe_2kHtZF4ErCoVozZ7MLI68EOLvk1akSS_3MtMx894iOBDEG6Qky8DxGAAaEAATk4ZVSajxuL2BWyg53nTiJDaIL3RoWLCk84/s0/i3-terminal.jpg"/></a>Υπάρχουν και προγράμματα που μπορείτε να κάνετε αυτό (Tmux). Εδώ βλέπουμε 3 τερματικά ανοικτά (μπορείτε να έχετε και άλλα προγράμματα ανοικτά)</div>
<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDwdS3FBL9bVK5NO261qmaJoqlukfUyFkubNkzd-_x3QyLdQaJOgJercPpPnyIuo2zSJiKBFMai6_JhBc4eXoBJ8gZSM0J_yQyBO1ghfN6D59iYUnxmHN0Qmdao7W1AjlWMRVGUEH72qTZ/s0/i3-firefox.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="i3 Firefox" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDwdS3FBL9bVK5NO261qmaJoqlukfUyFkubNkzd-_x3QyLdQaJOgJercPpPnyIuo2zSJiKBFMai6_JhBc4eXoBJ8gZSM0J_yQyBO1ghfN6D59iYUnxmHN0Qmdao7W1AjlWMRVGUEH72qTZ/s0/i3-firefox.jpg"/></a>Εδώ είναι ανοικτό το Firefox με 2 παράθυρα ανοικτά και τακτοποιημένα σε καρτέλες (πάνω φαίνεται να είναι χωρισμένα στη μέση)</div>
<br><br>
Όλα τα αρχεία βρίσκονται <a href="https://github.com/iosifidis/dot-files/tree/master/i3wm" target="_blank">εδώ</a>:<br><br>
<ul>
<li>Αποθήκευση του <a href="https://github.com/iosifidis/dot-files/blob/master/i3wm/config" target="_blank">config</a> στον φάκελο .config/i3/</li>
<li>Αποθήκευση του αρχείου <a href="https://github.com/iosifidis/dot-files/blob/master/i3wm/.i3status.conf" target="_blank">.i3status.conf</a> στον φάκελο του χρήστη (~)</li>
</ul>
<br><br>
Είχα γράψει παλιά ένα άρθρο:<br>
<a href="https://eiosifidis.blogspot.com/2016/03/i3-window-manager.html" target="_blank">Διαχειριστής παραθύρων i3. Ότι πιο γρήγορο έχω χρησιμοποιήσει...στο openSUSE</a>
<br><br>
Περιέχει παλιές ρυθμίσεις. Αυτό είναι ανανεωμένο με τελευταίες πληροφορίες.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-11154321571300651642022-02-08T12:00:00.001+02:002022-02-08T14:10:42.870+02:00Αυτόματη εγκατάσταση openSUSE με χρήση του autoyast<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFlqFOV7Crshv82AwSWMNgRxzUaszi8U-sF1eZ7p7BAdIfucSWiV4Ps8UOG1o_DSv82pPyB0Gp9KH4dHgem3zboYHhnxAgDRKWUM0v00YLF4L8yfjDRpBSefsO7kfAmYbmauQvl6G97LVR/s485/Opensuse-logo.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="304" data-original-width="485" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFlqFOV7Crshv82AwSWMNgRxzUaszi8U-sF1eZ7p7BAdIfucSWiV4Ps8UOG1o_DSv82pPyB0Gp9KH4dHgem3zboYHhnxAgDRKWUM0v00YLF4L8yfjDRpBSefsO7kfAmYbmauQvl6G97LVR/s320/Opensuse-logo.png"/></a></div>
<h1>ΠΡΟΒΛΗΜΑ</h1>
Έστω ότι έχετε να εγκαταστήσετε πολλούς ίδιους υπολογιστές σε ένα εργαστήριο ή μια εταιρία. Ο παραδοσιακός τρόπος σκέψης είναι είτε να βάλετε να εγκαθίστανται οι υπολογιστές ανά 2 (ώστε να τους προσέχετε), είτε να εγκαταστήσετε ένα υπολογιστή, έτσι όπως το θέλετε (με προγράμματα κλπ), στη συνέχεια να πάρετε το image του δίσκου με το clonezilla (<a href="https://eiosifidis.blogspot.com/2009/08/clonezilla.html" target="_blank">δείτε πως</a>) και να το περάσετε στους άλλους υπολογιστές.<br><br>
Ο πιο έξυπνος τρόπος είναι να κάνετε όλη αυτή τη διαδικασία με τη χρήση του <a href="https://doc.opensuse.org/projects/autoyast/" target="_blank">autoyast</a>.<br><br>
Εδώ θα δούμε αρχικά πως δημιουργείται το αρχείο <b>autoinst.xml</b> και στη συνέχεια πως γίνεται η εγκατάσταση χωρίς χέρια.<br><br>
<h2>ΕΓΚΑΤΑΣΤΑΣΗ autoyast</h2>
Πρώτα πρέπει να εγκαταστήσουμε το module.<br>
<div class="code">
sudo zypper in autoyast2 autoyast2-installation
</div>
<br>
<h2>ΔΗΜΙΟΥΡΓΙΑ ΑΡΧΕΙΟΥ autoinst.xml</h2>
Η δημιουργία μπορεί να γίνει με 2 τρόπους. Ο ένας είναι να ξεκινήσετε να γράφετε μόνοι σας το αρχείο αυτό με τη χρήση της τεκμηρίωσης. Δεν το συνιστούμε, γιατί θα πάρει πάρα πολύ χρόνο με τις δοκιμές. Ο άλλος πιο εύκολος τρόπος είναι να εγκαταστήσετε έναν υπολογιστή με <a href="https://www.opensuse.org/" target="_blank">openSUSE</a> (<a href="https://get.opensuse.org/leap" target="_blank">Leap</a> ή <a href="https://get.opensuse.org/tumbleweed" target="_blank">Tumbleweed</a>) και στη συνέχεια να εκτελέσετε μια εντολή, ώστε να λάβετε το αρχείο που θα δημιουργηθεί. Πάμε να δούμε πως γίνεται αυτό και ποιες ιδιαιτερότητες έχει.<br><br>
Ανοίξτε τερματικό και δώστε την εντολή:<br>
<div class="code">
sudo yast2 clone_system
</div>
Όπως λέει και η οθόνη, το αποτέλεσμα, θα βρεθεί στον κατάλογο <b>/root/autoinst.xml</b>.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdMEE_6EdlPJf-rQ6wx4j64z8EuHDoxHS9KFwqfwr7wkf1JaioWdniLvI9rA4pA1yTbQAeih2oQumgu0KDYmx_pdDnObIU8U5cgUePoE8QMsE1zu2LT9Rhy_MtV2We4CKyI3x_1GOxuzyG/s0/autoinstall-initial.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Δημιουργία autoinst.xml" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdMEE_6EdlPJf-rQ6wx4j64z8EuHDoxHS9KFwqfwr7wkf1JaioWdniLvI9rA4pA1yTbQAeih2oQumgu0KDYmx_pdDnObIU8U5cgUePoE8QMsE1zu2LT9Rhy_MtV2We4CKyI3x_1GOxuzyG/s0/autoinstall-initial.png"/></a></div>
Πρέπει να περιμένετε λίγο γιατί κλωνοποιεί όλο το σύστημά σας.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRnnNLkgs8pVMaI9pMx29YiddHPF6XTj142mEfSAw7mTazhLjhMzAlvnaWe1l1ytevVcCBEk2KsuCPdt6onYJu7WdLtcM97hlgXAzUmslJiCPB_zgv_rkPFJTkN4Y0EtDabyXGWd4Nk8Iq/s0/autoinstall-wait.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Αναμονή για δημιουργία του aytoinst.xml" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRnnNLkgs8pVMaI9pMx29YiddHPF6XTj142mEfSAw7mTazhLjhMzAlvnaWe1l1ytevVcCBEk2KsuCPdt6onYJu7WdLtcM97hlgXAzUmslJiCPB_zgv_rkPFJTkN4Y0EtDabyXGWd4Nk8Iq/s0/autoinstall-wait.png"/></a></div>
Μια εναλλακτική λύση είναι η εντολή:<br>
<div class="code">
/sbin/yast2 autoyast
</div>
Θα σας ανοίξει το γραφικό YaST για να κάνετε τις ρυθμίσεις και μετά να αποθηκεύσετε.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdJ5oq1ywVPqeWFo8VXtJzDDf_ZIHFP3zy1QeHA6TbrmOxbR_Rgc2-OBaKk47Bug7KVXj6QmboqVrjUOomhHKTC2qOXc1ELKKTWggvRR3A_hYtWJo-oPuBTb0o5Rt5MHRV4yO3D7kpXlgL/s0/autoyast-gui.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="YaST δημιουργία του αρχείου autoinst.xml" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdJ5oq1ywVPqeWFo8VXtJzDDf_ZIHFP3zy1QeHA6TbrmOxbR_Rgc2-OBaKk47Bug7KVXj6QmboqVrjUOomhHKTC2qOXc1ELKKTWggvRR3A_hYtWJo-oPuBTb0o5Rt5MHRV4yO3D7kpXlgL/s0/autoyast-gui.png"/></a></div>
Επειδή κατά την εγκατάσταση, μπορεί να σας ρωτήσει (δείτε παρακάτω φωτογραφία) για κάποια GPG κλειδιά πχ από το Packman ή άλλα αποθετήρια, μπορείτε να ρυθμίσετε εδώ να τα αποδέχεστε. Μπορείτε να πάρετε και να επεξεργαστείτε το αρχείο, σύμφωνα με τα δεδομένα σας και με ένα απλό επεξεργαστή κειμένου. Απλά δείτε στην τεκμηρίωση που είναι αυτό που θέλετε να αλλάξετε. Υπάρχουν κάποια σημεία που πρέπει να δούμε πιο προσεκτικά, αλλά θα τα εξηγηθούν προς το τέλος.<br><br>
<h2>ΕΓΚΑΤΑΣΤΑΣΗ ΜΕ ΧΡΗΣΗ ΑΡΧΕΙΟΥ autoinst.xml</h2>
Ξεκινήστε τον υπολογιστή με το DVD του <a href="https://www.opensuse.org/" target="_blank">openSUSE</a> (<a href="https://get.opensuse.org/leap" target="_blank">Leap</a> ή <a href="https://get.opensuse.org/tumbleweed" target="_blank">Tumbleweed</a>). Στην οθόνη που εμφανίζεται, πατήστε τα βελάκια να μετακινηθείτε στο <b>Installation</b>. Στο πλαίσιο γράψτε την παρακάτω εντολή.<br>
<div class="code">
netsetup=1 autoyast=https://raw.githubusercontent.com/iosifidis/dot-files/master/openSUSE/autoinst-t.xml
</div>
<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCx0cyQ3VgM6PZ-PuG37G1NS2pLMO5QvIJTMG-17_CCmhMKK6VOpec2to8SC6szlg_lIQFKhLlknqxx8KIPF0KzOSeUrFNwgzZAZ7xVVjMcV9hlKWVRomRsMo6l6vWjkQcjzdUFfJ5XnWy/s0/autoyast-install.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εγκατάσταση με autoyast" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCx0cyQ3VgM6PZ-PuG37G1NS2pLMO5QvIJTMG-17_CCmhMKK6VOpec2to8SC6szlg_lIQFKhLlknqxx8KIPF0KzOSeUrFNwgzZAZ7xVVjMcV9hlKWVRomRsMo6l6vWjkQcjzdUFfJ5XnWy/s0/autoyast-install.png"/></a></div>
Στην παραπάνω εικόνα, να σημειώσουμε τα εξής:<br><br>
1. Χρησιμοποιείται η έκδοση openSUSE Tumbleweed.<br>
2. Ξεκινάει το δίκτυο με το netsetup=1. Θα μας ρωτήσει εάν θέλουμε να ρυθμίσουμε μόνοι μας το δίκτυο ή να πάρει τις ρυθμίσεις από τον DHCP.<br>
3. Γίνεται χρήση ενός αρχείου από το github. Ποιες είναι πιο σημαντικές τιμές που παίρνει η παράμετρος autoyast;<br><br>
- <b>autoyast=usb:///PATH</b>: Ανακτά το αρχείο ελέγχου από συσκευές USB (το autoyast θα αναζητήσει όλες τις συνδεδεμένες συσκευές USB).<br>
- <b>autoyast=https://[user:password@]SERVER/PATH</b>: Ανακτά το αρχείο ελέγχου από έναν διακομιστή με χρήση HTTPS. Το όνομα χρήστη και το συνθηματικό είναι προαιρετικά.<br><br>
Περιμένετε λοιπόν να τελειώσει. Θα κάνει και επανεκκίνηση να ξέρετε. Και είστε έτοιμοι.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzekG9kkRby2oIJ5OGNSdOhA82To9Sv3kqXLzASGDceNR0k_uHNM4SRxzVbI8WnVAcRGJgCDJzlhlWuELJdH2mxNExGcn_3lX58E0tB22FbLFBTLTEocZm7H1qf_-DoZx0nMRKTjOht4o_/s0/autoyast-installing.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Autoyast κατά την εγκατάσταση" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzekG9kkRby2oIJ5OGNSdOhA82To9Sv3kqXLzASGDceNR0k_uHNM4SRxzVbI8WnVAcRGJgCDJzlhlWuELJdH2mxNExGcn_3lX58E0tB22FbLFBTLTEocZm7H1qf_-DoZx0nMRKTjOht4o_/s0/autoyast-installing.png"/></a></div>
<br><br>
<h2>ΠΙΘΑΝΑ ΠΡΟΒΛΗΜΑΤΑ</h2>
<b>1. Ερωτήματα κατά την εγκατάσταση</b><br><br>
Όπως ειπώθηκε, αν έχετε προσθέσει και αποθετήρια που είναι εκτός openSUSE, θα ερωτηθείτε εάν αποδέχεστε το κλειδί. Οπότε έτσι "διακόπτεται" η εγκατάσταση χωρίς χέρια.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLyw17qn0IYTFElbQegRtA6_EbBrK3yBcBaPCW-I58Zue9Y-oNlIxxkVCaE2TGu26tv9yO8SeuGuGCC0ELqCzFG6JiYSMki9r-X8NMXWBZbeWor9u4aPytBj3_SAJvE80-BP08j7IKiYIg/s0/autoyast-untrusted.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Αποδοχή Untrusted GnuPG key" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLyw17qn0IYTFElbQegRtA6_EbBrK3yBcBaPCW-I58Zue9Y-oNlIxxkVCaE2TGu26tv9yO8SeuGuGCC0ELqCzFG6JiYSMki9r-X8NMXWBZbeWor9u4aPytBj3_SAJvE80-BP08j7IKiYIg/s0/autoyast-untrusted.png"/></a></div>
Μπορείτε όμως να τα αλλάξετε, όπως είπαμε παραπάνω.<br><br>
<b>2. Χρήστης και συνθηματικό</b><br><br>
Εάν ο σχεδιασμός των μαζικών εγκαταστάσεων απαιτεί ο κάθε υπολογιστής να έχει διαφορετικό χρήστη, τότε δεν εξυπηρετεί και τόσο. Για να δούμε λίγο τα πράγματα αναλυτικά.<br><br>
Στο παραπάνω <a href="https://github.com/iosifidis/dot-files/blob/master/openSUSE/autoinst-t.xml" target="_blank">αρχείο</a>, βλέπουμε την γραμμή:<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuYvHNFwH3uUsf5grycq3r-Ef_vwAm-rgWuzK79AerzOWusB2GZ1SvDTOwbgpTbnEDaYUzf9z8Bvk4q5FNBJwzstSG33SpDuaeXQf33JEsmuTyPc1B7Y96tiB-bDGMPv7fp3nMbCEhuqC0/s0/autoyast-user.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Χρήστης autoyast" border="0" data-original-height="419" data-original-width="626" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuYvHNFwH3uUsf5grycq3r-Ef_vwAm-rgWuzK79AerzOWusB2GZ1SvDTOwbgpTbnEDaYUzf9z8Bvk4q5FNBJwzstSG33SpDuaeXQf33JEsmuTyPc1B7Y96tiB-bDGMPv7fp3nMbCEhuqC0/s0/autoyast-user.png"/></a></div>
Εδώ βλέπουμε τον χρήστη yolo και ως κωδικό βλέπουμε να είναι κρυπτογραφημένο το <b>suserocks</b> (πράγματι, το openSUSE rocks). Από την τεκμηρίωση βλέπουμε ότι μπορεί να μπει και χωρίς encryption.<br><br>
Το ίδιο θα βρείτε (με τον ίδιο κωδικό) και για τον χρήστη root. Όμως τι συμβαίνει αν τυχόν θέλουμε άλλον χρήστη; Αρχικά μπορείτε να αλλάξετε το αρχείο (αναζητείστε στο αρχείο για yolo και αντικαταστήστε με αυτό που θέλετε). Εναλλακτικά μπορείτε να κάνετε την εγκατάσταση, να μπείτε στον χρήστη root και να διαγράψετε τον χρήστη yolo. Στην συνέχεια φτιάξτε έναν χρήστη, όπως θέλετε εσείς.<br><br>
<b>3. Κατατμήσεις</b><br><br>
Το θέμα των κατατμήσεων είναι το μόνο που μπορεί να αντιμετωπίσετε πρόβλημα. Υπάρχουν πολλά σενάρια. Ένα σενάριο είναι να είναι παλιός υπολογιστής με bios. Άλλο ένα σενάριο είναι ο παλιός υπολογιστής να είναι dual boot. Το άλλο σενάριο είναι να είναι νέου τύπου υπολογιστής με UEFI και τέλος αυτός ο υποογιστής να είναι dual boot. Σε όλες αυτές τις περιπτώσεις φανταστείτε ότι ο χώρος στον δίσκο είναι διαφορετικός κάθε φορά (ειδικά στις περιπτώσεις dual boot) και έτσι θα χρειαστεί διαφορετικό αρχείο autoyast. Μπορείτε να μελετήσετε την τεκμηρίωση <a href="https://doc.opensuse.org/projects/autoyast/#CreateProfile-Partitioning" target="_blank">εδώ</a> αλλά και από την SUSE <a href="https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-configuration-installation-options.html#CreateProfile-Partitioning" target="_blank">εδώ</a>.<br><br>
Στο αρχείο που βρήκατε παραπάνω, οι κατατμήσεις παρουσιάζονται παρακάτω:<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6GW04l-uXS9eIeI5HTEGUzAogRfAyQudpNHRXBfqGRkNBOolZh-twJTMvQkZT0zte2eOtcDJoR4muEHrC8j9PDp4z9ZEJDoGsrN_mr6or0omWpdNhp1IRP4jKNYHsBusT6HTcFfMBDZRO/s0/autoyast-partitions.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Κατατμήσεις autoyast" border="0" data-original-height="646" data-original-width="403" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6GW04l-uXS9eIeI5HTEGUzAogRfAyQudpNHRXBfqGRkNBOolZh-twJTMvQkZT0zte2eOtcDJoR4muEHrC8j9PDp4z9ZEJDoGsrN_mr6or0omWpdNhp1IRP4jKNYHsBusT6HTcFfMBDZRO/s0/autoyast-partitions.png"/></a></div>
<br>
Να τα δούμε λίγο αναλυτικά:<br>
1. Κατάτμηση root (/): με σύστημα αρχείων ext4 και χωρητικότητα 30GB.<br>
2. Κατάτμηση swap: με χωρητικότητα 8GB.<br>
3. Κατάτμηση home (/home): με σύστημα αρχείων ext4 και χωρητικότητα στο auto.<br><br>
Στην τεκμηρίωση αναφέρει ότι το autoyast μπορεί να δημιουργήσει τον προεπιλεγμένο τρόπο εγκατάστασης με το root με σύστημα αρχείων btrfs και το home με σύστημα XFS. Επίσης αναφέρει ότι σε περίπτωση που λείπει κάποια κατάτμηση, μπορεί να την δημιουργήσει αυτό. Επειδή δεν τα έχω δοκιμάσει, δεν μπορώ να εκφέρω γνώμη, αλλά για να το λέει στην επίσημη τεκμηρίωση, μάλλον θα ισχύει.<br><br>
Πηγές για περισσότερη μελέτη:<br>
1. Τεκμηρίωση <a href="https://doc.opensuse.org/projects/autoyast/" target="_blank">https://doc.opensuse.org/projects/autoyast/</a>.<br>
2. Παράμετροι για την εκκίνηση <a href="https://doc.opensuse.org/documentation/leap/startup/html/book-startup/cha-boot-parameters.html" target="_blank">https://doc.opensuse.org/documentation/leap/startup/html/book-startup/cha-boot-parameters.html</a>Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-64458832573932377622022-01-08T00:00:00.001+02:002022-01-08T11:47:14.436+02:00Εγκατάσταση openSUSE σε απομακρυσμένο υπολογιστή<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFlqFOV7Crshv82AwSWMNgRxzUaszi8U-sF1eZ7p7BAdIfucSWiV4Ps8UOG1o_DSv82pPyB0Gp9KH4dHgem3zboYHhnxAgDRKWUM0v00YLF4L8yfjDRpBSefsO7kfAmYbmauQvl6G97LVR/s485/Opensuse-logo.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE logo" border="0" width="400" data-original-height="304" data-original-width="485" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFlqFOV7Crshv82AwSWMNgRxzUaszi8U-sF1eZ7p7BAdIfucSWiV4Ps8UOG1o_DSv82pPyB0Gp9KH4dHgem3zboYHhnxAgDRKWUM0v00YLF4L8yfjDRpBSefsO7kfAmYbmauQvl6G97LVR/s400/Opensuse-logo.png"/></a></div>
<h1>ΠΡΟΒΛΗΜΑ</h1>
Είστε γνώστης του λειουργικού Linux και εδώ και ένα χρόνο έχετε "πρήξει" τον φίλο σας πόσο καλό είναι, έτσι ώστε να το εγκαταστήσει και αυτός. Όμως είναι ανένδοτος παραθυράς.<br><br>
Σας τυχαίνει μια θέση εργασίας που είναι μακρυά από τον τόπο κατοικίας σας (είτε στην ίδια χώρα είτε σε άλλη). Προφανώς δέχεστε και μετακομίζετε.<br><br>
Αφού έχετε τακτοποιήσει τη ζωή σας, δέχεστε ένα τηλέφωνο από τον φίλο σας και σας λέει να εγκαταστήσετε γι'αυτόν μια διανομή Linux στον υπολογιστή του. Τώρα φίλε μου είναι αργά....<br><br>
<b>ΗΘΙΚΟ ΔΙΔΑΓΜΑ:</b> Εάν έχετε ένα φίλο που ασχολείται με το άθλημα και εσείς του απαντάτε κάτι του στυλ: "Μου αρέσουν πολύ τα Linux και η όλη φιλοσοφία. Όταν πάρω νέο laptop θα σου δώσω το παλιό να μου περάσεις τα Linux για να πειραματιστώ" (<a href="https://eiosifidis.blogspot.com/2017/01/megaluteres-kotsanes-ever.html" target="_blank">δείτε και άλλες παρόμοιες δικαιολογίες</a>), τότε μην περιμένετε ποτε θα πάρετε το νέο laptop. Μπορεί να ΜΗΝ αγοράσετε ΠΟΤΕ νέο laptop. Μπορεί όταν το πάρετε, ο φίλος σας να έχει μετακομίσει ή απλά να μην έχει και τόσο ελεύθερο χρόνο να σας διαθέσει αφού μπορεί να έχει κάνει οικογένεια.<br><br>
THE END...<br><br>
Ο λόγος του άρθρου αυτού είναι δεν καταλήγει στο παραπάνω δίδαγμα. Θα δείξουμε πως μπορεί κάποιος να κάνει εγκατάσταση openSUSE σε απομακρυσμένο υπολογιστή.<br><br>
<b>ΤΙ ΘΑ ΧΡΕΙΑΣΤΕΙ</b><br><br>
<ul>
<li>Υπολογιστής (host) που θα γίνει η εγκατάσταση</li>
<li>Λήψη του DVD εγκατάστασης <a href="https://www.opensuse.org/" target="_blank">openSUSE</a> (είτε <a href="https://get.opensuse.org/leap" target="_blank">Leap</a>, είτε <a href="https://get.opensuse.org/tumbleweed" target="_blank">Tumbleweed</a>)</li>
<li>Ένα στικάκι 8GB+</li>
<li>Υπολογιστής (remote)</li>
<li>Να προηγηθεί το ξεκαθάρισμα του χώρου που θα εγκατασταθεί (αν είναι dual boot τότε να γίνει χώρος μέσα από τα Windows. Μπορεί και από το Linux αλλά χρειάζεται να έχει προηγηθεί defragment)</li>
<li>Να υπάρχει γνώση πως κάνουμε port forward στο router</li>
</ul>
<br>
<h2>ΠΡΟΕΤΟΙΜΑΣΙΑ</h2>
1. Λήψη του DVD εγκατάστασης <a href="https://www.opensuse.org/" target="_blank">openSUSE</a> (είτε <a href="https://get.opensuse.org/leap" target="_blank">Leap</a>, είτε <a href="https://get.opensuse.org/tumbleweed" target="_blank">Tumbleweed</a>).<br><br>
2. Επειδή το DVD είναι περίπου 4.5GB θα χρειαστεί ένα στικάκι από 8GB και πάνω. Μπορείτε να περάσετε το ISO στο USB με 2 τρόπους. Ο ένας είναι με τη <a href="https://www.balena.io/etcher/" target="_blank">χρήση του Etcher</a>, ενώ ο άλλος είναι με τη <a href="https://www.ventoy.net/" target="_blank">χρήση του Ventoy</a>. Προσωπικά προτιμώ το Ventoy γιατί μπορώ να βάλω στο στικάκι και άλλες διανομές. Να μην πάει χαμένος χώρος. Εσείς επιλέξτε ότι σας βολεύει.<br><br>
3. Εάν έχετε BIOS, αγνοήστε αυτό το βήμα. Απενεργοποιείστε το <b>Secure Boot</b> ενώ μπορείτε να αφήσετε το <b>UEFI</b>.<br><br>
4. Εάν δεν κάνετε εγκατάσταση dual boot (Windows και Linux), τότε αγνοήστε. Πρέπει να φτιάξετε τα partitions μέσα από τα windows. Ανοίξτε το Disk Management και επιλέξτε τον δίσκο που θα κάνετε εγκατάσταση το Linux. Εκεί θα πρέπει να μικρύνετε το partition και να φτιάξετε ένα νέο partition.<br><br>
5. Κάνετε εκκίνηση του υπολογιστή από το USB. Επιλέξτε Installation.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhF5F9j1ebrRmgvaTNW4JqZMLOIxXosEalhIc6SDgIoKmarhDwJCoBFzwc2dZCMk2BHSc1C9CF5Fod3BuP2aXhE1zJMieBRShAYMrOR0QqMV2OPK80NyWzEeoPj6taZGvDhzO1R0kAcHNw/s0/vnc-installation.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE Installation" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhF5F9j1ebrRmgvaTNW4JqZMLOIxXosEalhIc6SDgIoKmarhDwJCoBFzwc2dZCMk2BHSc1C9CF5Fod3BuP2aXhE1zJMieBRShAYMrOR0QqMV2OPK80NyWzEeoPj6taZGvDhzO1R0kAcHNw/s0/vnc-installation.png"/></a></div>
<br>
6. Εκεί θα πρέπει να γράψετε τα εξείς:<br>
<div class="code">
netsetup=1 vnc=1
</div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcr0PKS4gpHumK794OcLQWci62StP52b02jlHe9Svt5UXCuJjhPuTVx_NApqfzPl-iA5qQ5AZdzvDKXyYVJDdDMynIhAaY5JVqNMDCh75-KOwtio269JstDDOaBQ_Toe8-8QzGrfQgiePJ/s0/vnc-installation-values.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE installation values" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcr0PKS4gpHumK794OcLQWci62StP52b02jlHe9Svt5UXCuJjhPuTVx_NApqfzPl-iA5qQ5AZdzvDKXyYVJDdDMynIhAaY5JVqNMDCh75-KOwtio269JstDDOaBQ_Toe8-8QzGrfQgiePJ/s0/vnc-installation-values.png"/></a></div><br>
Ας αναλύσουμε το παραπάνω.<br><br>
<h3>ΔΙΚΤΥΟ</h3>
<b>netsetup=τιμη</b><br>
Εδώ ουσιαστικά ενεργοποιούμε το δίκτυο στην εγκατάσταση. Με την τιμή 1, απλά του λέμε ότι θέλουμε να το ενεργοποιήσουμε. Σε επόμενη φάση, θα μας ρωτήσει αν θέλουμε να ρυθμιστεί αυτόματα το DHCP.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Wa0nNz09n1pSEC_xktNvZHCh2sj31K7aFYGcwfwtBej0ohsO1N-cs2qMMPf1Nb_Quum3XybejYwMp8taVjo2SxPntuA2DLQPvu2E-s9C10VsfQRI4J5hj9Al5s3RD4wjPFeMdTukysM_/s0/vnc-question-dhcp.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Ερώτημα για αυτόματη ρύθμιση του DHCP" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Wa0nNz09n1pSEC_xktNvZHCh2sj31K7aFYGcwfwtBej0ohsO1N-cs2qMMPf1Nb_Quum3XybejYwMp8taVjo2SxPntuA2DLQPvu2E-s9C10VsfQRI4J5hj9Al5s3RD4wjPFeMdTukysM_/s0/vnc-question-dhcp.png"/></a></div>
<br>
Άλλες τιμές είναι οι εξής:<br>
- <b>netsetup=dhcp</b>: Εδώ του λέμε ότι θέλουμε να γίνει αυτόματη λήψη στοιχείων μέσω DHCP. Θα εμφανιστεί η παρακάτω οθόνη, και θα συνεχίσει η διαδικασία.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU1HpoyG6u4qwx1qVgzZOwGOJHKE9dRPRPo3HsThBsyUi8SclA3-xKkAM5nJEzjUQh0aI8YA8GhuZkwoifFwRLb-29jyVeuf-XX3WMXCQaGsqZhjmCT0LPKe31BVQvuyE1lTRKMQRCRNFo/s0/vnc-enable-dhcp.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Λήψη ρυθμίσεων από DHCP" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU1HpoyG6u4qwx1qVgzZOwGOJHKE9dRPRPo3HsThBsyUi8SclA3-xKkAM5nJEzjUQh0aI8YA8GhuZkwoifFwRLb-29jyVeuf-XX3WMXCQaGsqZhjmCT0LPKe31BVQvuyE1lTRKMQRCRNFo/s0/vnc-enable-dhcp.png"/></a></div>
<br>
- <b>netsetup=-dhcp</b>: Εδώ του λέμε ότι θέλουμε να εισάγουμε εμείς τις ρυθμίσεις δικτύου. Θα εμφανιστεί η παρακάτω οθόνη, και θα συνεχίσει η διαδικασία.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzhv15R1jOKVlyQ3SIu3Tghcz8a29ZQNx3oUSyFs_aqlBW1yW9Qyx_eSLGoVsEbiSQ55X9Fj_kZ56ke4gsT-x9jn8I3QtGibB3Nl7JMSenK4KMz8U14mj9CWlMA4kiU8Cenr1mz1MabRoJ/s0/vnc-manual-dhcp.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Χειροκίνητη ρύθμιση DCHP" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzhv15R1jOKVlyQ3SIu3Tghcz8a29ZQNx3oUSyFs_aqlBW1yW9Qyx_eSLGoVsEbiSQ55X9Fj_kZ56ke4gsT-x9jn8I3QtGibB3Nl7JMSenK4KMz8U14mj9CWlMA4kiU8Cenr1mz1MabRoJ/s0/vnc-manual-dhcp.png"/></a></div><br>
Εκτός της IP, θα σας ζητήσει και την διεύθυνση geteway, name server.<br><br>
<h3>VNC</h3>
<b>vnc=1</b><br>
Εδώ ουσιαστικά ενεργοποιούμε τον VNC server κατά την εγκατάσταση. Θα μας εμφανιστεί η οθόνη για να εισάγουμε το συνθηματικό.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgayd1Kwe5HQ05aT03H0Z4gG6kH82X1wXDmuD1LHXT4I4ALAY3HC1jLbuCNp3fXF_W7UibzJ0UDtnSs9AHvhWTCZmSD9CzeNKqqz0c72OzrN2ZQOybRQeXCF1HUukgmpuLD314iqUa3LfAP/s0/vnc-password.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εισαγωγή συνθηματικού" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgayd1Kwe5HQ05aT03H0Z4gG6kH82X1wXDmuD1LHXT4I4ALAY3HC1jLbuCNp3fXF_W7UibzJ0UDtnSs9AHvhWTCZmSD9CzeNKqqz0c72OzrN2ZQOybRQeXCF1HUukgmpuLD314iqUa3LfAP/s0/vnc-password.png"/></a></div>
<br>
Αυτό μπορεί να μην εμφανιστεί εάν εισάγετε το συνθηματικό (πχ opensuse) στην αρχή. Δηλαδή εάν δώσετε την εντολή:
<div class="code">
vnc=1 vncpassword=opensuse
</div>
Τελικά, θα καταλήξετε στην παρακάτω οθόνη.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEbFq8wPnRv7GMho9y0vFhKhVIyHGbnEUmRBjHXmNlID3MFrvjEKi3C7S6r1n69s2B1Ftp9CGglofVIn_HUSSxhFOChmVY_y8K6KlJKmXefB_q0oYMIAt1RsRJPp6sudGLk9huCBwwxa9f/s0/vnc-network.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Δίκτυο VNC" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEbFq8wPnRv7GMho9y0vFhKhVIyHGbnEUmRBjHXmNlID3MFrvjEKi3C7S6r1n69s2B1Ftp9CGglofVIn_HUSSxhFOChmVY_y8K6KlJKmXefB_q0oYMIAt1RsRJPp6sudGLk9huCBwwxa9f/s0/vnc-network.png"/></a></div>
<br>
7. <a href="https://portforward.com/" target="_blank">Port foward</a> στο Router σας. Ποιες πόρτες πρέπει να ανοίξουν; Για αρχή πρέπει να ανοίξετε τις <b>TCP 5901</b> και <b>TCP 5801</b> για την διεπαφή μέσω browser. Όπως βλέπετε στην παραπάνω φωτογραφία, λέει ότι θα χρησιμοποιηθεί η πόρτα <b>TCP 5801</b>.<br><br>
7.1 Εάν δεν θέλετε να στέλνετε την εξωτερική σας IP (δεν συνίσταται), καλό είναι να στήσετε ένα ddns και να δώσετε αυτό στον φίλο σας.<br><br>
8. Αφού δώσετε στον φίλο σας την εξωτερική IP σας (ή το ddns), τον κωδικό που εισάγατε στο vnc, τότε αυτός ξεκινάει την δράση.<br><br>
<b>Υπάρχουν δυο επιλογές:</b><br>
8.1 Η πρώτη επιλογή είναι να χρησιμοποιήσει το vnc από τερματικό. Αν ο απομακρυσμένος υπολογιστής είναι ubuntu, πρέπει να εγκαταταθεί ένα προγραμματάκι:<br>
<div class="code">
sudo apt install gvncviewer
</div>
Αφού ανοίξει το τερματικό και θα δώσει (αν η IP είναι η 192.168.1.100 όπως την θέσαμε παραπάνω):<br>
<div class="code">
<b>Για Ubuntu:</b><br>
gvncviewer 192.168.1.100:1<br><br>
<b>Για openSUSE:</b><br>
vncviewer 192.168.1.100:1
</div>
Η παραπάνω πόρτα είναι η 5801.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi5jRYnsQqlEvwWyDYJ0Sg5OkSQDHHF4owWUmqIj3Us6kjeOFYhK3ZF54rXRIcdPIvfUn3cOAoRfPod5oOEFHv-QggRs4D_eBvnClBKXBDcLNJajUX71EHZrSsPlxmaxhx_Lh0FxdSBheo/s0/vnc-vncviewer-connect.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Σύνδεση μέσω VNC στο απομακρυσμένο σύστημα" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi5jRYnsQqlEvwWyDYJ0Sg5OkSQDHHF4owWUmqIj3Us6kjeOFYhK3ZF54rXRIcdPIvfUn3cOAoRfPod5oOEFHv-QggRs4D_eBvnClBKXBDcLNJajUX71EHZrSsPlxmaxhx_Lh0FxdSBheo/s0/vnc-vncviewer-connect.png"/></a></div>
<br>
Αφού εισάγει το συνθηματικό που ορίστηκε στην αρχή στο σύστημα host, τότε περιμένει να γίνει η σύνδεση και θα δεί την παρακάτω εικόνα.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ztnR5t-fUdKhxinCE8Txl3y1VBU7sZggQECOyiGA0blE0ItwPrYbjmBaUlQDJxFiuq0CDddWxI2DnlwVKCaT1tRCX_QIXmJjmF3gDn2D881y3wDN8uURKo1cSavMBp4xouXP-2wRognO/s0/vnc-vncviewer-install.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εγκατάσταση openSUSE στο απομακρυσμένο σύστημα" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ztnR5t-fUdKhxinCE8Txl3y1VBU7sZggQECOyiGA0blE0ItwPrYbjmBaUlQDJxFiuq0CDddWxI2DnlwVKCaT1tRCX_QIXmJjmF3gDn2D881y3wDN8uURKo1cSavMBp4xouXP-2wRognO/s0/vnc-vncviewer-install.png"/></a></div>
Εδώ βλέουμε στα δεξιά το απομακρυσμένο σύστημα (είναι σε VirtualBox για τις δοκιμές ώστε να γραφτεί το άρθρο), στα αριστερά είναι το τερματικό του απομακρυσμένου υπολογιστή και στο κέντρο είναι αυτό που βλέπει ο απομακρυσμένος χρήστης για να προχωρήσει στην εγκατάσταση.<br><br>
8.1.1 Αντίστοιχα, μπορεί να ανοίξετε το Gnome-boxes και να δημιουργήσει νέα σύνδεση σε απομακρυσμένο υπολογιστή. Στο παράθυρο που θα ανοίξει, πληκτρολογεί:<br>
<div class="code">
vnc://192.168.1.100:5901
</div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzSD6QddxG1HVfiEKkpyukMSntsCp7lgMMlgubBV9QM9cKKvj6vc0rvRt8aVu2aSyEQcFfQqeC-DbCtJrs4o_zEphrYOI61o_8A4LP_R8qwgbhttt6l2U4SWde4l5ys-OBzuESHAUYW8YE/s0/vnc-boxes-connect.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="GNOME Boxes σύνδεση" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzSD6QddxG1HVfiEKkpyukMSntsCp7lgMMlgubBV9QM9cKKvj6vc0rvRt8aVu2aSyEQcFfQqeC-DbCtJrs4o_zEphrYOI61o_8A4LP_R8qwgbhttt6l2U4SWde4l5ys-OBzuESHAUYW8YE/s0/vnc-boxes-connect.png"/></a></div>
<br>
Και αφού εισάγει το συνθηματικό του vnc του host, τότε θα συνδεθεί.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDgNqFJ8UBRU8tyn_lmBaduxR3rKD8_IKC1dCELlBrxr1AlpSPFRlbQZRIcqcML5BjmrjBEgKF1ouyGXnxg-5pyudd82JMjP_DkDwPeOBCYXmJdsiUbISnFD8H6izOrxU7HkMUG124fJV3/s0/vnc-boxes-install.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="GNOME Boxes εγκατάσταση" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDgNqFJ8UBRU8tyn_lmBaduxR3rKD8_IKC1dCELlBrxr1AlpSPFRlbQZRIcqcML5BjmrjBEgKF1ouyGXnxg-5pyudd82JMjP_DkDwPeOBCYXmJdsiUbISnFD8H6izOrxU7HkMUG124fJV3/s0/vnc-boxes-install.png"/></a></div>
<br><br>
8.2 Πιο όμορφο είναι μέσω browser. Όπως μας έχει πει παραπάνω, πρέπει να μπορεί να εκτελεί προγράμματα Java. Εδώ πρέπει να χρησιμοποιήσει την IP διεύθυνση που δώσατε κατά την ρύθμιση DHCP (192.168.1.100):<br>
<div class="code">
192.168.1.100:5801
</div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit6_PbaqTTZcioS1-k_JoAuDX-YmMU6t2Aq5z9fHcc2FygReyF3VdecmD1LVMmuTbnsHZ68K527OhcnboaAv5-_94cmG3CVFFK3StwD1mXHG8O6RseMlXVVdPmYhau6eAz5B760fb3b2cg/s0/vnc-browser.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Περιηγητής με vnc" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit6_PbaqTTZcioS1-k_JoAuDX-YmMU6t2Aq5z9fHcc2FygReyF3VdecmD1LVMmuTbnsHZ68K527OhcnboaAv5-_94cmG3CVFFK3StwD1mXHG8O6RseMlXVVdPmYhau6eAz5B760fb3b2cg/s0/vnc-browser.png"/></a></div>
Εδώ πατάει σύνδεση και του ζητείται το συνθηματικό.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX2jlPxja8wcKBTdZqVvd-w_qQxi8d9KmISQVBGYTZw7hTkFLHH2GQ6PyOTL9q124lxg2OhDsagRxrRBz7TFdOLqIHOMtppXdbZx0zr1h9DyOn2rlOjwA1urJ4LtV_LHiU6duAnys1EZv5/s0/vnc-browser-connect.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εισαγωγή συνθηματικού VNC στον περιηγητή" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX2jlPxja8wcKBTdZqVvd-w_qQxi8d9KmISQVBGYTZw7hTkFLHH2GQ6PyOTL9q124lxg2OhDsagRxrRBz7TFdOLqIHOMtppXdbZx0zr1h9DyOn2rlOjwA1urJ4LtV_LHiU6duAnys1EZv5/s0/vnc-browser-connect.png"/></a></div>
Και καταλήγουμε στην εικόνα να ξεκινήσουμε την εγκατάσταση.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2jcfMmHgHHfUUZsuDyHUE8niC0pKgBPzm6D-m1QJEHsnquo4VbmrDecVWkP3R0vu4_ZnufBzflhGFYMwFdmIjPla3tzRb6cuvRDjr9ZgRv1NS8ReQsDMd0GJD5mdRg5n0VDKJ7SjBxBI9/s0/vnc-browser-install.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εγκατάσταση openSUSE μέσω περιηγητή" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2jcfMmHgHHfUUZsuDyHUE8niC0pKgBPzm6D-m1QJEHsnquo4VbmrDecVWkP3R0vu4_ZnufBzflhGFYMwFdmIjPla3tzRb6cuvRDjr9ZgRv1NS8ReQsDMd0GJD5mdRg5n0VDKJ7SjBxBI9/s0/vnc-browser-install.png"/></a></div>
<br><br>
<h2>BONUS</h2>
Η εγκατάσταση μπορεί να γίνει και μέσω ssh. Είναι προτιμότερη μέσω ssh δίοτι είναι πιο ασφαλές περιβάλλον. Πως γίνεται αυτό; Ουσιαστικά είναι ίδια διδικασία. Κατά την έναρξη, δίνετε τα παρακάτω:<br>
<div class="code">
netsetup=1 ssh=1 ssh.password=opensuse
</div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOW16qhKhyphenhyphena1wPR2m6B4JC764VOen40haMmhKvQtY6tMxIuKAjtD45SdHc9CJQ-3qHTJUygwyeOTFA-zPnalF3TcN7OzGxYhZXmQVqnBhe3-dCn0HexOCK1ILBkEyPqpWoDKw1s6PiH9md/s0/ssh-values-net.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εγκατάσταση με ssh" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOW16qhKhyphenhyphena1wPR2m6B4JC764VOen40haMmhKvQtY6tMxIuKAjtD45SdHc9CJQ-3qHTJUygwyeOTFA-zPnalF3TcN7OzGxYhZXmQVqnBhe3-dCn0HexOCK1ILBkEyPqpWoDKw1s6PiH9md/s0/ssh-values-net.png"/></a></div>
Με την ίδια λογική για το netsetup. Το έχω δοκιμάσει και χωρίς το netsetup και δουλεύει μια χαρά.<br><br>
- <b>ssh=1</b>: Ενεργοποιεί την εγκατάσταση μέσω ssh.<br><br>
- <b>ssh.password=κωδικός</b>: Καθορίζει το συνθηματικό SSH του χρήστη root για την εγκατάσταση.<br><br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUgPmkIQV89Z8lYZIA2a_Wm-fpbP6s8UH3SYgnGujqC2UVRfQTdjZZSM6aenUvEZ8b_Q3DOOvhd68WKLODhrJPczh4X_MPRgpmkkbpR4UBmrC01YaPvDiAyymiaoRt5hxz60705UvmtbXw/s0/ssh-network.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="ssh ready" border="0" data-original-height="600" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUgPmkIQV89Z8lYZIA2a_Wm-fpbP6s8UH3SYgnGujqC2UVRfQTdjZZSM6aenUvEZ8b_Q3DOOvhd68WKLODhrJPczh4X_MPRgpmkkbpR4UBmrC01YaPvDiAyymiaoRt5hxz60705UvmtbXw/s0/ssh-network.png"/></a></div>
Και τώρα θα δούμε επίσης 2 τρόπους.<br><br>
<b>1ος τρόπος: GNOME-BOXES</b><br><br>
Στο Gnome Boxes πρέπει να δημιουργήσει νέα σύνδεση σε απομακρυσμένο υπολογιστή. Στο παράθυρο που θα ανοίξει, πληκτρολογεί:<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP7EyOAm0-HvwZoTsgiRyEIBMtw13x-BWUCBPbiaQJf8Tace_uRCJKpP50eGZ3gjjfwrHIpTTPJmwQpwLyhj8Ii1gWLEHuAxUjCKRMLsuduAAagen6Wpz3bsRESu4OYLM6aP1IAmImjedU/s0/ssh-gnome-boxes-connect.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Σύνδεση gnome-boxes με SSH" border="0" data-original-height="242" data-original-width="429" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP7EyOAm0-HvwZoTsgiRyEIBMtw13x-BWUCBPbiaQJf8Tace_uRCJKpP50eGZ3gjjfwrHIpTTPJmwQpwLyhj8Ii1gWLEHuAxUjCKRMLsuduAAagen6Wpz3bsRESu4OYLM6aP1IAmImjedU/s0/ssh-gnome-boxes-connect.png"/></a></div>
Θα ανοίξει ένα παράθυρο, όπου πρέπει να αποδεχτεί το κλειδί και να πληκτρολογήσει το συνθηματικό (είχαμε δώσει opensuse).<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Tw5As5ckteDZ00iDZJXECb1dYvw8o_MIQv6HJktFtErV4AHwYX6pZHzFuwk2O72d2Wa9BgUWcZTPZhtxPsCbgjmX_cqDvhP991pNjMaoMb2HNPmWIYD65sFdYtrTCXtp_v-dIGUoq3Ff/s0/ssh-gnome-boxes-password.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Gnome Boxes password" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Tw5As5ckteDZ00iDZJXECb1dYvw8o_MIQv6HJktFtErV4AHwYX6pZHzFuwk2O72d2Wa9BgUWcZTPZhtxPsCbgjmX_cqDvhP991pNjMaoMb2HNPmWIYD65sFdYtrTCXtp_v-dIGUoq3Ff/s0/ssh-gnome-boxes-password.png"/></a></div>
Στη συνέχεια για να ξεκινήσει η εγκατάσταση, βλέπουμε τι μας λέει και εκτελούμε την εντολή:<br>
<div class="code">
yast.ssh
</div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS0JnUJw7etDHoif6orK1yKsbf2vWZsBe_QcDP7HkAJz-mqNJJBpRP_1C3BlaAtHarYnzhFd91Zvyhj8A2PGLS-AaOjNwynHLoy1ZC5CYA3ZF3LwOInZE9q8zJUXGt69zLGMCy7lwmgJnP/s0/ssh-gnome-boxes-install.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Gnome Boxes εγκατάσταση openSUSE μέσω ssh" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS0JnUJw7etDHoif6orK1yKsbf2vWZsBe_QcDP7HkAJz-mqNJJBpRP_1C3BlaAtHarYnzhFd91Zvyhj8A2PGLS-AaOjNwynHLoy1ZC5CYA3ZF3LwOInZE9q8zJUXGt69zLGMCy7lwmgJnP/s0/ssh-gnome-boxes-install.png"/></a></div>
<b>2ος τρόπος: Τερματικό</b><br><br>
Στο τερματικό εκτελούμε την παρακάτω εντολή:<br>
<div class="code">
ssh root@IP
</div>
Θα μας ζητήσει το συνθηματικό και θα μπούμε. Επόμενο βήμα να εκτελέσουμε την εντολή:<br>
<div class="code">
yast.ssh
</div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCT6VzlVQ6FGx451CsxqEYUchosS-eFDq6mQusnFD3lLy9exkTzGHp8eFLRXxX0dyJNnNqrItAaCxgvHqa_05LnwTy1toyeJ_r4LrwYobM6N8l4ODCkPZ_fcKX1hwxP1KDu9Xfcg1Q5Hpj/s0/ssh-terminal-yast.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Είσοδος με χρήση ssh μεσω τερματικού εγκατάσταση openSUSE" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCT6VzlVQ6FGx451CsxqEYUchosS-eFDq6mQusnFD3lLy9exkTzGHp8eFLRXxX0dyJNnNqrItAaCxgvHqa_05LnwTy1toyeJ_r4LrwYobM6N8l4ODCkPZ_fcKX1hwxP1KDu9Xfcg1Q5Hpj/s0/ssh-terminal-yast.png"/></a></div>
Και είμαστε έτοιμοι να εγκαταστήσουμε το openSUSE.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi52ygbQDMTVThkIJrycR4gvTTwQ4csHeSZYzgDCy5GICodWOllUI7Hf285TdXbwnvKoKnflTj5vhdEvBWcgDHDR290zsEGiJ7tHeB3BJfiF6YyflZrvnI-GKyvamf6Yp-SVF5aTYN_9Lz5/s0/ssh-terminal-install.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εγκατάσταση με χρήση ssh μέσω τερματικού και εγκατάσταση openSUSE" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi52ygbQDMTVThkIJrycR4gvTTwQ4csHeSZYzgDCy5GICodWOllUI7Hf285TdXbwnvKoKnflTj5vhdEvBWcgDHDR290zsEGiJ7tHeB3BJfiF6YyflZrvnI-GKyvamf6Yp-SVF5aTYN_9Lz5/s0/ssh-terminal-install.png"/></a></div>
<br><br>
Για το πως θα γίνει η εγκατάσταση, υπάρχουν πολλοί οδηγοί στην σελίδα μου αλλά μπορείτε να <a href="https://opensuse-guide.org/installation.php" target="_blank">βρείτε και εδώ</a>.<br><br>
Πηγές για περισσότερη μελέτη:<br>
1. Wiki <a href="https://en.opensuse.org/SDB:Remote_installation" target="_blank">https://en.opensuse.org/SDB:Remote_installation</a>.<br>
2. Παράμετροι για την εκκίνηση <a href="https://doc.opensuse.org/documentation/leap/startup/html/book-startup/cha-boot-parameters.html" target="_blank">https://doc.opensuse.org/documentation/leap/startup/html/book-startup/cha-boot-parameters.html</a>Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-3435387895976570702021-11-17T09:34:00.001+02:002021-11-17T09:34:03.129+02:00Μετράμε την ταχύτητα δικτύου με το speedtest-cli<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbfh1d_7eycNCkMkWkUP3d34doaN8XCacv3tPPfTiNeEIFBGbWzd2ZhQiJYdJP2CZ1DXe_NmAGVOjbgxiFV6wI8m_S0XU0R8LACqQdo7RIswZOWSbSBnZurr-bTUiWocBo5PXoy5yIMZsU/s512/internetspeed.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="512" data-original-width="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbfh1d_7eycNCkMkWkUP3d34doaN8XCacv3tPPfTiNeEIFBGbWzd2ZhQiJYdJP2CZ1DXe_NmAGVOjbgxiFV6wI8m_S0XU0R8LACqQdo7RIswZOWSbSBnZurr-bTUiWocBo5PXoy5yIMZsU/s320/internetspeed.png"/></a></div>
<h1>ΜΕΤΡΗΣΗ ΤΑΧΥΤΗΤΑΣ ΔΙΚΤΥΟΥ</h1>
Όπως μερικοί έχουν κόλλημα με τα γρήγορα αυτοκίνητα και με την ταχύτητα, οι περισσότεροι από εμάς, έχουν κόλλημα με την ταχύτητα (bandwith) του δικτύου τους. Πως γίνεται η μέτρηση;<br><br>
Υπάρχουν εταιρίες που έχουν φτιάξει δικές τους μετρήσεις όπως πχ <a href="https://www.speedtest.gr/" target="1">https://www.speedtest.gr/</a>, <a href="https://cablenet.speedtestcustom.com/" target="_blank">cablenet</a>, <a href="https://www.nperf.com/el/" target="_blank">npref</a> αλλά οι πιο γνωστές είναι οι <a href="https://www.speedtest.net/" target="_blank">Speedtest</a> και η <a href="https://fast.com" target="_blank">fast.com</a>. To speedtest είναι διαθέσιμο και από τερματικό στις περισσότερες διανομές.<br><br>
<h2>ΠΡΟΒΛΗΜΑ</h2>
Έχω εγκαταστήσει λοιπόν την εφαρμογή από τα επίσημα αποθετήρια. Ξεκινάω να κάνω ένα έλεγχο στο τερματικό με την εντολή.<br>
<div class="code">
speedtest-cli
</div><br />
Και λαμβάνω το αποτέλεσμα:<br>
<pre>
Retrieving speedtest.net configuration...
Traceback (most recent call last):
File "/usr/bin/speedtest-cli", line 11, in module
load_entry_point('speedtest-cli==2.0.0', 'console_scripts', 'speedtest-cli')()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1832, in main
shell()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1729, in shell
secure=args.secure
File "/usr/lib/python3/dist-packages/speedtest.py", line 1009, in __init__
self.get_config()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1081, in get_config
map(int, server_config['ignoreids'].split(','))
ValueError: invalid literal for int() with base 10: ''
</pre>
<br><br>
Δεν είναι ένα πρόγραμμα που εξαρτάται η ζωή μας από αυτό αλλά καλό είναι να μπορούμε να το εκτελούμε.
<br><br>
<h2>ΛΥΣΗ</h2>
1. Αφαιρέστε το πρόγραμμα που έχετε εγκαταστήσει <br>
<div class="code">
<b>Για Ubuntu:</b><br>
sudo apt remove speedtest-cli<br><br>
Για openSUSE:<br>
sudo zypper rm speedtest-cli
</div><br />
<br>
2. Στο τερματικό εκτελέστε την εντολή:<br>
<div class="code">
pip3 install speedtest_cli
</div><br />
<br>
3. Όταν τελειώσει η εγκατάσταση, στο τερματικό γράψτε την εντολή:<br>
<div class="code">
nano ~/.profile
</div><br />
<br>
Και στο τέλος του αρχείου προσθέστε την γραμμή:<br>
<div class="code">
PATH="$PATH:$HOME/.local/bin"
</div><br />
<br>
4. Αφού αποθηκεύσετε, εκτελέστε την εντολή:<br>
<div class="code">
source ~/.profile
</div><br />
<br>
Είστε έτοιμοι να εκτελέσετε το πρόγραμμα στο τερματικό και να δείτε την ταχύτητα του δικτύου σας.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-74193345324939130482021-11-01T13:22:00.001+02:002021-12-20T22:37:34.813+02:00ΠΛΗΡΗΣ ΟΔΗΓΟΣ εγκατάστασης και ρυθμίσεων του Visual Studio Code σε Linux, για τις γλώσσες python, C και java<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhh0Hq_RBP2BevvyZ9b1uNbRk8gixbiffXObR1j29-mao6-6QJAlvS3P9OqsY1rZtQEA6gYJ3wislom_iB3KIRXs4EEjra0qF-EvXMJ9iDwrUrJL7iVDLwpIxVmWClv7cRvVoQ2yIOGIXv/s500/Visual_Studio_Code.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Visual Studio Code" border="0" width="200" data-original-height="500" data-original-width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhh0Hq_RBP2BevvyZ9b1uNbRk8gixbiffXObR1j29-mao6-6QJAlvS3P9OqsY1rZtQEA6gYJ3wislom_iB3KIRXs4EEjra0qF-EvXMJ9iDwrUrJL7iVDLwpIxVmWClv7cRvVoQ2yIOGIXv/s200/Visual_Studio_Code.png"/></a></div>
<h1>ΠΡΟΛΟΓΟΣ</h1>
Έχουμε δει σε προηγούμενο άρθρο την <a href="https://eiosifidis.blogspot.com/2019/12/visual-code-opensuse.html" target="_blank">Εγκατάσταση του Visual Studio Code σε openSUSE</a>. Σε αυτό το άρθρο θα δείξουμε λίγο πιο ολοκληρωμένες ενέργειες. Αφορμή της συγγραφής του άρθρου αυτού ήταν η αποτυχία ρύθμισης και χρήσης του Visual Studio Code με τις γλώσσες προγραμματισμού Python, C και Java. Η αρχική εγκατάσταση έγινε μέσω flatpak (θα το δουμε παρακάτω) αλλά δεν μπορούσε να γίνει ρύθμιση με Java. Είχα ψάξει στα γρήγορα τι είναι καλύτερο για το VSCode, το flatpak ή το αρχείο deb/rpm και <a href="https://www.reddit.com/r/elementaryos/comments/gtcibj/flatpakflathub_vs_app_store_or_deb_file_vscode/" target="_blank">βρήκα αυτό στο reddit</a>. Σίγουρα υπάρχουν και άλλα αποτελέσματα. Εδώ κάποιος ανέφερε ότι στο flatpak υπάρχουν κάποια θέματα debugging οπότε αποφάσισα και εγώ να κάνω εγκατάσταση από deb/rpm. Όμως έπρεπε να κρατήσω και τα extensions που έχω εγκατεστημένα (για να μην ψάχνω). Βρήκα και τρόπο γι'αυτό. Οπότε εδώ θα προσπαθήσω να τα αναφέρω όλα.
<br><br>
<h2>ΕΓΚΑΤΑΣΤΑΣΗ Visual Studio Code</h2>
Θα δούμε τους πιο γνωστούς τρόπους εγκατάστασης του Visual Studio Code.
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ με αρχεία deb/rpm</h3>
Για διανομές όπως είναι η openSUSE, Fedora, Red Hat, Ubuntu, Debian και παράγωγά τους, μπορείτε να κατεβάσετε το αντίστοιχο αρχείο για τη διανομή σας (rpm για τις 3 πρώτες και deb για τις άλλες 2). Κάντε την λήψη των αρχείων από εδώ:<br>
<div class="separator" style="clear: both;"><a href="https://code.visualstudio.com/Download" target="1" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="200" data-original-height="109" data-original-width="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZT3bDwN3E50C_vdOsxut2NivMGsH-xacWobupSOoxno1ZXVzvVcCL9NZRxvPgIlgM23arzY88J2OaqoD3lok5l38j26MOv5KZwAj_Ftj5U2xCDWucNuXsR1H2KZz2q0uyIAiUVXIcmstN/s200/%25CE%25BB%25CE%25AE%25CF%2588%25CE%25B7.png"/></a></div>
Η εγκατάσταση είναι απλή. Μπορείτε με διπλό κλικ πάνω στο αρχείο, οπότε θα ανοίξει ο διαχειριστής αρχείων εγκατάστασης της διανομής σας και στη συνεχεια θα πατήσετε το κουμπί εγκατάστασης. Εναλλακτικά μπορείτε να το εγκαταστήσετε με τερματικό με τις εντολές:<br>
<div class="code">
<b>Για Ubuntu, Debian:</b><br>
sudo dpkg -i code*.deb<br><br>
<b>Για Fedora, Red Hat, openSUSE:</b><br>
sudo rpm -i code*.rpm
</div><br />
Σε <a href="https://wiki.archlinux.org/title/Visual_Studio_Code" target="_blank">Arch Linux</a> θα βρείτε πολλές εκδόσεις. Προτιμήστε την έκδοση <b>visual-studio-code-bin</b> που θα την βρείτε από το αποθετήριο AUR (ανάλογα με ποιον AUR helper χρησιμοποιείτε, αλλάξτε την εντολή).<br>
<div class="code">
yay -S visual-studio-code-bin
</div><br />
Υπάρχουν περισσότερες πληροφορίες πως μπορείτε να προσθέσετε αποθετήριο και να το κάνετε εγκατάσταση χειροκίνητα για όλες τις διανομές στην <a href="https://code.visualstudio.com/docs/setup/linux" target="_blank">επίσημη τεκμηρίωση εδώ</a>.
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ με flatpak</h3>
Εάν έχετε εγκατεστημένο το flatpak στον υπολογιστή σας (<a href="https://eiosifidis.blogspot.com/2019/12/opensuse-flatpak.html" target="_blank">δείτε πως γίνεται αυτό</a>), μπορείτε να εγκαταστήσετε το Visual Studio Code με την παρακάτω εντολή:<br>
<div class="code">
flatpak install com.visualstudio.code
</div><br />
Αν και έχει άλλες δυο εκδόσεις του Visual Studio Code (vscodium και code-OSS), επιλέξτε την παραπάνω έκδοση.
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ με snap</h3>
Οι διανομές που χρησιμοποιούν τα πακέτα snap (Ubuntu κυρίως), μπορείτε να το εγκαταστήσετε είτε από την <a href="https://snapcraft.io/code" target="_blank">σελίδα snapcraft</a> είτε με την παρακάτω εντολή:<br>
<div class="code">
sudo snap install --classic code
</div><br />
Εάν δεν έχετε snap εγκατεστημένο, δείτε στην διανομή σας πως εγκαθίσταται. Παράδειγμα, δείτε στην <a href="https://iosifidis.github.io/energopoiisi-flatpak-snap-opensuse/" target="_blank">openSUSE εδώ</a>.
<br><br>
<h2>ΕΓΚΑΤΑΣΤΑΣΗ προσθέτων για το λειτουργικό</h2>
<br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ για Python</h3>
Για την εγκατάσταση της Python δεν θα χρειαστεί να κάνουμε κάτι γιατί είναι ήδη εγκατεστημένη στο σύστημα. Συνήθως είναι και κάποια έκδοση 2.x και κάποια έκδοση 3.x. Δείτε τις εκδόσεις με τις εντολές:<br>
<div class="code">
<b>Για python 2:</b><br>
python --version<br><br>
<b>Για python 3:</b><br>
python3 --version
</div><br />
Ενώ μπορείτε να κάνετε αναβάθμιση του pip με την εντολή:<br>
<div class="code">
pip install --upgrade pip
</div><br />
Ενώ για αναβάθμιση όλων των πακέτων που έχετε εγκατεστημένα, μπορείτε να εισάγετε την εντολή:<br>
<div class="code">
pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U
</div>
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ για C</h3>
Και εδώ δεν θα χρειαστούν πολλά γιατί είναι ήδη εγκατεστημένη στον υπολογιστή σας. Πρέπει να είναι εγκατεστημένο το πακέτο <b>gcc</b>. Αυτό βρίσκεται στο build-essential
<div class="code">
<b>Για Ubuntu/Debian:</b><br>
sudo apt install build-essential<br><br>
<b>Για openSUSE:</b><br>
sudo zypper in gcc<br><br>
<b>Για Arch Linux:</b><br>
sudo packam -S gcc
</div><br />
Για να δείτε ποιά έκδοση μεταγλωττιστή έχετε, μπορείτε να χρησιμοποιήσετε την εντολή:<br>
<div class="code">
gcc --version
</div><br />
Δοκιμάστε το κλασικό Hello world. Γράψτε στο τερματικό <b>nano hello.c</b> και <a href="https://www.programiz.com/c-programming/examples/print-sentence" target="_blank">εισάγετε τον κώδικα για την C</a>. Στη συνέχεια εκτελέστε τις εντολές:<br>
<div class="code">
$ gcc -o hello hello.c
$ ./hello
</div>
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ για Java</h3>
Πριν ξεκινήσουμε την εγκατάσταση, ας δούμε τις διαφορές μεταξύ JRE, OpenJDK και Oracle JDK.<br>
<ul>
<li><b>JRE (Java Runtime Environment)</b> είναι αυτό που χρειάζεται για να εκτελεστεί μια εφαρμογή που βασίζεται σε Java. Αυτό είναι το μόνο που χρειάζεστε εάν δεν είστε προγραμματιστής.</li>
<li><b>JDK (Java Development Kit)</b> είναι αυτό που πρέπει να αναπτύξετε λογισμικό που σχετίζεται με την Java.</li>
<li>H <b><a href="https://openjdk.java.net/" target="_blank">OpenJDK</a></b> είναι υλοποίηση ανοικτού κώδικα του <b>Java Development Kit</b> ενώ το <b><a href="https://www.oracle.com/java/technologies/javase-downloads.html" target="_blank">Oracle JDK</a></b> είναι η επίσημη έκδοση Oracle του Java Development Kit. Ενώ το OpenJDK είναι αρκετό για τις περισσότερες περιπτώσεις, ορισμένα προγράμματα όπως το <a href="https://developer.android.com/studio" target="_blank">Android Studio</a> προτείνει τη χρήση του <a href="https://www.oracle.com/java/technologies/javase-downloads.html" target="_blank">Oracle JDK</a> για αποφυγή ζητήματος διεπαφής χρήστη.</li>
</ul>
Εδώ θα χρειαστεί να γίνουν κάποιες εγκαταστάσεις-ρυθμίσεις. <br><br>
Για αρχή δείτε τι έκδοση java έχετε.<br>
<div class="code">
java -version
</div><br>
Εάν έχετε εγκατεστημένη την java, τότε σε ένα σύστημα Ubuntu θα δείτε τα παρακάτω:
<div class="code">
openjdk version "11.0.11" 2021-04-20<br>
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)<br>
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
</div><br>
Ενώ σε ένα σύστημα που δεν έχει εγκατεστημένη την java, θα δείτε ένα αποτέλεσμα του τύπου:<br>
<div class="code">
The program ‘java’ can be found in the following packages:<br>
* default-jre<br>
* gcj-4.6-jre-headless<br>
* openjdk-6-jre-headless<br>
* gcj-4.5-jre-headless<br>
* openjdk-7-jre-headless<br>
Try: sudo apt-get install
</div><br>
<h4>Εγκατάσταση JRE</h4>
Για εγκατάσταση του Java Runtime Environment<br>
<div class="code">
sudo apt install default-jre
</div><br>
<h4>Εγκατάσταση OpenJDK</h4>
Για εγκατάσταση του OpenJDK<br>
<div class="code">
sudo apt install default-jdk
</div><br>
<h4>Εγκατάσταση openSUSE</h4>
Στο openSUSE να έχετε εγκατεστημένα τα παρακάτω:<br>
<div class="code">
sudo zypper in java-11-openjdk-devel java-11-openjdk java-11-openjdk-headless
</div><br>
<h4>Εγκατάσταση Oracle JDK </h4>
Για εγκατάσταση του <a href="https://www.oracle.com/java/technologies/javase-downloads.html" target="_blank">Oracle JDK</a>, κατεβάστε και εγκαταστείστε το αντίστοιχο αρχείο για την διανομή σας. <br><br>
Εναλλακτικά σε Ubuntu based διανομές, μπορείτε να εισάγετε το αποθετήριο:<br>
<div class="code">
sudo add-apt-repository ppa:webupd8team/java<br>
sudo apt-get update
</div><br>
Και στη συνέχεια για την java έκδοση 16 (αυτή κυκλοφορεί τελευταία. Αν θέλετε να αλλάξετε έκδοση, απλά αλλάξτε το νούμερο), μπορείτε να την εγκαταστήσετε με τις παρακάτω εντολές:<br>
<div class="code">
sudo apt install oracle-java16-installer<br>
sudo apt install oracle-java16-set-default
</div><br>
Για <a href="https://en.opensuse.org/SDB:Installing_Java" target="_blank">openSUSE, υπάρχει διαθέσιμη τεκμηρίωση</a>.<br><br>
Για Arch Linux, υπάρχει και <a href="https://wiki.archlinux.org/title/java" target="_blank">τεκμηρίωση στο wiki</a>.
<br><br>
<h2>ΡΥΘΜΙΣΕΙΣ Visual Studio Code</h2>
<h3>Εγκαταστάσεις extensions</h3>
Για την πλήρη εμεπειρία χρήσης αλλά και για την εκτέλεση των προγραμμάτων, θα χρειαστεί να εγκατασταθούν κάποια πρόσθετα. Ποια ειναι αυτά και για ποιες γλώσσες προγραμματισμού;
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ για Python</h3>
Για την Python χρειάζεται το πρόσθετο που μπορείτε να βρείτε στο <a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python" target="_blank">Market place</a>.<br><br>
Ανοίξτε το VS Code Quick Open (με τα πλήκτρα Ctrl+P) και επικολήστε την εντολή:<br>
<div class="code">
ext install ms-python.python
</div><br />
Εναλλακτικά ανοίξτε την μηχανή αναζήτησης των extensions και αναζητήστε Python. Θα σας εμφανίσει πολλά. Εσείς επιλέξτε εκδότη την Microsoft (μπορείτε να επιλέξετε ότι άλλο θέλετε αλλά αυτό εφαρμόζει καλύτερα στο πρόγραμμα Visual Studio Code).<br><br>
Καλό είναι να εγκαταστήσετε και το <a href="https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter" target="_blank">Jupyter</a>, το <a href="https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode" target="_blank">Visual Studio IntelliCode</a> και το <a href="https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance" target="_blank">Pylance</a>.<br><br>
Ανοίξτε το VS Code Quick Open (με τα πλήκτρα Ctrl+P) και επικολήστε την εντολή:<br>
<div class="code">
<b>Jupyter:</b><br />
ext install ms-toolsai.jupyter<br /><br />
<b>Visual Studio IntelliCode:</b><br />
ext install VisualStudioExptTeam.vscodeintellicode<br /><br />
<b>Pylance:</b><br />
ext install ms-python.vscode-pylance
</div>
<br><br>
Δείτε περισσότερα στην <a href="https://code.visualstudio.com/docs/languages/python" target="_blank">τεκμηρίωση στην σελίδα του Visual Studio Code</a>.
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ για C</h3>
Για την C χρειάζεται το πρόσθετο που μπορείτε να βρείτε στο <a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools" target="_blank">Market place</a>.<br><br>
Ανοίξτε το VS Code Quick Open (με τα πλήκτρα Ctrl+P) και επικολήστε την εντολή:<br>
<div class="code">
ext install ms-vscode.cpptools
</div><br />
Εναλλακτικά ανοίξτε την μηχανή αναζήτησης των extensions και αναζητήστε C/C++. Θα σας εμφανίσει πολλά. Εσείς επιλέξτε εκδότη την Microsoft (μπορείτε να επιλέξετε ότι άλλο θέλετε αλλά αυτό εφαρμόζει καλύτερα στο πρόγραμμα Visual Studio Code).<br><br>
<div class="separator" style="clear: both;"><a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools" target="1" style="display: block; padding: 1em 0; text-align: center; "><img alt="C/C++" border="0" data-original-height="456" data-original-width="1911" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI0VQATsrxUWXfMlH9iw5eAjXsMJUU2YIbdGS0YobDYrcSHZFyZmrTkkcCP9eI9_zQhyphenhyphen-JbrBIWVGTJV-zTXQcEgUk_qeseG5aP_-7qfRORbf-uNtyHnhxGEO4y7OCwMNtB9n4NoNdCJ49/s0/search-cpp-extension.png"/></a></div>
<br><br>
Δείτε περισσότερα στην <a href="https://code.visualstudio.com/docs/languages/cpp" target="_blank">τεκμηρίωση στην σελίδα του Visual Studio Code</a>.
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ για Java</h3>
Για την Java χρειάζεται το πρόσθετο που μπορείτε να βρείτε στο <a href="https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack" target="_blank">Market place</a>.<br><br>
Ανοίξτε το VS Code Quick Open (με τα πλήκτρα Ctrl+P) και επικολήστε την εντολή:<br>
<div class="code">
ext install vscjava.vscode-java-pack
</div><br />
To Extension Pack for Java, περιέχει τα παρακάτω:<br>
<ul>
<li>📦 <a href="https://marketplace.visualstudio.com/items?itemName=redhat.java" target="_blank">Language Support for Java™ by Red Hat</a></li>
<li>📦 <a href="https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug" target="_blank">Debugger for Java</a></li>
<li>📦 <a href="https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-test" target="_blank">Java Test Runner</a></li>
<li>📦 <a href="https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-maven" target="_blank">Maven for Java</a></li>
<li>📦 <a href="https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-dependency" target="_blank">Project Manager for Java</a></li>
<li>📦 <a href="https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode" target="_blank">Visual Studio IntelliCode</a></li>
</ul>
<br>
Δείτε περισσότερα στην <a href="https://code.visualstudio.com/docs/languages/java" target="_blank">τεκμηρίωση στην σελίδα του Visual Studio Code</a>.
<br><br>
<h3>Μεταφορά extensions</h3>
Αφού έγινε η εγκατάσταση, τώρα έπρεπε να μεταφέρω και τα extensions που είχα στην προηγούμενη εγκατάσταση (ή αν θέλετε να συγχρονίσετε δυο συστήματα να έχουν τα ίδια extensions). Υπάρχουν 2-3 τρόποι. Θα γράψω κάποιους.<br>
Καταρχήν ανοίξτε το VSCode και ανοίξτε το τερματικό. Εκεί δώστε την παρακάτω εντολή:<br>
<div class="code">
code --list-extensions | xargs -L 1 echo code --install-extension
</div><br />
Εμένα μου έβγαλε την παρακάτω λίστα.<br>
<div class="code">
code --install-extension formulahendry.code-runner<br>
code --install-extension ms-python.python<br>
code --install-extension ms-python.vscode-pylance<br>
code --install-extension ms-toolsai.jupyter<br>
code --install-extension ms-vscode.cmake-tools<br>
code --install-extension ms-vscode.cpptools<br>
code --install-extension redhat.java<br>
code --install-extension twxs.cmake<br>
code --install-extension VisualStudioExptTeam.vscodeintellicode<br>
code --install-extension vscjava.vscode-java-debug<br>
code --install-extension vscjava.vscode-java-dependency<br>
code --install-extension vscjava.vscode-java-pack<br>
code --install-extension vscjava.vscode-java-test<br>
code --install-extension vscjava.vscode-maven<br>
</div><br />
Την αντέγραψα σε ένα αρχείο txt και μετά την νέα εγκατάσταση, εκτέλεσα μια προς μια τις εντολές.<br><br>
Εναλλακτικά υπάρχουν και πιο αυτοματοποιημένοι τρόποι. Δηλαδή θα φτιάξετε ένα αρχείο με τα extensions που έχετε εγκατεστημένα με την παρακάτω εντολή:<br>
<div class="code">
code --list-extensions > vscode-extensions.list
</div><br />
Μεταφέρετε το αρχείο <b>vscode-extensions.list</b> στο νέο σύστημα και μετά με την παρακάτω εντολή θα εγκατασταθούν.<br>
<div class="code">
cat vscode-extensions.list | xargs -L 1 code --install-extension
</div><br />
<br>
<h3>Διάφορες ρυθμίσεις</h3>
Μια ρύθμιση που την είχα κάνει στην εγκατάσταση με flatpak και δεν θυμόμουν ήταν αυτή με την οποία όταν εκτελούσα ένα πρόγραμμα σε C, άνοιγε το ενσωματωμένο τερματικό και εκεί έβλεπα τα αποτελέσματα. Βρήκα το <a href="https://www.javatpoint.com/how-to-run-a-c-program-in-visual-studio-code" target="_blank">How to run a C program in Visual Studio Code?</a> όπου μας λέει όλα αυτά που ανέφερα παραπάνω (με την προσθήκη πως γίνεται και σε Windows). Σε ένα σημείο λέει ότι όταν εκτελείται ο κώδικας, τότε έχουμε ως έξοδο ένα Read-Only αποτέλεσμα χωρίς τη δυνατότητα να εισάγει ο χρήστης δεδομένα.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3MptkAOWldW6nQ0kxTxkLPqX5Sp0sn1H9ZGJ950pjXyA_CozNrXjx5Bvzswfs7xfl0l64NW3352nQGug6VhVmb16o-Oh-T0Cc609BZhRxL8w62vlNtx51xsJ9WxPtHpHMvOuqrYHweBLD/s0/how-to-run-a-c-program-in-visual-studio-code33.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Read-Only Output" border="0" data-original-height="143" data-original-width="887" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3MptkAOWldW6nQ0kxTxkLPqX5Sp0sn1H9ZGJ950pjXyA_CozNrXjx5Bvzswfs7xfl0l64NW3352nQGug6VhVmb16o-Oh-T0Cc609BZhRxL8w62vlNtx51xsJ9WxPtHpHMvOuqrYHweBLD/s0/how-to-run-a-c-program-in-visual-studio-code33.png"/></a></div>
Οπότε λέει να προβούμε στην παρακάτω ρύθμιση.<br><br>
* Ανοίγουμε <b>Αρχείο>Επιλογές>Ρυθμίσεις (File>Preferences>Settings)</b>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPfIXKmOVPJCZ9GD1wq6oK2AQnIlYiG9BbAn6IUpLKuskHGFl67YeGKhWLHzFzyy8uwDbOkQbjOjzaU4g42W78bPRzAAz09UtFZrU0aoiy4qsK0qbKU1uYyoJ-8MhNfZIsBeElgSofQ_1K/s0/how-to-run-a-c-program-in-visual-studio-code34.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="654" data-original-width="720" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPfIXKmOVPJCZ9GD1wq6oK2AQnIlYiG9BbAn6IUpLKuskHGFl67YeGKhWLHzFzyy8uwDbOkQbjOjzaU4g42W78bPRzAAz09UtFZrU0aoiy4qsK0qbKU1uYyoJ-8MhNfZIsBeElgSofQ_1K/s0/how-to-run-a-c-program-in-visual-studio-code34.png"/></a></div>
* Και αφού ανοίξει, κάντε κλικ στο <b>Extensions</b> για να καθορίσουμε τις ρυθμίσεις για τον C Compiler.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo5Z62MmfHqqWJtW9AJE6UubPYng0dP3dk5RjZ_2To8l7o6qwpYq3-awVVwcZPGl0Zmd5hkXWbmzRF08lhdBCfq8y_pg0q0bD-1p59Nup7v3vi3Nkk_PYoPtwgKYUo3UJjR7H1nl_dgEnw/s0/how-to-run-a-c-program-in-visual-studio-code35.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Extensions" border="0" data-original-height="580" data-original-width="804" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo5Z62MmfHqqWJtW9AJE6UubPYng0dP3dk5RjZ_2To8l7o6qwpYq3-awVVwcZPGl0Zmd5hkXWbmzRF08lhdBCfq8y_pg0q0bD-1p59Nup7v3vi3Nkk_PYoPtwgKYUo3UJjR7H1nl_dgEnw/s0/how-to-run-a-c-program-in-visual-studio-code35.png"/></a></div>
* Μετακινηθείτε προς τα κάτω μέχρι να βρείτε το <b>Run Code Configuration</b>.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjsTIqbfqKyO6VtqnO06Y57TFjVm-f_PaKXmBLARSAdBHmalfVsShlAJv4gIdPzug3arry434KqOjYJx9EGQsPOUM9Ojfw6zHUgIIKOSG-yTttwSUSeJTBCdUA47-gZ6n-HI_v_gnFoNC5/s0/how-to-run-a-c-program-in-visual-studio-code36.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Run Code Configuration" border="0" data-original-height="468" data-original-width="792" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjsTIqbfqKyO6VtqnO06Y57TFjVm-f_PaKXmBLARSAdBHmalfVsShlAJv4gIdPzug3arry434KqOjYJx9EGQsPOUM9Ojfw6zHUgIIKOSG-yTttwSUSeJTBCdUA47-gZ6n-HI_v_gnFoNC5/s0/how-to-run-a-c-program-in-visual-studio-code36.png"/></a></div>
* Μετακινηθείτε προς τα κάτω και κάντε κλικ στην επιλογή <b>Run In Terminal</b>.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHBvOQXt4Ouq6JmHTAK-rHZN2BV8M7xYx8bhSlp331Mv_cP8h8eFnWKg58bHG6ToYHrJ-I8gfHPLl2Cbi1TXvGIMe9nrdWZL5R9Q8oMJkjqA4zpHM1HdrWEm6x217YBenSQZhVsTUfPLvH/s0/how-to-run-a-c-program-in-visual-studio-code37.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Run In Terminal" border="0" data-original-height="540" data-original-width="782" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHBvOQXt4Ouq6JmHTAK-rHZN2BV8M7xYx8bhSlp331Mv_cP8h8eFnWKg58bHG6ToYHrJ-I8gfHPLl2Cbi1TXvGIMe9nrdWZL5R9Q8oMJkjqA4zpHM1HdrWEm6x217YBenSQZhVsTUfPLvH/s0/how-to-run-a-c-program-in-visual-studio-code37.png"/></a></div>
Κλείστε και ανοίξτε ξανά το πρόγραμμα για να πάρει τις ρυθμίσεις. Τώρα όταν εκτελείτε ένα πρόγραμμα C, θα υπάρχει αλληλεπόδραση χρήστη με τον υπολογιστή.
<br><br>
Ελπίζω να ήταν πολύ βοηθητικές οι οδηγίες. Μοιραστείτε με τους φίλους σας που αντιμετωπίζουν πρόβλημα εγκατάστασης ή ρυθμίσεων.
<br><br>
Πηγές:<br>
<a href="https://code.visualstudio.com/docs/setup/linux" target="_blank">Visual Studio Code on Linux</a>
Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-37803755046804854472021-10-13T10:59:00.001+03:002021-11-01T22:04:35.275+02:00Εγκατάσταση Eclipse στο Linux<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKk3oAunjJ7AFdixE-SmLaTGWv_wt1vtFRXFrczdQlkT9qf_Tgynryi1u54Db6WH_OYCyfG9luJS8VnOHVasF_0-fOV8qpzWFmoKPlreRzLcpPjwzq_MEdF8VBNtB0wqGllTXtsMzeWUWZ/s1280/eclipse-logo.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Eclipse Logo" border="0" width="200" data-original-height="300" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKk3oAunjJ7AFdixE-SmLaTGWv_wt1vtFRXFrczdQlkT9qf_Tgynryi1u54Db6WH_OYCyfG9luJS8VnOHVasF_0-fOV8qpzWFmoKPlreRzLcpPjwzq_MEdF8VBNtB0wqGllTXtsMzeWUWZ/s200/eclipse-logo.png"/></a></div>
<h1>ΠΡΟΛΟΓΟΣ</h1>
Η συγγραφή κώδικα μπορεί να γίνει με πολλούς τρόπους. Υπάρχουν οι hardcore προγραμματιστές που χρησιμοποιούν vim, nano ή gedit (κάποιον επεξεργαστή κειμένου δηλαδή). Υπάρχουν και αυτοί που βρίσκονται στο στάδιο της εκμάθησης, οπότε καλό είναι να μάθουν να χρησιμοποιούν τα εργαλεία, τα IDE που παρέχει η κάθε γλώσσα προγραμματισμού. Βέβαια όταν μάθουν όλους τους αυτοματισμούς και ευκολίες που προσφέρουν, δύσκολα θα μετακινηθούν σε κειμενογράφους τύπου vim (άσχετα αν είναι πολύ δυνατό εργαλείο με πολλές δυνατότητες). Προσωπικά προτιμώ το <a href="https://eiosifidis.blogspot.com/2021/08/visual-studio-code.html" target="_blank">Visual Studio Code</a> για την συγγραφή κώδικα αλλά υπάρχουν και άλλα IDE, ανάλογα με την γλώσσα προγραμματισμού που δουλεύει ο καθένας. Εμείς εδώ θα δούμε την εγκατάσταση και ρύθμιση του <a href="https://www.eclipse.org/" target="_blank">Eclipse</a> για χρήση με την γλώσσα Java.
<br><br>
<h1>ΕΓΚΑΤΑΣΤΑΣΗ</h1>
Θα δούμε τους τρόπους εγκατάστασης του Eclipse.<br><br>
<h2>FLATPAK</h2>
Τελευταία, όλο και πιο πολύ διαδίδονται οι εγκαταστάσεις μέσω λύσεων flatpak/snap. Προσωπικά προτιμώ το flatpak.
Στην λύση αυτή βλέπουμε να κατεβαίνει η έκδοση java που θα συνεργαστεί με το Eclipse. Δεν θα χρειαστεί να ρυθμίσετε τίποτα. Μπορείτε να βρείτε <a href="https://flathub.org/apps/details/org.eclipse.Java" target="_blank">περισσότερα στην ιστοσελίδα</a>.
<br><br>
Η εγκατάσταση γίνεται με την παρακάτω εντολή:<br>
<div class="code">
flatpak install flathub org.eclipse.Java
</div><br />
Σε Ubuntu 20.04.x, η έκδοση Flatpak είναι παλιά και δεν μπορείτε να εγκαταστήσετε το Eclipse. Οπότε πρέπει να το αναβαθμίσετε, <a href="https://launchpad.net/~alexlarsson/+archive/ubuntu/flatpak" target="_blank">προσθέτοντας το παρακάτω αποθετήριο</a>.<br>
<div class="code">
sudo add-apt-repository ppa:alexlarsson/flatpak<br><br>
sudo apt-get update
</div><br />
Είστε έτοιμοι. Απλά ανοίξτε το Eclipse και χρησιμοποιήστε το.<br /><br />
<h2>SNAP</h2>
Άλλη μια επιλογή, native για Ubuntu είναι η εγκατάσταση snap πακέτου. Για περισσότερες πληροφορίες, <a href="https://snapcraft.io/eclipse" target="_blank">δείτε στην ιστοσελίδα</a>.
<br><br>
Η εγκατάσταση γίνεται με την παρακάτω εντολή:<br>
<div class="code">
sudo snap install eclipse --classic
</div><br />
Είστε έτοιμοι. Απλά ανοίξτε το Eclipse και χρησιμοποιήστε το.<br /><br />
<h2>ΛΗΨΗ ΑΠΟ ΙΣΤΟΣΕΛΙΔΑ</h2>
Εδώ είναι λίγο πιο περίπλοκα τα πράγματα. Πρέπει να βεβαιωθούμε ότι έχουμε εγκαταστήσει την Java και μετά να αποσυμπιέσουμε το πρόγραμμα.
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ Java</h3>
Πριν ξεκινήσουμε την εγκατάσταση, ας δούμε τις διαφορές μεταξύ JRE, OpenJDK και Oracle JDK.<br>
<ul>
<li><b>JRE (Java Runtime Environment)</b> είναι αυτό που χρειάζεται για να εκτελεστεί μια εφαρμογή που βασίζεται σε Java. Αυτό είναι το μόνο που χρειάζεστε εάν δεν είστε προγραμματιστής.</li>
<li><b>JDK (Java Development Kit)</b> είναι αυτό που πρέπει να αναπτύξετε λογισμικό που σχετίζεται με την Java.</li>
<li>H <b><a href="https://openjdk.java.net/" target="_blank">OpenJDK</a></b> είναι υλοποίηση ανοικτού κώδικα του <b>Java Development Kit</b> ενώ το <b><a href="https://www.oracle.com/java/technologies/javase-downloads.html" target="_blank">Oracle JDK</a></b> είναι η επίσημη έκδοση Oracle του Java Development Kit. Ενώ το OpenJDK είναι αρκετό για τις περισσότερες περιπτώσεις, ορισμένα προγράμματα όπως το <a href="https://developer.android.com/studio" target="_blank">Android Studio</a> προτείνει τη χρήση του <a href="https://www.oracle.com/java/technologies/javase-downloads.html" target="_blank">Oracle JDK</a> για αποφυγή ζητήματος διεπαφής χρήστη.</li>
</ul>
Για αρχή δείτε τι έκδοση java έχετε.<br>
<div class="code">
java -version
</div><br>
Εάν έχετε εγκατεστημένη την java, τότε σε ένα σύστημα Ubuntu θα δείτε τα παρακάτω:
<div class="code">
openjdk version "11.0.11" 2021-04-20<br>
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)<br>
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
</div><br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTA69gsq4uuyJlV-VawUkc3ltkBIx26HJMBIaIBWgNu6BePS2HzeYHrflv3W_yMabXNNBaT5w48WyOsVQFCkr1pTuRVtn2ZvAsTTFsrfb9RbOi4yhDrk9C7FjH4K9UOvWzi4HOEsxvJBlB/s665/eclipse-javaversion.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Έκδοση java σε openSUSE" border="0" width="600" data-original-height="451" data-original-width="665" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTA69gsq4uuyJlV-VawUkc3ltkBIx26HJMBIaIBWgNu6BePS2HzeYHrflv3W_yMabXNNBaT5w48WyOsVQFCkr1pTuRVtn2ZvAsTTFsrfb9RbOi4yhDrk9C7FjH4K9UOvWzi4HOEsxvJBlB/s600/eclipse-javaversion.jpg"/></a></div>
Ενώ σε ένα σύστημα που δεν έχει εγκατεστημένη την java, θα δείτε ένα αποτέλεσμα του τύπου:<br>
<div class="code">
The program ‘java’ can be found in the following packages:<br>
* default-jre<br>
* gcj-4.6-jre-headless<br>
* openjdk-6-jre-headless<br>
* gcj-4.5-jre-headless<br>
* openjdk-7-jre-headless<br>
Try: sudo apt-get install
</div><br>
<h4>Εγκατάσταση JRE σε Debian/Ubuntu</h4>
Για εγκατάσταση του Java Runtime Environment<br>
<div class="code">
sudo apt install default-jre
</div><br>
<h4>Εγκατάσταση OpenJDK σε Debian/Ubuntu</h4>
Για εγκατάσταση του OpenJDK<br>
<div class="code">
sudo apt install default-jdk
</div><br>
<h4>Εγκατάσταση openSUSE</h4>
Στο openSUSE να έχετε εγκατεστημένα τα παρακάτω (έκδοση Java 11):<br>
<div class="code">
sudo zypper in java-11-openjdk-devel java-11-openjdk java-11-openjdk-headless
</div><br>
<h4>Εγκατάσταση Oracle JDK </h4>
Για εγκατάσταση του <a href="https://www.oracle.com/java/technologies/javase-downloads.html" target="_blank">Oracle JDK</a>, κατεβάστε και εγκαταστείστε το αντίστοιχο αρχείο για την διανομή σας. <br><br>
Εναλλακτικά σε Ubuntu based διανομές, μπορείτε να εισάγετε το αποθετήριο:<br>
<div class="code">
sudo add-apt-repository ppa:webupd8team/java<br>
sudo apt-get update
</div><br>
Και στη συνέχεια για την java έκδοση 16 (αυτή κυκλοφορεί τελευταία. Αν θέλετε να αλλάξετε έκδοση, απλά αλλάξτε το νούμερο), μπορείτε να την εγκαταστήσετε με τις παρακάτω εντολές:<br>
<div class="code">
sudo apt install oracle-java16-installer<br>
sudo apt install oracle-java16-set-default
</div><br>
Γενικά σε <a href="https://en.opensuse.org/SDB:Installing_Java" target="_blank">openSUSE, υπάρχει διαθέσιμη τεκμηρίωση</a>.<br><br>
Για Arch Linux, υπάρχει και <a href="https://wiki.archlinux.org/title/java" target="_blank">τεκμηρίωση στο wiki</a>.
<br><br>
<h3>ΕΓΚΑΤΑΣΤΑΣΗ Eclipse</h3>
Η εγκατάσταση του Eclipse ακολουθεί. Μετακινηθείτε στην <a href="https://www.eclipse.org/downloads/" target="_blank">ιστοσελίδα των λήψεων</a>. Πατήστε το <b>Download x86_64</b> και θα κατέβει ένα αρχείο με το όνομα <b>eclipse-inst-jre-linux64.tar.gz</b>.<br><br>
Αποσυμπιέστε το και μετακινηθείτε στον φάκελο. Εκεί πατήστε διπλό κλικ στο <b>eclipse-inst</b>.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi45uABpTJ-h0SLwCXDLo5pjGF_IPVjaCezNJglotSgnvl63p5Oc4yJ4ea0ZkRBthOfk3C8CajHeDZtLCskU0hoxR6dKCjnOQVUTu6pOL_f-k8ULnKde7tQgeKv0VE8wxuHomV1_dXqYxO8/s1280/eclipse-nautilus.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="600" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi45uABpTJ-h0SLwCXDLo5pjGF_IPVjaCezNJglotSgnvl63p5Oc4yJ4ea0ZkRBthOfk3C8CajHeDZtLCskU0hoxR6dKCjnOQVUTu6pOL_f-k8ULnKde7tQgeKv0VE8wxuHomV1_dXqYxO8/s600/eclipse-nautilus.png"/></a></div>
<br>
Στο παράθυρο που θα ανοίξει, επιλέξτε <b>Eclipse IDE for Java Developers</b>.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq8yXkf1dnHU6m7t8bYWF-PEKbQw6LfCFViw52pOSnGG4VoPWs875oypw9YSYRAe_h3EgKoOBUCGZ5zpHGDu-mglpB628VyfTM811WYoit-vkBTzSxwFRyKTKjpXu9uERDArHQVcMw2cOD/s0/eclipse-forjavadevelopers.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Eclipse IDE for Java Developers" border="0" data-original-height="599" data-original-width="691" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq8yXkf1dnHU6m7t8bYWF-PEKbQw6LfCFViw52pOSnGG4VoPWs875oypw9YSYRAe_h3EgKoOBUCGZ5zpHGDu-mglpB628VyfTM811WYoit-vkBTzSxwFRyKTKjpXu9uERDArHQVcMw2cOD/s0/eclipse-forjavadevelopers.jpg"/></a></div>
<br>
Στο παράθυρο αυτό, δεν φαινόταν τα γράμματα στο πεδίο <i>Java 11+ VM</i>. Μπορεί να φταίει το θέμα από το γραφικό περιβάλλον. Όπως και να έχει, πατήστε στο βελάκι και θα εμφανιστεί η διαδρομή της Java. Αν δεν βλέπετε τίποτα, τότε μάλλον πρέπει να τσεκάρετε πάλι εάν είναι εγκατεστημένη η Java.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUy3qjjqmQm98tKPFYyICYlW5oGElZuzi2BTH35bpJuw50GRXcCOAkteD0Ej0s-2S8shRfqVFrmiNI8KGAOHI9EgQ77qEE30sFogjGk-ey2Gknb2SnR_q2ByhJIj-DkDdy5YE39Zg0tM2h/s0/eclipse-openjdk.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Διαδρομή Java 11+ VM" border="0" data-original-height="655" data-original-width="865" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUy3qjjqmQm98tKPFYyICYlW5oGElZuzi2BTH35bpJuw50GRXcCOAkteD0Ej0s-2S8shRfqVFrmiNI8KGAOHI9EgQ77qEE30sFogjGk-ey2Gknb2SnR_q2ByhJIj-DkDdy5YE39Zg0tM2h/s0/eclipse-openjdk.jpg"/></a></div>
<br>
Επιλέξτε και εάν θέλετε να προστεθεί εκκινητής στο μενού αλλά και στην επιφάνεια εργασίας. Πατήστε <b>Install</b> και περιμένετε.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLWjUtzgRfugJh-y8sZo3jtdMdpMa_WQFb8qktWUR6rlzWZINvgNAOqcMgwqzLaoQLr1bFYX5be7hP9UNpB-DSUsRfuMhZwvnLc6PzE3nP2NF3WIVbZW_c-ZkVjq7JF3I0ZYF_aOavMvY9/s0/eclipse-ready2install.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Το Eclipse είναι έτοιμο για εγκατάσταση" border="0" data-original-height="598" data-original-width="672" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLWjUtzgRfugJh-y8sZo3jtdMdpMa_WQFb8qktWUR6rlzWZINvgNAOqcMgwqzLaoQLr1bFYX5be7hP9UNpB-DSUsRfuMhZwvnLc6PzE3nP2NF3WIVbZW_c-ZkVjq7JF3I0ZYF_aOavMvY9/s0/eclipse-ready2install.jpg"/></a></div>
<br>
Αναμένετε να ολοκληρωθεί η εγκατάσταση.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLnMl9g9AY5rc20uRfWg298Tbf-OgqRzhnfCMExL8CY9D5SdOCWXc7y6dmhDkVX0q3yJNUw9HPuh5SiyhdfvzMTFiJsepSYd7wOGsuvPL2oAmpiLUI7jORtZdz6kRF6SSyowBdgysFuM7J/s0/eclipse-installing.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εγκατάσταση Eclipse" border="0" data-original-height="595" data-original-width="681" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLnMl9g9AY5rc20uRfWg298Tbf-OgqRzhnfCMExL8CY9D5SdOCWXc7y6dmhDkVX0q3yJNUw9HPuh5SiyhdfvzMTFiJsepSYd7wOGsuvPL2oAmpiLUI7jORtZdz6kRF6SSyowBdgysFuM7J/s0/eclipse-installing.jpg"/></a></div>
<br>
Αφού ολοκληρωθεί η εγκατάσταση, πατήστε στο <b>Launch</b> για να εκκινήσει το πρόγραμμα.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhASPn3NcwommB31wsAqOnwcR9cr_sEbF02sZsNTVisMXq8IXHYQUip6zmLyw4ZS6cWPvwBR9N6v54k1v-y3VV7bOXSDEm9lWfEdM73quqLicV-VsfrPvz_RF9YmkYzTmeVDZHPBjIuBgAn/s0/eclipse-launch.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εκκίνηση του Eclipse" border="0" data-original-height="598" data-original-width="679" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhASPn3NcwommB31wsAqOnwcR9cr_sEbF02sZsNTVisMXq8IXHYQUip6zmLyw4ZS6cWPvwBR9N6v54k1v-y3VV7bOXSDEm9lWfEdM73quqLicV-VsfrPvz_RF9YmkYzTmeVDZHPBjIuBgAn/s0/eclipse-launch.jpg"/></a></div>
<br>
Θα σας ρωτήσει ποιον φάκελο θέλετε να χρησιμοποιήσετε ως φάκελο για να αποθηκεύετε τα αρχεία που θα φτάχνετε. Μπορείτε να αφήσετε τον φάκελο ως έχει. Πατήστε <b>Launch</b> και περιμένετε.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir07EjxkDNfaeKqsLZ3-mgMPrCuWGgMG099YXgNXIzrSEntB5zQzx37Y68AgdJhfZBuFvgesnsiUbAo2KypWEMqfJi-TL4rDEEIWHH4s96VMAWwoORcF4od_MXcfKU8u6eS6IssqyJx9JX/s0/eclipse-workspace.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Eclipse workspace" border="0" data-original-height="511" data-original-width="763" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir07EjxkDNfaeKqsLZ3-mgMPrCuWGgMG099YXgNXIzrSEntB5zQzx37Y68AgdJhfZBuFvgesnsiUbAo2KypWEMqfJi-TL4rDEEIWHH4s96VMAWwoORcF4od_MXcfKU8u6eS6IssqyJx9JX/s0/eclipse-workspace.jpg"/></a></div>
<br>
Αναμένετε μέχρι να τελειώσει το άνοιγμα του Eclipse.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl8dtfDCL636-6NRGvAWCRX-hhYR6tjboQpX3O6CETfn1z64q08wWWdZTf3WbZII9zglEL9HqFI8UbXyQcU95htYxsznXMUNTaXL_poRYXbuASpjpClhKH6KWGJmIbGxQJXNAmkXrSdAT_/s0/eclipse-opening.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Άνοιγμα Eclipse" border="0" data-original-height="406" data-original-width="552" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl8dtfDCL636-6NRGvAWCRX-hhYR6tjboQpX3O6CETfn1z64q08wWWdZTf3WbZII9zglEL9HqFI8UbXyQcU95htYxsznXMUNTaXL_poRYXbuASpjpClhKH6KWGJmIbGxQJXNAmkXrSdAT_/s0/eclipse-opening.jpg"/></a></div>
<br>
Αφού ανοίξει, μπορούμε να γράψουμε και το πρώτο πρόγραμμα <a href="https://www.programiz.com/java-programming/hello-world" target="_blank">Hello world</a> για να δούμε εάν δουλεύει.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX-jhUw4GRuuYNy2XmCFcc1_GHHJe2ZaUSFkHKSXnwUF-vPt8k_LAFMHyMOcfjQO7Tm_7bRe8L0aKLZwPj7xbB-pFAH6dc56ohMvCebduO6LcbMraOqb__YKaaVM0V41u3k35kMgH7UyRp/s0/eclipse-helloworld.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="800" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX-jhUw4GRuuYNy2XmCFcc1_GHHJe2ZaUSFkHKSXnwUF-vPt8k_LAFMHyMOcfjQO7Tm_7bRe8L0aKLZwPj7xbB-pFAH6dc56ohMvCebduO6LcbMraOqb__YKaaVM0V41u3k35kMgH7UyRp/s0/eclipse-helloworld.png"/></a></div>
<br>
Και πλέον είμαστε έτοιμοι για να γράψουμε τα προγράμματά μας στην γλώσσα Java.<br><br>
Περισσότερες πληροφορίες δείτε στην σελίδα <a href="https://wiki.eclipse.org/Eclipse/Installation" target="_blank">https://wiki.eclipse.org/Eclipse/Installation</a>Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-91257836010707577202021-09-07T12:03:00.004+03:002021-09-07T12:03:44.141+03:00Απενεργοποίηση ήχου κάμερας κατά την λήψη screenshot<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMJOuUaFr198HcQG3L_2A8X2mgvpWVLmLLpfcBKpIWvrU4Am0YuLMxO_PnpGxURRpnXVL6L8iw4ppmbGYZm5Lfa2igdPk-QtCUtkiCaV12ZZxVG2MZZTpD9X_OHK_BtZ9cdy-giqF7wmbp/s513/camera.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Camera" border="0" width="200" data-original-height="381" data-original-width="513" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMJOuUaFr198HcQG3L_2A8X2mgvpWVLmLLpfcBKpIWvrU4Am0YuLMxO_PnpGxURRpnXVL6L8iw4ppmbGYZm5Lfa2igdPk-QtCUtkiCaV12ZZxVG2MZZTpD9X_OHK_BtZ9cdy-giqF7wmbp/s200/camera.png"/></a></div>
<h1>ΠΡΟΒΛΗΜΑ</h1>
Σε συνέχεια του άρθρου <a href="https://eiosifidis.blogspot.com/2021/02/enosi-eikonon-se-pdf.html" target="_blank">Ένωση πολλών εικόνων σε ένα .pdf</a>, θα δουμε πως μπορούμε να απενεργοποιήσουμε τον ήχο κάμερας που κάνει ο υπολογιστής με το πάτημα του πλήκτρου <b>PrtScr</b>. Αν δεν βγάζετε πολλά στιγμιότυπα οθόνης, δεν θα σας πειράζει, αλλά αν τυχόν βγάζετε συχνά, θα δείτε ότι είναι ενοχλητικό.<br><br>
<h1>ΛΥΣΗ</h1>
Όσο και να έψαξα κάποια ρύθμιση, δεν βρήκα κάτι. Η λύση δόθηκε με την «διαγραφή» του ήχου και αντικατάστασή του με ένα κενό ήχο. Πως γίνεται αυτό;<br><br>
Για αρχή μετονομάστε τον ήχο για να το έχετε σε περίπτωση που θέλετε να τον επαναφέρετε. Αυτό γίνεται με την εντολή (μία γραμμή):<br>
<div class="code">
sudo mv /usr/share/sounds/freedesktop/stereo/camera-shutter.oga /usr/share/sounds/freedesktop/stereo/camera-shutter-backup.oga
</div><br />
Αντικαταστήστε το με ένα κενό ήχο (μία γραμμή).<br>
<div class="code">
sudo ffmpeg -f lavfi -i anullsrc -t 0.5 -c:a libvorbis /usr/share/sounds/freedesktop/stereo/camera-shutter.oga
</div><br />
Σε περίπτωση που θέλετε να επαναφέρετε τον ήχο της κάμερας, απλά δώστε την εντολή (μία γραμμή):<br>
<div class="code">
sudo mv /usr/share/sounds/freedesktop/stereo/camera-shutter-backup.oga /usr/share/sounds/freedesktop/stereo/camera-shutter.oga
</div><br />
Αν έχετε βρει κάποιον άλλο τρόπο, αφήστε τον στα σχόλια.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-67972950974628562832021-08-17T11:30:00.007+03:002021-08-17T11:35:39.371+03:00Ποια είναι η ροή μετάφρασης στο GNOME<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisM31Fvw5fa7hFHcozXaEy0fHAoxu6aSZMGVkKUtx5PhY7Ch7zAjfFnqCDJ2ANM1ZTW_mKGJLMT7iqMo3DLCBTE22H6An1nQVKSSebYygbxwQJWtMKGsBe3-YLhhkwPKQ-KEVya6z7u_ns/s600/gnome.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="GNOME Logo" border="0" width="320" data-original-height="600" data-original-width="600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisM31Fvw5fa7hFHcozXaEy0fHAoxu6aSZMGVkKUtx5PhY7Ch7zAjfFnqCDJ2ANM1ZTW_mKGJLMT7iqMo3DLCBTE22H6An1nQVKSSebYygbxwQJWtMKGsBe3-YLhhkwPKQ-KEVya6z7u_ns/s320/gnome.png"/></a></div>
<h1>ΠΡΟΒΛΗΜΑ</h1>
Δεν ξέρω προγραμματισμό, πως μπορώ να συνεισφέρω σε ένα έργο ανοικτού λογισμικού;<br>
Αυτή είναι η ερώτηση που δέχομαι συχνά όταν τους εξηγώ την εμπλοκή μου στο ανοικτό λογισμικό.<br>
Εγώ απαντώ με ερώτηση. Ξέρεις Αγγλικά; Μπορείς να μεταφράσεις; Μπορείς να γράψεις κάποιο άρθρο (είτε μετάφραση, είτε νέο).<br>
Εάν λάβω θετική απάντηση, τότε πρέπει να βρούμε ποιο έργο ανοικτού λογισμικού θέλει και μπορεί να μεταφράσει.<br>
<br>
<h2>ΠΡΟΛΟΓΟΣ</h2>
Εδώ θα δούμε πως μεταφράζουμε στο GNOME. Υπάρχουν αναλυτκές οδηγίες στην <a href="https://gnome.gr/contribute/#translate" target="_blank">ιστοσελίδα του GNOME</a>. Το GNOME χρησιμοποιεί μια διαδικτυακή εφαρμογή που ονομάζεται <a href="https://wiki.gnome.org/DamnedLies" target="_blank">Damned Lies (DL)</a> για να διαχειριστεί τη ροή της μεταφραστικής εργασίας και να παράγει στατιστικά στοιχεία για να παρακολουθεί την πρόοδο της μετάφρασης. Το DL προορίζεται ειδικά για χρήση στο GNOME. Παλαιότερα υπήρχε ένα ξεχωριστό εργαλείο που ονομαζόταν <b>Vertimus</b> αλλά έχει συγχωνευτεί σε DL. Οι συμμετέχοντες στη μετάφραση του GNOME ανήκουν σε ομάδες μετάφρασης, μία για κάθε γλώσσα στην οποία μεταφράζεται το GNOME και μπορούν να έχουν έναν από τους τρεις ρόλους: translator, reviewer και committer. <br><br>
<h3>Ρόλοι μετάφρασης</h3>
<h4>1. Translators (μεταφραστές)</h4>
Οι Μεταφραστές είναι άτομα που βοηθούν στις μεταφράσεις του GNOME σε μια συγκεκριμένη γλώσσα. Προστέθηκαν στην ομάδα μετάφρασης της γλώσσας αυτής. Οι μεταφραστές μπορούν να προσθέσουν σχόλιο σε μια συγκεκριμένη μετάφραση αρχείου PO, μπορούν να κρατήσουν το αρχείο για μεταφράση και μπορούν να προτείνουν νέες μεταφράσεις μεταφορτώνοντας ένα νέο αρχείο PO. Οι προτεινόμενες μεταφράσεις θα αναθεωρηθούν από άλλα μέλη της ομάδας.<br><br>
<h4>2. Reviewer (ελεγκτές)</h4>
Οι ελεγκτές είναι μεταφραστές του GNOME στους οποίους ανέθεσε ο συντονιστής της ομάδας να ελέγξουν τις πρόσφατα προτεινόμενες μεταφράσεις (από τους μεταφραστές). Έχουν πρόσβαση σε όλες τις ενέργειες που είναι διαθέσιμες σε μεταφραστές με την προσθήκη κάποιας εργασίας ανασκόπησης (κλειδώνουν ένα αρχείο μετάφρασης για να το διορθώσουν και το επισημαίνουν ως έτοιμο να συμπεριληφθεί-υποβληθεί στο GNOME).<br><br>
<h4>3. Committer (καταχωριστές)</h4>
Οι καταχωριστές είναι άτομα με δικαιώματα να κάνουν αλλαγές στις μεταφράσεις του GNOME που θα κυκλοφορήσουν. Εκτός εάν μια μετάφραση δεν καταχωρήθηκε από έναν καταχωριστή, θα παραμείνει ορατή μόνο στη διεπαφή ιστού, ως συνημμένο αρχείο PO. Οι καταχωριστές έχουν πρόσβαση σε όλες τις ενέργειες ενός ελεγκτή με την προσθήκη της επισήμανσης ενός αρχείου PO ως καταχωρημένου και αρχειοθετούν την συζήτηση για νέες προτάσεις.<br>
<br>
<h3>Η ροή μετάφρασης</h3>
Η ροή εργασίας που χρησιμοποιείται για τη διαχείριση των μεταφράσεων ονομάζεται <b>Vertimus Workflow</b>. Περιγράφει τις διάφορες καταστάσεις και ενέργειες που είναι διαθέσιμες κατά τη διαδικασία μετάφρασης μιας ενότητας. Την ροή μπορείτε να την δείτε στην παρακάτω φωτογραφία.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgar6IPti6rz_RCrlf996S2CY0zX1TaCLrk6I3UyJJlnRcPdBjhR6J2b6_XmZ4LTE5UpANoLEH3SpTmkw_sLx8HrFUZOYqFPm234teTdw4-C2ZVvfYh5FLRZ8DUT-h0TJOJsW9Zi0dFZ202/s1136/workflow-translation.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Vertimus Workflow" border="0" height="600" data-original-height="1136" data-original-width="658" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgar6IPti6rz_RCrlf996S2CY0zX1TaCLrk6I3UyJJlnRcPdBjhR6J2b6_XmZ4LTE5UpANoLEH3SpTmkw_sLx8HrFUZOYqFPm234teTdw4-C2ZVvfYh5FLRZ8DUT-h0TJOJsW9Zi0dFZ202/s600/workflow-translation.png"/></a></div>
<br>
Αφού μάθαμε τον κάθε ρόλο, θα δούμε λίγο την διαδικασία. <br>
Η <a href="https://l10n.gnome.org/languages/el/" target="_blank">Ελληνική κοινότητα, μεταφράζει εδώ</a>.<br><br>
<ul>
<li>Η βασική κατάσταση μιας ενότητας είναι <b>Καμία τρέχουσα ενέργεια</b>, η οποία εμφανίζεται ως «Ανενεργή» στο Damned lies.</li>
<li>Ένας μεταφραστής μπορεί στη συνέχεια να αποφασίσει να εργαστεί σε μια ενότητα, οπότε θα κάνει <b>Ανάληψη για μετάφραση</b> που αλλάζει την κατάσταση από <b>Καμία τρέχουσα ενέργεια -> Ανάληψη για μετάφραση</b>.</li>
<li>Ένα άλλο μονοπάτι που δίνει τη δυνατότητα σε κάποιον να κάνει <b>Ανάληψη για μετάφραση</b> είναι όταν το αρχείο μετακινείται από την κατάσταση <b>Ανασκόπησης -> Μεταφράσεων</b>. Αυτό συμβαίνει όταν μια ενότητα δεν έχει μεταφραστεί σωστά.</li>
<li>Όταν ολοκληρωθεί η μετάφραση, ο μεταφραστής μπορεί στη συνέχεια να ανεβάσει τη νέα μετάφραση, και έτσι αλλάζει την κατάσταση από τη <b>Μετάφραση -> Μεταφρασμένο</b>.</li>
<li>Και πάλι, εάν μια ενότητα χρειάζεται να βελτιωθεί μετά τη μετάφραση, μετακινείται από το <b>Μεταφρασμένο -> Μετάφραση</b>.</li>
<li>Λάβετε υπόψη ότι οι μεταφραστές μπορούν να προσθέσουν σχόλια σε οποιοδήποτε σημείο για να δώσουν περισσότερο περιεχόμενο στη δουλειά τους.</li>
<li>Αφού έχει μεταφραστεί από τον μεταφραστή, έχει ελεγχθεί για λάθη στη μετάφραση, τότε είναι έτοιμο να καταχωρηθεί από τον καταχωριστή στο αποθετήριο του GNOME. <br><b>ΣΗΜΕΙΩΣΗ:</b> Οι μεταφραστές πρέπει να έχουν εισάγει πλήρως το όνομά τους ώστε να μπορέσει να γίνει καταχώρηση του αρχείου. Αλλιώς θα πρέπει ο συντονιστής να επικοινωνήσει με τον μεταφραστή, να το συμπληρώσει για να μπορέσει να γίνει καταχώρηση σωστά. Όμως επειδή είμαστε εθελοντές και ο χρόνος του καθενός είναι πολύτιμος, υπάρχει περίπτωση απλά να γίνει καταχώρηση με χρήση όνομα άλλου μεταφραστή.</li>
</ul>
<br>
<h2>ΠΗΓΕΣ/ΠΕΡΙΣΣΟΤΕΡΗ ΑΝΑΓΝΩΣΗ</h2>
<ul>
<li><a href="https://www.apertis.org/designs/internationalization/internationalization.pdf" target="_blank">APERTIS - Internationalization</a></li>
<li><a href="https://wiki.gnome.org/TranslationProject/ContributeTranslations" target="_blank">GNOME Wiki</a></li>
<li><a href="https://socialsourcecommons.org/tool/show/2642/" target="_blank">Social Source Commons</a></li>
</ul>Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-47259368070459427312021-07-23T12:00:00.001+03:002021-07-23T12:00:00.213+03:00Μοντέλα ανάπτυξης και συνεργασίας openSUSE και SLE<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFlqFOV7Crshv82AwSWMNgRxzUaszi8U-sF1eZ7p7BAdIfucSWiV4Ps8UOG1o_DSv82pPyB0Gp9KH4dHgem3zboYHhnxAgDRKWUM0v00YLF4L8yfjDRpBSefsO7kfAmYbmauQvl6G97LVR/s485/Opensuse-logo.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE" border="0" width="400" data-original-height="304" data-original-width="485" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFlqFOV7Crshv82AwSWMNgRxzUaszi8U-sF1eZ7p7BAdIfucSWiV4Ps8UOG1o_DSv82pPyB0Gp9KH4dHgem3zboYHhnxAgDRKWUM0v00YLF4L8yfjDRpBSefsO7kfAmYbmauQvl6G97LVR/s400/Opensuse-logo.png"/></a></div>
<h2>Τύποι διανομών Linux</h2>
Κάτι που δεν έχω καταπιαστεί σε κάποιο άρθρο είναι οι διαφορετικοί τύποι διανομών Linux που μπορείτε να βρείτε. Θα αναφέρω επιγραμματικά τους διαφορετικούς τύπους διανομών Linux, καθώς γνωρίζετε λίγο περισσότερα σχετικά με το τι είναι μια διανομή Linux και την εξήγηση της τρέχουσας σχέσης μεταξύ του openSUSE και του SLE.
<br><br>
Πρώτα λοιπόν, υπάρχουν τρεις βασικοί τύποι διανομών Linux που καθορίζονται από τους κύκλους κυκλοφορίας τους και, συνεπώς, από το κοινό τους:
<h3>Κυλιόμενη Έκδοση:</h3>
<ul>
<li>Τελευταία λέξη της τεχνολογίας</li>
<li>Κυκλοφορία το συντομότερο δυνατό (CI / CD)</li>
<li>Παραδείγματα: openSUSE Tumbleweed, ArchLinux, Manjaro, Gentoo</li>
</ul>
<br>
<h3>Τακτική Έκδοση:</h3>
<ul>
<li>Κυκλοφορία από μια έως δύο φορές το χρόνο</li>
<li>Ενημερώνει ολόκληρη τη διανομή σε κάθε κυκλοφορία</li>
<li>Παραδείγματα: Ubuntu, Fedora, Debian</li>
</ul>
<br>
<h3>Έκδοση μακροπρόθεσμης υποστήριξης / Εκδόσεις για επιχειρήσεις:</h3>
<ul>
<li>Αργός ρυθμός "ανάπτυξης" (περίπου κυκλοφορεί ετησίως)</li>
<li>Ελάχιστα προγράμματα αναβαθμίζονται μεταξύ των δευτερευουσών κυκλοφοριών. Μόνο η κύρια κυκλοφορία φέρνει μεγάλες αλλαγές</li>
<li>Παραδείγματα: openSUSE Leap, Ubuntu LTS, SUSE Linux Enterprise Server, SUSE Linux Enterprise Desktop, RHEL</li>
</ul>
<br>
Αυτή είναι η βάση για την κατανόηση των σχέσεων μεταξύ SUSE Linux Enterprise και το openSUSE. Όπως θα δούμε στην επόμενη ενότητα, τα openSUSE Tumbleweed, openSUSE Leap και SUSE Linux Enterprise συνδέονται μεταξύ τους.
<br><br>
<h2>Κοινή ανάπτυξη openSUSE & SLE</h2>
Ακολουθεί μια απλή εικόνα που περιγράφει τη σχέση μεταξύ του openSUSE & SLE από την ημερομηνία κυκλοφορίας του Leap 15.0 (25 Μαΐου 2018):
<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOOjDqCBBm4JOHdX-ORKuA90T5dOfUya-ZYFV1yo4iUGLTaandvYIFMeHEImE15HWVDKgPRoghVJBkZ29KQgipNGbU_Ebzbxxwb7OVLHWQvHqbDj_eaoJVDHvVfu7UkTqv9U-Wr4D5hQtR/s989/opensuse-sle.001.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Κοινή ανάπτυξη openSUSE & SLE" border="0" width="600" data-original-height="521" data-original-width="989" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOOjDqCBBm4JOHdX-ORKuA90T5dOfUya-ZYFV1yo4iUGLTaandvYIFMeHEImE15HWVDKgPRoghVJBkZ29KQgipNGbU_Ebzbxxwb7OVLHWQvHqbDj_eaoJVDHvVfu7UkTqv9U-Wr4D5hQtR/s600/opensuse-sle.001.png"/></a></div>
<br>
Το Factory Project είναι το αποθετήριο για ανάπτυξη κώδικα όπου βασίζονται όλες οι διανομές SUSE και openSUSE, ΔΕΝ είναι διανομή Linux! Είναι η άμεση πηγή για το openSUSE Tumbleweed και τελικά καταλήγει στις διανομές openSUSE Leap και SUSE Linux Enterprise. Με απλά λόγια, το Factory είναι το αποθετήριο ανάπτυξης για το openSUSE και το SUSE!
<br><br>
Τώρα ίσως αναρωτιέστε ποια είναι η σχέση Factory and openSUSE Tumbleweed; Είναι πολύ απλό! Το Factory λαμβάνει μια συνεχή ροή κώδικα χωρίς καμία σωστή <b>Διασφάλιση Ποιότητας</b> εκτός από κάποια ανασκόπηση κώδικα (κυρίως από bots), οπότε η κοινότητα του openSUSE δημιουργεί στιγμιότυπα του Factory που έχουν δοκιμαστεί με το <a href="https://openqa.opensuse.org/" target="_blank">openQA</a>. Όταν ένα στιγμιότυπο είναι απαλαγμένο από σφάλματα, αποτελεί ενημέρωση για το openSUSE Tumbleweed, ως εκ τούτου χαρακτηρίζεται ως κυλιόμενη έκδοση.
<br><br>
Στη συνέχεια πιο κάτω στην εικόνα είναι η σχέση μεταξύ openSUSE Tumbleweed, openSUSE Leap και SUSE Linux Enterprise.
<br><br>
Με βάση το κοινό πρόγραμμα, το openSUSE Leap και το SLE έχουν ένα προβλέψιμο χρονικό πλαίσιο κυκλοφορίας: <b>μια κυκλοφορία κάθε 12 μήνες</b> και μια επικάλυψη υποστήριξης <i>6 μηνών</i> για την προηγούμενη και τη νέα κυκλοφορία. Επομένως έρθει η στιγμή, γίνεται ένα στιγμιότυπο του openSUSE Tumbleweed και οι διανομές openSUSE Leap και SLE θα χρησιμοποιήσουν αυτό το στιγμιότυπο για να δημιουργηθούν οι επόμενες εκδόσεις των διανομών.
<br><br>
Με αυτήν την εικόνα, βλέπουμε ότι είναι μόνο μια ομάδα πηγών πακέτων που θα χρησιμοποιήθούν για την κατασκευή της αντίστοιχης διανομής. Αλλά προτού δούμε πως χτίζεται, σημειώστε ότι είναι μια απλοποιημένη προβολή επειδή υπάρχει πάντα εναλλαγή μεταξύ openSUSE Leap / SLE και openSUSE Tumbleweed. Δεν είναι συγχρονισμός πακέτων προς μια κατεύθυνση, επειδή κατά τη φάση ανάπτυξης των διανομών, εντοπίζονται σφάλματα και φυσικά οι διορθώσεις υποβάλλονται πίσω στο Factory, έτσι ώστε το openSUSE Tumbleweed να λαμβάνει επίσης διορθώσεις από τη διαδικασία.
<br><br>
Στην εταιρία SUSE, <a href="https://opensource.suse.com/" target="_blank">ο ανοικτός κώδικας είναι στα γονίδια των υπαλλήλων</a>, οπότε πάντα συνεισφέρουν στο openSUSE, αλλά από το 2017, η υπεύθυνη ομάδα για την κυκλοφορία της SUSE είχε επιβάλει έναν κανόνα που ονομάζεται «<a href="https://opensource.suse.com/suse-open-source-policy" target="_blank">Factory First Policy</a>», ο οποίος αναγκάζει τις υποβολές κώδικα για το SLE να προωθηθούν πρώτα στο Factory πριν εισαχθούν στην διανομή SLE. Αυτή είναι η συνέχεια της αρχής «Upstream First» στο επίπεδο διανομής. Με αυτό τον τρόπο, μειώνεται η προσπάθεια συντήρησης και αξιοποιείται η κοινότητα.
<br><br>
Όταν γίνεται μια υποβολή κώδικα από υπάλληλο της SUSE για την ενσωμάτωση στην SLE15, ένας αυτοματοποιημένος έλεγχος θα διασφαλίσει ότι έγινε παρόμοια υποβολή στο αποθετήριο Factory. Εάν δεν έγινε, η υποβολή θα απορριφθεί αυτόματα και θα απαιτήσει από την υπεύθυνη ομάδα για την κυκλοφορία της SUSE να ρίξει μια πιο προσεκτική ματιά και να ζητήσει την υποβολή κώδικα στο αποθετήριο Factory. Με αυτήν την πολιτική «Factory First Policy», διασφαλίζεται ότι οποιαδήποτε ανάπτυξη της SLE ωθείται και στο openSUSE ακόμη και πριν γίνει δεκτή στην SLE!
<br><br>
<h2>Πώς «χτιζόταν» οι openSUSE & SLE μέχρι τώρα</h2>
Ας δούμε λίγο τεχνικά πώς δημιουργήθηκαν οι διανομές openSUSE & SLE μέχρι την έκδοση openSUSE Leap 15.2 και την SUSE Linux Enterprise 15 Service Pack 2.
<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAwHQyFhf5FpFCQa6TgPuMq3FrId9tB-GsAMHPDOdNTrSBQYvUZe5qrhpmoqvH22R_8hIy8CqP_L37JQV1uzs8W3HgACJQh8e5hHtMbMTliOyzBWYyvJYfMcyoWbPUpZnRuWPk0jQVG_ee/s833/opensuse-sle.002.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Πώς «χτίζονται» οι openSUSE & SLE μέχρι τώρα" border="0" width="600" data-original-height="720" data-original-width="833" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAwHQyFhf5FpFCQa6TgPuMq3FrId9tB-GsAMHPDOdNTrSBQYvUZe5qrhpmoqvH22R_8hIy8CqP_L37JQV1uzs8W3HgACJQh8e5hHtMbMTliOyzBWYyvJYfMcyoWbPUpZnRuWPk0jQVG_ee/s600/opensuse-sle.002.png"/></a></div>
<br>
Η κορυφή της εικόνας αναφέρθηκε στο προηγούμενο τμήμα του άρθρου. Γίνεται χρήση της ίδιας ομάδας πηγών πακέτων για τη δημιουργία της openSUSE Leap και της SUSE Linux Enterprise Server.
<br><br>
Αυτό συμβαίνει επειδή το openSUSE Leap και το SLE ήθελαν
<ul>
<li>να μοιράζονται άμεσα μια βασική σειρά πακέτων (πράσινο σκούρο διαμάντι στην κορυφή)</li>
<li>να έχουν «επιπλέον» πακέτα (πράσινα ανοικτό σχήμα «V») που μπορούν να ενημερώνονται πιο συχνά ή να έχουν διαφορετικό επίπεδο υποστήριξης</li>
</ul>
<br>
Για την openSUSE είναι πολύ απλό, το μεγαλύτερο διαμάντι (πράσινο σκούρο + πράσινο ανοικτό) αντιπροσωπεύει ολόκληρη τη διανομή του openSUSE Leap με όλα τα επίσημα πακέτα.
<br><br>
Για την SUSE Linux Enterprise, οι επίσημες διανομές και πακέτα είναι μόνο το πράσινο σκούρο διαμάντι στην κορυφή! Αλλά το υπόλοιπο πράσινο ανοικτό "V" θα είναι διαθέσιμο στο <a href="https://packagehub.suse.com/" target="_blank">Package Hub</a>. Το Package Hub είναι το αποθετήριο κοινότητας που δημιουργήθηκε από την κοινότητά για τις SUSE Linux Enterprise Server και Desktop, αλλά φυσικά το SUSE δεν υποστηρίζει άμεσα αυτά τα πακέτα, αλλά υποστηρίζονται από την κοινότητα.
<br><br>
Το σημαντικό εδώ είναι ότι η openSUSE Leap 15.2 και η SLE 15 SP2 χρησιμοποιούν τις ίδιες πηγές πακέτων και μοιράζονται τις ίδιες λίστες πακέτων, αλλά δεν χρησιμοποιούν τα ίδια εκτελέσιμα (binaries) rpm!
<br><br>
<h2>openSUSE & SLE στο μέλλον</h2>
Μόλις είδαμε τη «περίεργη συμβίωση», αλλά πώς μπορεί να γίνει καλύτερη; Είναι εύκολη, απλοποιώντας τη μεγάλη εικόνα:
<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_qa4J03SOf7qDg92fAMkHsfM6W167dd7WGm-WUTEuCkNCV7Y13j9dps19wEQfIh-LxdE3vUPEfBz3CUpkSeWXG7Jlx_vy7A8dv_H3ZfESQ3GC_Bue0Zlqu1QgQ9cnW-yk_6iVRUrh8-uD/s786/opensuse-sle.003.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="openSUSE & SLE στο μέλλον" border="0" width="600" data-original-height="768" data-original-width="786" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_qa4J03SOf7qDg92fAMkHsfM6W167dd7WGm-WUTEuCkNCV7Y13j9dps19wEQfIh-LxdE3vUPEfBz3CUpkSeWXG7Jlx_vy7A8dv_H3ZfESQ3GC_Bue0Zlqu1QgQ9cnW-yk_6iVRUrh8-uD/s600/opensuse-sle.003.png"/></a></div>
<br>
Στην προηγούμενη ενότητα (Πώς «χτιζόταν» οι openSUSE & SLE μέχρι τώρα) η διαδικασία χρησιμοποιήθηκε από τουλάχιστον τις 3 τελευταίες κυκλοφορίες, αλλά η SUSE πίστεψε ότι θα μπορούσε να κάνει περισσότερα, οπότε έκανε την πρόταση <i><a href="https://en.opensuse.org/Portal:Leap/FAQ/ClosingTheLeapGap" target="_blank">Closing the Leap Gap</a></i> (Κλείσιμο του χάσματος με την Leap<a href="https://eiosifidis.blogspot.com/2020/04/suse-sle-binaries-opensuse-leap.html" target="_blank"></a>) στην κοιντότητα openSUSE, κατά τη <a href="https://www.suse.com/c/sle-15-sp2-schedule-and-closing-the-opensuse-leap-gap/" target="_blank">φάση ανάπτυξης της SLE 15 SP2</a>. Για να συντομεύσουμε την ιστορία, η πρόταση ήταν να συμπεριληφθούν τα προκατασκευασμένα αρχεία binaries από το SLE, εκτός από τα πηγαία binaries που ήδη παρέχονται, για να αυξηθεί η συμβατότητα. Για περισσότερες λεπτομέρειες σχετικά με όλες τις πτυχές αυτής της πρότασης, δείτε την <a href="https://en.opensuse.org/Portal:Leap/FAQ/ClosingTheLeapGap" target="_blank">σελίδα openSUSE FAQ</a>.
<br><br>
Οι αλλαγές έγιναν επειδή για ομαλότερη μετανάστευσης μεταξύ των SLE και openSUSE Leap αλλά και για μια πιο άμεση συνεργασία με την κοινότητα openSUSE. Επομένως, η SUSE διευκολύνει την κοινότητα να συνεισφέρει απευθείας στο openSUSE και το SLE μέσω νέων αποκλειστικών καναλιών. Έτσι, η κοινότητα εξακολουθεί να είναι σε θέση να διαμορφώσει και να υποβάλει αλλαγές στην επόμενη έκδοση διανομής με αυτήν το νέο τρόπο.
<br><br>
Ελέγξτε τους παρακάτω συνδέσμους για περισσότερες πληροφορίες:
<ul>
<li><a href="https://news.opensuse.org/2020/04/29/Diskuss-Define-and-be-Transparent-with-the-openSUSE-Community" target="_blank">https://news.opensuse.org/2020/04/29/Diskuss-Define-and-be-Transparent-with-the-openSUSE-Community</a>/</li>
<li><a href="https://en.opensuse.org/Portal:Jump/Policy/CommunitySLEChangeRequests" target="_blank">https://en.opensuse.org/Portal:Jump/Policy/CommunitySLEChangeRequests</a></li>
<li><a href="https://en.opensuse.org/Portal:Jump:OBS:SRM%20Mirroring" target="_blank">https://en.opensuse.org/Portal:Jump:OBS:SRM Mirroring</a></li>
<li><a href="https://en.opensuse.org/Portal:15.3/Features:Identicality" target="_blank">https://en.opensuse.org/Portal:15.3/Features:Identicality</a></li>
</ul>
<br>
Ο απώτερος στόχος είναι να δημιουργηθεί ένα υγιές και αυτόνομο οικοσύστημα, σε επίπεδο διανομής να υπάρχει μια καλή ισορροπία ανάμεσα σε ένα περιβάλλον κατάλληλο για έρευνα και καινοτομία.
<br><br>
Όπως μπορείτε να δείτε, η σχέση μεταξύ του openSUSE και του SLE δεν είναι από μόνη της περίπλοκη, αλλά είναι αλήθεια ότι επιλέχθηκε η συμβίωση που επιτρέπει τη δημιουργία ορίων μεταξύ μιας κοινοτικής διανομής κυλιόμενης κυκλοφορίας (openSUSE Tumbleweed), μιας κοινοτικής διανομής LTS (openSUSE Leap) και μιας εταιρική διανομή (SLE). Με την πρόταση Closing the Leap Gap, αυτό που θέλει η SUSE να επιτύχει είναι να συνεχίσει να βελτιώνει την αποτελεσματικότητα της συνεισφοράς από και προς την κοινότητα και την εταιρική πλευρά.
<br><br>
<h2>Μοιραζόμαστε περισσότερα από τον κώδικα</h2>
Τέλος, η κοινότητα openSUSE και το SUSE μοιράζονται κάτι περισσότερο από απλώς κώδικα! Αλλά αν σταθούμε καθαρά στην ανάπτυξης λογισμικού, πρέπει να μιλήσουμε για το πώς τα openSUSE και SLE δημιουργούνται και δοκιμάζονται κατά τη φάση της συνδεδεμένης ανάπτυξής τους.
<br><br>
Στη συνέχεια, θα μιλήσουμε για μερικές από τις υποκείμενες διαδικασίες που συνδέουν τα πάντα μαζί, αλλά και για τα εξαιρετικά εργαλείο που χρησιμοποιούμε: Open Build Service (build) και openQA (test).
<br><br>
Περαιτέρω αναγνώσεις / βίντεο:
<ul>
<li><a href="https://en.opensuse.org/Portal:15.3" target="_blank">https://en.opensuse.org/Portal:15.3</a></li>
<li>Youtube: <a href="https://www.youtube.com/watch?v=NMlW1YavP9Y" target="_blank">openSUSE Leap 15.3 Kickoff στις 4 Νοεμβρίου 2020</a></li>
<li>Youtube: <a href="http://youtube.com/watch?v=-nH4dLWizzU" target="_blank">openSUSE Leap Next</a></li>
<li>Youtube: <a href="http://youtube.com/watch?v=sTh1FKCgyMw" target="_blank">Γιατί οι εταιρείες πρέπει να ενδιαφερθούν για την επόμενη έκδοση openSUSE Leap</a></li>
</ul>
<b>ΠΗΓΗ:</b><br>
<a href="https://www.suse.com/c/how-suse-builds-its-enterprise-linux-distribution-part-5/" target="_blank">https://www.suse.com/c/how-suse-builds-its-enterprise-linux-distribution-part-5/</a> (τροποποιημένο)Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-73541792095020678122021-07-05T12:00:00.008+03:002021-07-05T12:00:00.221+03:00Εγκατάσταση GitKraken, ότι πιο εύκολο για διαχείριση αποθετηρίων Git<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifW8UNWjW019AQwdJdjRw-DNQBFaos8v6ksAMPvsJKoAmygY3zftr-wIJa1bQcmZoB84W23dvu-8o6EkU5EIxwdfpMz9LRWLGUNtIGMq9lpjV1qSvy4g8tFFJLGCo4w19sZDffvk6a8j5w/s1043/gitkraken-logo-dark-sq.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="GitKraken" border="0" width="320" data-original-height="1042" data-original-width="1043" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifW8UNWjW019AQwdJdjRw-DNQBFaos8v6ksAMPvsJKoAmygY3zftr-wIJa1bQcmZoB84W23dvu-8o6EkU5EIxwdfpMz9LRWLGUNtIGMq9lpjV1qSvy4g8tFFJLGCo4w19sZDffvk6a8j5w/s320/gitkraken-logo-dark-sq.png"/></a></div>
<h2>ΠΡΟΒΛΗΜΑ</h2>
Την σήμερον ημέρα το ερώτημα που πλανάται είναι, για να είσαι influencer, πόσους ακόλουθους πρέπει να έχεις στα social media; Στον κόσμο των προγραμματιστών, μέτρο σύγκρισης είναι το Gihub/Gitlab. Πόσους ακόλουθους έχεις; Πόσα αποθετήρια; Πόσα από αυτά είναι επισημασμένα; Πόσα contributions είχες τελευταία; Πόσο πράσινος (ή μπλε) είναι ο πίνακας με την συνεισφορά σου; Όλα αυτά τα ερωτήματα είναι τα αντίστοιχα των influencers που αφορούν τους προγραμματιστές. Αυτά αποτελεούν ουσιαστικά το βιογραφικό τους (άντε μαζί με το προφίλ τους στο Linkedin). Με αυτά μπορούν να ζητήσουν εργασία (ή να τους ζητήσουν recruiters).<br><br>
Όμως, πως ξεκινάει κανείς να δημιουργεί το προφίλ του στο Git; Είναι εύκολο; Μπορεί ένας αρχάριος χρήστης να το χρησιμοποιεί χωρίς να γνωρίζει πολλά για το Git; Η αλήθεια είναι ότι πρέπει να πάρει μια ιδέα για το πως λειτουργεί, και γιατί λειτουργεί έτσι. Όμως είναι εύκολο να χρησιμοποιήσει το Git;<br><br>
<h2>ΛΥΣΗ</h2>
Την λύση στην ερώτηση έρχεται να δώσει ένα καταπληκτικό πρόγραμμα. Το πρόγραμμα ονομάζεται <a href="https://gitkraken.link/iosifidis" target="_blank">GitKraken</a>. Τι είναι αυτό που το κάνει μοναδικό; Ο κυριότερος λόγος είναι ότι η διαδικασία για να υποβάλλετε τον κώδικά σας στο αποθετήριο γίνεται με γραφικό τρόπο. Αυτό διευκολύνει τους αρχάριους χρήστες ΑΦΑΝΤΑΣΤΑ. Τα χαρακτηριστικά του προγράμματος δεν σταματούν εκεί. Ακόμα και ένας προχωρημένος χρήστης μπορεί να αυτοματοποιήσει τις καθημερινές του εργασίες και να εξοικονομήσει χρόνο.<br><br>
Στο παρόν άρθρο θα δούμε πως μπορείτε να εγκαταστήσετε το <a href="https://gitkraken.link/iosifidis" target="_blank">GitKraken</a>. Σε επόμενα άρθρα θα δούμε πως μπορείτε να το χρησιμοποιήσετε αποδοτικά, θα δούμε κάποια κολπάκια κλπ.<br><br>
<h2>ΕΓΚΑΤΑΣΤΑΣΗ</h2>
Πολλοί είναι οι τρόποι εγκατάστασης.<br><br>
<h3>ΑΡΧΕΙΑ deb/rpm</h3>
Κατεβάστε το πρόγραμμα:<br><br>
Για Ubuntu LTS 16.04+, Debian 9+<br>
<div class="separator" style="clear: both;"><a href="https://www.gitkraken.com/download/linux-deb" style="display: block; padding: 1em 0; "><img alt="deb" border="0" width="100" data-original-height="109" data-original-width="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZT3bDwN3E50C_vdOsxut2NivMGsH-xacWobupSOoxno1ZXVzvVcCL9NZRxvPgIlgM23arzY88J2OaqoD3lok5l38j26MOv5KZwAj_Ftj5U2xCDWucNuXsR1H2KZz2q0uyIAiUVXIcmstN/s200/%25CE%25BB%25CE%25AE%25CF%2588%25CE%25B7.png"/></a></div>
<br>
Για RHEL 7+, CentOS 7+, Fedora 31+<br>
<div class="separator" style="clear: both;"><a href="https://www.gitkraken.com/download/linux-rpm" style="display: block; padding: 1em 0; "><img alt="rpm" border="0" width="100" data-original-height="109" data-original-width="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZT3bDwN3E50C_vdOsxut2NivMGsH-xacWobupSOoxno1ZXVzvVcCL9NZRxvPgIlgM23arzY88J2OaqoD3lok5l38j26MOv5KZwAj_Ftj5U2xCDWucNuXsR1H2KZz2q0uyIAiUVXIcmstN/s200/%25CE%25BB%25CE%25AE%25CF%2588%25CE%25B7.png"/></a></div>
<br>
Οι παραπάνω τρόποι, δεν χρειάζονται ιδιαίτερη ανάλυση. Κατεβάζετε το αρχείο και με διπλό κλικ θα ανοίξει ο εγκαταστάτης πακέτων της διανομής σας. Με απλό Next>Next>Finish θα εγκατασταθεί το πρόγραμμα.
<br><br>
<h3>FLATPAK</h3>
Αφού έχετε εγκαταστήσει το <a href="https://eiosifidis.blogspot.com/2019/12/opensuse-flatpak.html" target="_blank">Flatpak</a> στον υπολογιστή σας, μπορείτε να το εγκαταστήσετε εύκολα με την εντολή:<br>
<div class="code">
flatpak install com.axosoft.GitKraken
</div>
<br>
Αν παλι είστε οπτικοί τύποι, μπορείτε να το εγκαταστήσετε από το αποθετήριο του <a href="https://flathub.org/apps/details/com.axosoft.GitKraken" target="_blank">flathub (εδώ)</a>. Πατήστε απλά Install και θα εγκατασταθεί (αφού έχετε εγκαταστήσει το flatpak μαζί με το αποθετήριο στον υπολογιστή σας).
<br><br>
<h3>SNAP</h3>
Αφορά κυρίως την διανομή Ubuntu αλλά και όσες διανομές έχουν ενεργοποιημένη την τεχνολογία SNAPS.<br>
Επισκεφθείτε το <a href="https://snapcraft.io/gitkraken" target="_blank">snapcraft (εδώ)</a> και πατήστε το κουμπί Install. Θα ανοίξει ο εγκαταστάτης του υπολογιστή σας και θα το εγκαταστήσετε πολύ απλά.
<br><br>
<h2>ΕΓΓΡΑΦΗ</h2>
Για την καλύτερη λειτουργία και για να αποκομίσετε τα μέγιστα από το πρόγραμμα, πρέπει να κάνετε λογαριασμό. Επισκεφθείτε την <a href="https://gitkraken.link/iosifidis" target="_blank">ιστοσελίδα του GitKraken</a> και δημιουργήστε τον λογαριασμό σας. Χρησιμοποιόντας τον παραπάνω σύνδεσμο, θα μπείτε και σε κλήρωση για δωροκάρτα των 100€ από την AMAZON.
<br><br>
<h2>ΣΚΟΝΑΚΙ</h2>
Αφού το εγκαταστήσατε, κάνατε τον <a href="https://gitkraken.link/iosifidis" target="_blank">λογαριασμό</a>, μπορείτε να κατεβάσετε το σκονάκι και να δείτε κάποιες δυνατότητες που σας προσφέρει το πρόγραμμα. Σύντομα θα μεταφραστεί και στα Ελληνικά.<br><br>
<a href="https://www.gitkraken.com/wp-content/uploads/2021/05/gitkraken-github-cheat-sheet.pdf" target="_blank">Κατεβάστε το σκονάκι</a>
<br><br>
Δείτε πόσο εύκολη είναι η χρήση (θα ακολουθήσουν και άλλα tips).<br><br>
<center><iframe width="560" height="315" src="https://www.youtube.com/embed/ub9GfRziCtU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center><br><br>
Αν έχετε κάποιον φίλο/η που δεν γνωρίζει πως να ξεκινήσει το Git, ενημερώστε τον ότι το <a href="https://gitkraken.link/iosifidis" target="_blank">GitKraken</a> θα τον βοηθήσει απίστευτα.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-79421619022349967642021-05-15T12:00:00.014+03:002023-04-10T13:44:47.436+03:00Πλήρης οδηγός εγκατάστασης και χρήσης XAMPP σε Linux. Παράδειγμα εγκατάστασης Wordpress<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNLhAX6VC_FBb1P7KXQZX9_mDCE_g99ZP1zWyxhsN_xEYbKCdDsRkh0yKADWvfDOdAkkd5QWd8b-tZxRPLdoASN3IhaojtVrqQaa83CiXMlGLE4Sg3b5JeiBpLFxmVuftknNvXS5R2PGBy/s1217/XAMPP_logo.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Λογότυπο XAMPP" border="0" height="200" data-original-height="1217" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNLhAX6VC_FBb1P7KXQZX9_mDCE_g99ZP1zWyxhsN_xEYbKCdDsRkh0yKADWvfDOdAkkd5QWd8b-tZxRPLdoASN3IhaojtVrqQaa83CiXMlGLE4Sg3b5JeiBpLFxmVuftknNvXS5R2PGBy/s200/XAMPP_logo.png"/></a></div>
<h2>Τι είναι το XAMPP</h2>
Το <a href="https://www.apachefriends.org/index.html" target="_blank">XAMPP</a> αποτελεί ένα πακέτο προγραμμάτων το οποίο περιέχει ένα <b>εξυπηρετητή ιστοσελίδων</b> (Apache), μια<b> βάση δεδομένων</b> (MySQL) και τις <b>γλώσσες προγραμματισμού</b> PHP και Perl. Αποτελεί εργαλείο ανάπτυξης και δοκιμής ιστοσελίδων τοπικά στον υπολογιστή χωρίς να είναι απαραίτητη η σύνδεση στο διαδίκτυο. Ενδείκνυται για δοκιμαστικές εγκαταστάσεις CMS ή άλλων παρόμοιων προγραμμάτων που κάνουν χρήση ενός διακομιστή, μιας βάσης δεδομένων και της γλώσσας PHP.<br><br>
<h2>Πλεονεκτήματα - Μειονεκτήματα</h2>
Το ερώτημα που γεννιέται είναι αν είναι καλύτερο έναντι άλλων λύσεων, όπως του <a href="https://eiosifidis.blogspot.com/search/q=virtual+box" target="_blank">virtual box</a>, του docker ή άλλων λύσεων.
<br><br>
Προσωπική άποψη, στο virtual box, πρέπει να εγκατασταθεί εκ νέου το λειτουργικό σύστημα host, μετά να ακολουθηθεί το tutorial εγκατάστασης του lamp server (Apache, MySQL, PHP) και αν δουλεύει καλά, τότε να δοκιμαστούν οι ιστοσελίδες. Αποτελεί μια πολύ καλή λύση εάν ο προγραμματιστής θέλει να μάθει-γνωρίσει και πως χειρίζεται ο διαχειριστής τον εξυπηρετητή. Δεν την θεωρώ μια πολύ καλή λύση για την εργασία που συζητάμε.
<br><br>
Η λύση του Docker είναι πολύ καλύτερη γιατί προσομοιάζει τις συνθήκες των συστημάτων στην παραγωγή. Και σε αυτήν την περίπτωση χρειάζονται κάποιες μικρές εξειδικευμένες γνώσεις, που όμως δεν πιστεύω ότι είναι απαγορευτικές για τον προγραμματιστή.
<br><br>
Στην λύση του XAMPP, δεν χρειάζεται κάποια ειδική γνώση. Όλα γίνονται με γραφικό περιβάλλον. Το καλό είναι ότι μπορεί να χρησιμοποιηθεί και στην εκπαιδευτική διαδικασία γιατί ο χρήστης μπορεί να εγκαταστήσει το XAMPP στο στικάκι του και να μπορεί να εκτελεστεί με τα ίδια αποτελέσματα τόσο σε υπολογιστή της εκπαιδευτικής δομής όσο και στον προσωπικό υπολογιστή στο σπίτι.
<br><br>
<h2>Εγκατάσταση</h2>
1. Καταρχήν μεταβείτε στην <a href="https://www.apachefriends.org/download.html" target="_blank">σελίδα των λήψεων</a> και κατεβάστε το αρχείο που είναι για το λειτουργικό Linux. Θα είναι ένα αρχείο με κατάληξη .run (έστω είναι το <a href="https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/8.2.4/xampp-linux-x64-8.2.4-0-installer.run
" target="_blank">xampp-linux-x64-8.2.4-0-installer.run</a>).
<br><br>
2. Αφού κατέβει, μετακινηθείτε στον κατάλογο που έγινε η λήψη. Στη συνέχεια αλλάξτε τα δικαιώματα με την παρακάτω εντολή:<br>
<div class="code">
chmod a+x xampp-linux-x64-*-installer.run
</div>
<br>
3. Στη συνέχεια εισάγετε την παρακάτω εντολή, ώστε να εκκινήσει η εγκατάσταση:
<div class="code">
sudo ./xampp-linux-x64-*-installer.run
</div>
<br>
4. Πατήστε <b>Next</b> και περιμένετε:<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbspZqILkBxKCMxbGbklh6NWaR35b07aJReV166v1hdahGrYNbOpqqh2s6EwWRg3VQXh1gbRk84BmuYw7L09UlYxKHMrigI9g0i0Oema8d1Xmw37X1mSM0AHoQKIqSkPA8RbtsOIfZnU5a/s566/xampp-install-1.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εγκατάσταση XAMPP" border="0" width="600" data-original-height="484" data-original-width="566" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbspZqILkBxKCMxbGbklh6NWaR35b07aJReV166v1hdahGrYNbOpqqh2s6EwWRg3VQXh1gbRk84BmuYw7L09UlYxKHMrigI9g0i0Oema8d1Xmw37X1mSM0AHoQKIqSkPA8RbtsOIfZnU5a/s600/xampp-install-1.png"/></a></div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFOtJOe6xQQ16bJp9zr4ayd0aiSDSABdvrMLQd6CwPmd1-ESh9QXRYkBNwVTUnAya9cGvNCgOT4iOZNlG_PpoVh9lsQ5xv9JiwQk0Srs2JShiVJmxxfhzjLw2GPuoR9mMro1XQXDnIL3R/s552/xampp-install-2.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εγκατάσταση XAMPP" border="0" width="600" data-original-height="478" data-original-width="552" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFOtJOe6xQQ16bJp9zr4ayd0aiSDSABdvrMLQd6CwPmd1-ESh9QXRYkBNwVTUnAya9cGvNCgOT4iOZNlG_PpoVh9lsQ5xv9JiwQk0Srs2JShiVJmxxfhzjLw2GPuoR9mMro1XQXDnIL3R/s600/xampp-install-2.png"/></a></div>
5. Όταν τελειώσει η εγκατάσταση, πατήστε το κουμπί <b>Finish</b>.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoh_Eu8E-KEtnuPac6hKvKYa3Mev_-8At5Ac4cETUpy91bDqMowLdR_OOEYrBN0RRglsMXeH7phX0Iusi_SUE_W02kMs0JEejXe3dxX8YuZV7d835PGixQagan6Lpoq0JDntNsUJb648RK/s564/xampp-install-finish.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Τερματισμός εγκατάστασης XAMPP" border="0" width="600" data-original-height="488" data-original-width="564" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoh_Eu8E-KEtnuPac6hKvKYa3Mev_-8At5Ac4cETUpy91bDqMowLdR_OOEYrBN0RRglsMXeH7phX0Iusi_SUE_W02kMs0JEejXe3dxX8YuZV7d835PGixQagan6Lpoq0JDntNsUJb648RK/s600/xampp-install-finish.png"/></a></div>
Αυτό θα έχει ως αποτέλεσμα να ανοίξει το xampp. Αν βλεπετε την παρακάτω εικόνα, έχει ολοκηρωθεί επιτυχώς η εγκατάσταση.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiumz6ah-Mifs8zkZeaVgg01_q0PooxjmVJM-VeNtaC-m_WmQWnPq0ASJ2hhk7hOgdDw_Ug86kKP9uyolw2fGZSYbbmuLVAOe-kN-APLDg18hrIL2Aac-tpi50ZWG3Q1o1oaAqVU9yevA3e/s726/xampp-manager.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="XAMPP Manager" border="0" width="600" data-original-height="514" data-original-width="726" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiumz6ah-Mifs8zkZeaVgg01_q0PooxjmVJM-VeNtaC-m_WmQWnPq0ASJ2hhk7hOgdDw_Ug86kKP9uyolw2fGZSYbbmuLVAOe-kN-APLDg18hrIL2Aac-tpi50ZWG3Q1o1oaAqVU9yevA3e/s600/xampp-manager.png"/></a></div>
6. Αφού ανοίξει το xampp, καλό είναι να δοκιμάσετε εάν δουλεύει. Πως θα το κάνετε αυτό; Μετακινηθείτε στην καρτέλα <b>Manage Servers</b> όπου θα σας εμφανίσει τους servers που πρέπει να ενεργοποιήσετε.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHJ6rmISLpAIPJU7gZszKbBH7B4ESIgqdNg_nJ1XICaVxN3LcDaXWgFgH3vjgRlclqlTk-gEcxf_1V-TBBvBQPVep6Wh3pNduQG3kOgevPGdSy0PnJQ_JG6If9tjEf6jLQNgwl6NgZkhX9/s722/xampp-servers-disabled.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Διακομιστές XAMPP απενεργοποιημένοι" border="0" width="600" data-original-height="510" data-original-width="722" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHJ6rmISLpAIPJU7gZszKbBH7B4ESIgqdNg_nJ1XICaVxN3LcDaXWgFgH3vjgRlclqlTk-gEcxf_1V-TBBvBQPVep6Wh3pNduQG3kOgevPGdSy0PnJQ_JG6If9tjEf6jLQNgwl6NgZkhX9/s600/xampp-servers-disabled.png"/></a></div>
Επιλέξτε <b>Apache Web Server</b> και <b>MySQL Database</b> και πατήστε το <b>Start</b>. Θα πρέπει να βλέπετε την παρακάτω εικόνα:<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDWL9CgX03_2_bvIPVCFQl8R2Ry0pmDWtn0R1Godlu2h6GsfAJtn4PO6RKprN4rr1RjRPEU5mtIFNxzaj3va7U4SyNSwKOLx3S86vtipQbHe-KRPpchDR6pSo2ysDNF2EB9u6R5g_AAgt4/s732/xampp-servers-enabled.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Διακομιστές XAMPP απενεργοποιημένοι" border="0" width="600" data-original-height="514" data-original-width="732" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDWL9CgX03_2_bvIPVCFQl8R2Ry0pmDWtn0R1Godlu2h6GsfAJtn4PO6RKprN4rr1RjRPEU5mtIFNxzaj3va7U4SyNSwKOLx3S86vtipQbHe-KRPpchDR6pSo2ysDNF2EB9u6R5g_AAgt4/s600/xampp-servers-enabled.png"/></a></div>
7. Αφού είναι ενεργά, ανοίξτε τον browser και γράψτε <b>localhost</b>. Θα πρέπει να βλέπετε την παρακάτω σελίδα:<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs8hk5qd9oJUozrpWzbgOgUBbrIXn-nshmxthXeJEfO_CJySJS6UENKMfLLR2LIB__5iKkCNUR-6Qnr7Rl95B0TA2mQKnFLv1Dvs5r8ufUwWKNKaWn7rodXn50Q05FB34xTKNUye2F8sAi/s1280/xampp-localhost.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="XAMPP localhost" border="0" width="600" data-original-height="1005" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs8hk5qd9oJUozrpWzbgOgUBbrIXn-nshmxthXeJEfO_CJySJS6UENKMfLLR2LIB__5iKkCNUR-6Qnr7Rl95B0TA2mQKnFLv1Dvs5r8ufUwWKNKaWn7rodXn50Q05FB34xTKNUye2F8sAi/s600/xampp-localhost.png"/></a></div>
Για να κλείσετε το xampp, πρέπει να κλείσετε τους servers (επιλέξτε τους <b>Apache Web Server</b> και <b>MySQL Database</b> και πατήστε το Stop).
<br><br>
<h2>Εκκίνηση</h2>
Για να εκκινήσει ο xampp μπορείτε να το κάνετε με 3 τρόπους:<br><br>
<b>1. Τερματικό:</b> Μπορείτε να εκτελείτε τις εντολές κάθε φορά που ανοίγετε το xampp ή απλά να τις προσθέσετε ως alias στο .bashrc.<br>
<div class="code">
ΕΚΚΙΝΗΣΗ: sudo /opt/lampp/xampp start<br><br>
ΤΕΡΜΑΤΙΣΜΟΣ: sudo /opt/lampp/xampp stop
</div>
<br>
<b>2. Τερματικό + Γραφικό:</b> Εδώ ανοίγετε το τερματικό και γράφετε την παρακάτω εντολή:<br>
<div class="code">
sudo /opt/lampp/manager-linux-x64.run
</div>
<br>
Το ίδιο και εδώ, μπορείτε να προσθέσετε την εντολή αυτή ως alias στο .bashrc.
<br><br>
<b>3. Προσθήκη εκκινητή στο menu:</b> Μετακινηθείτε στον παρακάτω κατάλογο:<br>
<div class="code">
cd /usr/share/applications
</div>
<br>
Πρέπει να δημιουργήσετε ένα αρχείο xampp.desktop και να το επεξεργαστείτε.
<br>
<div class="code">
sudo touch xampp.desktop<br>
sudo gedit xampp.desktop
</div>
<br>
Προσθέστε μέσα τα παρακάτω:
<br>
<div class="code">
[Desktop Entry]<br>
Encoding=UTF-8<br>
Name=XAMPP Control Panel<br>
Comment=Start and Stop XAMPP<br>
Exec=sudo /opt/lampp/manager-linux-x64.run<br>
Icon=/opt/lampp/htdocs/favicon.ico<br>
Categories=Application<br>
Type=Application<br>
Terminal=true
</div>
<br>
Και είστε έτοιμοι.
<br><br>
<h2>Παράδειγμα εγκατάστασης wordpress</h2>
1. Κατεβάστε το wordpress από την ιστοσελίδα <a href="https://el.wordpress.org/" target="_blank">https://el.wordpress.org/</a>
<br><br>
2. Αποσυμπιέστε το αρχείο και μετακινήστε το στον φάκελο που "σερβίρει" το XAMPP.<br>
<div class="code">
sudo mv wordpress /opt/lampp/htdocs/
</div>
<br>
3. Αλλάξτε τα δικαιώματα με την εντολή:<br>
<div class="code">
sudo chown -R daemon /opt/lampp/htdocs/wordpress
</div>
<br>
4. Δημιουργήστε μια βάση δεδομένων. Αφού έχετε εκκινήσει το XAMPP, πρέπει να μετακινηθείτε στην διεύθυνση <b>http://localhost/phpmyadmin</b> και πατήστε στην καρτέλα <b>Βάσεις δεδομένων</b>. Πχ ονομάστε την wordpress (τι πρωτότυπο) και ως κωδικοποίηση (το ονομάζει Σύνθεση ή Coalition) επιλέξτε είτε <b>utf8_general_ci</b> είτε <b>utf8_unicode_ci</b>, όπως φαίνεται στην εικόνα.<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3jwgaLROpDkftHGsQDbWwFxGXCGxecSUhXmJmczhdJKzWPWMmMcAuXcWUrGoiz3vPvueS8p1F-xNcUgP1JqwtgPhu1siE1kW0G_4HqpJWQ_eg5F4Yt8ksdbnE0CElySMH_a6fMwIrU2SQ/s694/xampp-database.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="XAMPP δημιουργία βάσης δεδομένων" border="0" width="600" data-original-height="478" data-original-width="694" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3jwgaLROpDkftHGsQDbWwFxGXCGxecSUhXmJmczhdJKzWPWMmMcAuXcWUrGoiz3vPvueS8p1F-xNcUgP1JqwtgPhu1siE1kW0G_4HqpJWQ_eg5F4Yt8ksdbnE0CElySMH_a6fMwIrU2SQ/s600/xampp-database.png"/></a></div>
5. Εγκαταστήστε το wordpress (http://localhost/wordpress). Στο σημείο που θα χρειαστεί να εισάγετε τα δεδομένα της βάσης, θα χρησιμοποιήσετε τα παρακάτω.<br>
<div class="code">
<b>Database</b> – wordpress<br>
<b>Username</b> – root<br>
<b>Password</b> – (αφήστε το κενό)
</div>
<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrfGL2DMBzByC5HkgEQ7gDWZIXaukrNwXBQz3T4APz3xstCgDJrwe0ry-K05SLs4w2PLctOfcm-JAZWwYoWbi-PtKE4tSig92qsMCvBVEw8KCFv8_lf5fDnqcYEsQEmYzDtXrywe3tTaWJ/s1024/editing-database.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εγκατάσταση wordpress, βάση δεδομένων" border="0" width="600" data-original-height="485" data-original-width="1024" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrfGL2DMBzByC5HkgEQ7gDWZIXaukrNwXBQz3T4APz3xstCgDJrwe0ry-K05SLs4w2PLctOfcm-JAZWwYoWbi-PtKE4tSig92qsMCvBVEw8KCFv8_lf5fDnqcYEsQEmYzDtXrywe3tTaWJ/s600/editing-database.jpg"/></a></div>
Στις τελευταίες εκδόσεις, προτού ξεκινήσετε την εγκατάσταση του wordpress, πρέπει να επεξεργαστείτε ένα αρχείο. Αυτό είναι το <b>wp-config.php</b> στο οποίο εισάγετε το όνομα της βάσης, τον χρήστη και το συνθηματικό. Οπότε δεν θα χρειαστεί να δείτε την παραπάνω οθόνη.
<br><br>
<h2>Απεγκατάσταση</h2>
Έστω ότι δεν σας βόλεψε ή θέλετε να αλλάξετε σε docker και δεν χρειάζεστε άλλο το XAMPP. Υπάρχουν 3 τρόποι να το απεγκαταστήσετε.<br>
<div class="code">
1. cd /opt/lampp<br><br>
2. sudo ./uninstall<br><br>
3. sudo rm-rf /opt/lampp
</div>
Επιλέξτε όποιον τρόπο επιθυμείτε.<br><br>
Εάν έχετε και εσείς κάποιον φίλο-γνωστό που φοβάται να εγκαταστήσει docker ή έστω ένα virtual box, ενημερώστε τον για τις παραπάνω διαδικασίες.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-80686742380176736122021-03-03T12:00:00.006+02:002021-05-16T16:54:36.989+03:00Μετατροπή αρχείου vdi του Virtual Box σε αρχείο raw img<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV0-KP58-mU3y25Tks74aFcJaDXZbvtAsc_Hzztyq5qdpoWWyzZWdNfb7AjdcurXvzhxLebpF6vfI7xG5RWBKHCD9DbyhA9jrYFG5L_tdOdFVQUms1yB4q8pnz_14cv2wSGNs1ukitInzW/s610/VBox-convert-iso-to-vdi-image.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Virtual Box αρχεία vdi σε img και αντίστροφα" border="0" width="400" data-original-height="360" data-original-width="610" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV0-KP58-mU3y25Tks74aFcJaDXZbvtAsc_Hzztyq5qdpoWWyzZWdNfb7AjdcurXvzhxLebpF6vfI7xG5RWBKHCD9DbyhA9jrYFG5L_tdOdFVQUms1yB4q8pnz_14cv2wSGNs1ukitInzW/s400/VBox-convert-iso-to-vdi-image.jpg"/></a></div>
Πολλοί φίλοι μου φοβούνται να εγκαταστήσουν μια διανομή Linux στον υπολογιστή τους. Πολλοί είναι οι λόγοι. Παλιά σίγουρα ήταν ότι δεν υπάρχουν προγράμματα. Τώρα νομίζω είναι ο φόβος της αποτυχίας στην εγκατάσταση και ίσως ότι αν τυχόν χαλάσει κάτι είτε στην εγκατάσταση είτε μετά, δεν θα βρουν τρόπο να το διορθώσουν. Στην ουσία, είτε windows, είτε Linux, η οδηγία είναι η αναζήτηση στο Internet μήπως κάποιος έχει αντιμετωπίσει το ίδιο πρόβλημα. Συνήθως, 90% θα βρεθεί ερώτηση με το ίδιο πρόβλημα και θα βρεθεί η λύση. Για να αποφύγουμε τον φόβο της "αποτυχίας", δυο είναι οι λύσεις.
<br><br>
<b>ΕΠΙΛΟΓΗ 1:</b> Η πιο εύκολη είναι να εγκαταστήσουν την διανομή σε <a href="https://www.virtualbox.org/" target="_blank">Virtual Box</a> (εικονική μηχανή). <br><br>
<h3><b>ΠΛΕΟΝΕΚΤΗΜΑΤΑ:</b></h3>
<ul>
<li>Εγκατάσταση και δοκιμή (εγκατάσταση, κατατμήσεις, ρυθμίσεις κλπ) και αν γίνει κάποιο λάθος, διαγράφει ο χρήστης ένα αρχείο ενώ το host μηχάνημά με Windows ή MAC OSX δουλεύει κανονικά. Στην επόμενη δοκιμή απλά φροντίστε να μην κάνετε το ίδιο λάθος.</li>
</ul>
<h3><b>ΜΕΙΟΝΕΚΤΗΜΑΤΑ:</b></h3>
<ul>
<li>Περιορίζονται οι πόροοι (μνήμη, δίσκος) αφού χρειάζεται μνήμη και το host λειτουργικό σύστημα.</li>
<li>Το εικονικό λειτουργικό Linux μπορεί να έχει πρόσβαση στα αρχεία του host, μέσω ενός κοινόχρηστου φακέλου που θα δηλωθεί στο πρόγραμμα Virtual Box. Αντιθέτως μέσα από τα Windows δεν μπορεί κάποιος να έχει πρόσβαση στα αρχεία του εικονικού συστήματος Linux (έχει μόνο πρόσβαση στον κοινόχρηστο φάκελο).</li>
</ul>
<br>
<b>ΕΠΙΛΟΓΗ 2:</b> Η λίγο πιο δύσκολη λύση είναι η dual boot, δηλαδή να εγκατασταθούν στον ίδιο δίσκο, τόσο Windows όσο και Linux. Στην επιλογή αυτή θα εκτελείται ένα λειτουργικό σύστημα την φορά.<br><br>
<h3><b>ΠΛΕΟΝΕΚΤΗΜΑΤΑ:</b></h3>
<ul>
<li>Kαι τα δυο λειτουργικά έχουν την απόλυτη επίδοση που μπορούν να έχουν όταν είναι σε λειτουργία.</li>
</ul>
<h3><b>ΜΕΙΟΝΕΚΤΗΜΑΤΑ:</b></h3>
<ul>
<li>Δεν υπάρχει πρόσβαση αρχείων από τα Windows στον δίσκο με το Linux (μόνο εάν έχει εγκατασταθεί πρόγραμμα). Η λύση δίνεται μόνο εάν δημιουργηθεί μια κατάτμηση NTFS όπου θα προσαρτείται τόσο στα Windows όσο και στο Linux και εκεί αποθηκεύονται τα αρχεία.</li>
<li>Δυσκολία για έναν αρχάριο να διαχειριστεί τις κατατμήσεις κατά την εγκατάσταση. Από τη στιγμή που αυτό λυθεί, μετά δεν υπάρχει κάποια δυσκολία.</li>
</ul>
<br><br>
Ίσως μια τρίτη επιλογή θα ήταν το Live ISO αλλά δεν κερδίζει κάποιος κάτι από αυτή την επιλογή. Δεν διατηρούνται ρυθμίσεις (υπάρχει η επιλογή του persistent storage αλλά προσωπικά δεν την εμπιστεύομαι).
<br><br>
<h2><b>ΠΡΟΒΛΗΜΑ</b></h2>
<blockquote>Θέλω να εγκαταστήσω Linux αλλά φοβάμαι επειδή δεν γνωρίζω. Θα εγκαταστήσω σε Virtual Box για να μάθω την διαδικασία.</blockquote>
<br>
Αυτή είναι η φράση που έχει χιλιοειπωθεί. Όταν πετύχουν την εγκατάσταση, μετά υπάρχει η "<i>βαρεμάρα</i>" να το στήσει κάποιος σε κανονικό μηχάνημα από την αρχή.<br><br>
<h2><b>ΛΥΣΗ</b></h2>
Η λύση έρχεται να δοθεί εν μέρη με την μετατροπή του εικονικού λειτουργικού σε img όπου στη συνέχεια μπορεί να περαστεί σε κανονικό υπολογιστή. Εδώ θα δούμε πως γίνεται τόσο σε Windows, όσο και σε Linux (ουσιαστικά είναι η ίδια διαδικασία-εντολή).
<br><br>
<h3><b>WINDOWS</b></h3>
Σε Windows, ανοίξτε το τερματικό (cmd ή Command Line) και μετακινηθείτε στον κατάλογο:<br>
<div class="code">
cd "C:\Program Files\Oracle\VirtualBox"
</div><br>
Εδώ θα βρείτε το πρόγραμμα VBoxManage. Στη συνέχεια πρέπει να αντιγράψετε την παρακάτω εντολή:
<div class="code">
VBoxManage clonehd --format RAW “C:\Users\stathis\VirtualBox VMs\opensuse\opensuse.vdi” “C:\Users\stathis\VirtualBox VMs\opensuse\opensuse.img”</div><br>
Ας εξηγήσουμε λίγο το σενάριο. Στην παραπάνω εντολή υποθέτουμε ότι έχετε εγκαταστήσει <a href="https://www.opensuse.org/" target="_blank">openSUSE</a>. Η εγκατάσταση έγινε μέσα στον φάκελο <b>opensuse</b>. Οπότε το όνομα του αρχείου που δημιουργήθηκε είναι <b>opensuse.vdi</b>. Προσέξτε λίγο και τον χρήστη (<b>stathis</b>). Πρέπει να δώσουμε την ακριβή διαδρομή που βρίσκεται το αρχείο vdi. Και επειδή σίγουρα θα έχει κενά κάπου, καλύτερα να χρησιμοποιήσετε και τα <b>""</b>.<br><br>
Περιμένετε λίγο και θα έχετε έτοιμοι το αρχείο <b>opensuse.img</b>. Τι μπορείτε να κάνετε με αυτό; Μπορείτε να χρησιμοποιήσετε κάποιο live usb και να αντιγράψετε με την εντολή dd (ή άλλο εργαλείο) από ένα εξωτερικό μέσο στον δίσκο του υπολογιστή.
<br><br>
<h3><b>LINUX</b></h3>
Εδώ ίσως είναι ακόμα πιο εύκολα τα πράγματα. Ανοίξτε το τερματικό και μετακινηθείτε στον φάκελο με τα VM (<b>VirtualBox VMs</b>). Αφού το κάνετε αυτό, εκτελέστε την εντολή:<br>
<div class="code">
VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img
</div><br>
Στο σενάριο εδώ, έχουμε εγκαταστήσει ένα σύστημα με Ubuntu και θέλουμε να το μεταφέρουμε σε έναν υπολογιστή. Το αρχείο ubuntu.img το αντιγράφουμε σε ένα δίσκο και μετά με live usb και την εντολή dd το μεταφέρουμε σε υπολογιστή.<br><br>
<h2><b>ΑΝΤΙΣΤΡΟΦΗ ΔΙΑΔΙΚΑΣΙΑ</b></h2>
Μπορείτε να κάνετε και την αντίστροφη διαδικασία. Εάν έχετε ένα πλήρως λειτουργικό σύστημα, μπορείτε να δημιουργήσετε ένα αρχείο img (με την εντολή dd). Στη συνέχεια μετατρέπετε το img σε vdi με την παρακάτω εντολή:<br>
<div class="code">
VBoxManage convertdd opensuse.img opensuse.vdi
</div><br>
Στη συνέχεια δημιουργούμε μια νέα εικονική μηχανή:<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPt5HIIHe9BRJsYAeqoJmG3H7dPmAP9OFhgTCHinWIu4MUaJvf5VRdkvQ97WTbiupaPqfQVagquE2vQgNFT3MFM3PAMBTAHLLOQTsHdzBl4nyT1OBYWHL755muxSYmP1ZZFhBvL2JJbHGh/s757/VBox-dimioyrgia-neas-eikonikis-mixanis.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Δημιουργία εικονικής μηχανής στο Virtual Box" border="0" width="600" data-original-height="413" data-original-width="757" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPt5HIIHe9BRJsYAeqoJmG3H7dPmAP9OFhgTCHinWIu4MUaJvf5VRdkvQ97WTbiupaPqfQVagquE2vQgNFT3MFM3PAMBTAHLLOQTsHdzBl4nyT1OBYWHL755muxSYmP1ZZFhBvL2JJbHGh/s600/VBox-dimioyrgia-neas-eikonikis-mixanis.png"/></a></div>
Σειρά έχει ο καθορισμός της μνήμης (8 είναι το μινιμουμ αλλά αν εσείς έχετε λιγότερη, προσαρμόστε ανάλογα):<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHrjvLZVI14zraPJkoM5ts3I3ikBxr2vexP2hQNETiYy-vbANNMGPPmBODaE-it3qdLM_tULbYxNAAgXkay0LLRxdqYqW67lay45YhzOykWsqraw54XgFL4ckTrOU0pW11zg86k8Ga_z0U/s754/VBox-megethos-mnimis.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Καθορισμός μνήμης στο Virtual Box" border="0" width="600" data-original-height="413" data-original-width="754" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHrjvLZVI14zraPJkoM5ts3I3ikBxr2vexP2hQNETiYy-vbANNMGPPmBODaE-it3qdLM_tULbYxNAAgXkay0LLRxdqYqW67lay45YhzOykWsqraw54XgFL4ckTrOU0pW11zg86k8Ga_z0U/s600/VBox-megethos-mnimis.png"/></a></div>
Τέλος η εισαγωγή του αρχείου vdi που δημιουργήσατε ως υπάρχοντας σκληρός δίσκος:<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRnsRcrkU4PjAerNlTt4fxdaMVNJeF9T6vYCZeS9lPPLH1TjlvT4lPbv7wKU5vYGYPC0ZwYYuwC-D0JOb3dIJyP-p-ImK63keoNuL6cdvQ7rvg8I1emgNz8KSSDcBUGF_TskOElP-OiG-1/s757/VBox-skliros-diskos.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Εισαγωγή αρχείου vdi στο Virtual Box ως νέος σκληρός δίσκος" border="0" width="600" data-original-height="416" data-original-width="757" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRnsRcrkU4PjAerNlTt4fxdaMVNJeF9T6vYCZeS9lPPLH1TjlvT4lPbv7wKU5vYGYPC0ZwYYuwC-D0JOb3dIJyP-p-ImK63keoNuL6cdvQ7rvg8I1emgNz8KSSDcBUGF_TskOElP-OiG-1/s600/VBox-skliros-diskos.png"/></a></div>
Περιμένετε λίγο μέχρι να το περάσει στην λίστα με τα εικονικά λειτουργικά που έχετε εγκατεστημένα. Τα στοιχεία του χρήστη θα είναι αυτά που είχατε κατά τη δημιουργία του img.<br><br>
Εάν έχετε και εσείς κάποιον φίλο-γνωστό που φοβάται να εγκαταστήσει Linux ενώ το θέλει, ενημερώστε τον για τις παραπάνω διαδικασίες.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-49429757588779137302021-02-24T00:00:00.006+02:002021-02-24T00:00:01.731+02:005 συμβουλές για να μάθετε μια νέα γλώσσα προγραμματισμού<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRrPYrOwogRV5YEB_F3_hBNMFk44llmHWfcNyn_ajfyxVVFAqz8e-Su3ovJKq6QF92zhyhSvxvRvi9sO0MdN5XhGKTVMkvNGd7c9oykVN6edJrFiuDnKmcZxLdaRjdsqs092gcutVIc6DQ/s1200/love-to-learn.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="5 συμβουλές για να μάθετε μια νέα γλώσσα προγραμματισμού" border="0" width="400" data-original-height="800" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRrPYrOwogRV5YEB_F3_hBNMFk44llmHWfcNyn_ajfyxVVFAqz8e-Su3ovJKq6QF92zhyhSvxvRvi9sO0MdN5XhGKTVMkvNGd7c9oykVN6edJrFiuDnKmcZxLdaRjdsqs092gcutVIc6DQ/s400/love-to-learn.jpg"/></a></div>
<br />
Η ασχολία μου με το ελεύθερο λογισμικό περιορίζεται κυρίως σε θέματα engagement (προώθηση, άρθρα, ομιλίες σε συνέδρια, παρουσίες σε συνέδρια κλπ) και σε μεταφράσεις. Η αλήθεια είναι ότι όλα αυτά τα χρόνια, εάν είχα ξεκινήσει την εκμάθηση μιας γλώσσας προγραμματισμού, τώρα θα ήμουν ειδικός.<br />
<br />
Από τα χρόνια που ασχολούμαι με το ελεύθερο λογισμικό, έχω έρθει σε επαφή με πολλά άτομα, η πλειοψηφία των οποίων μου έχει πει ότι όλες τις γνώσεις περί μιας γλώσσας προγραμματισμού, δεν τις έμαθε στο πανεπιστήμιο. Όλοι διάβασαν και ασχολήθηκαν μόνοι τους.<br />
<br />
Ακόμη μια αλήθεια είναι ότι εάν γνωρίζεις μια γλώσσα προγραμματισμού, είναι εύκολο να μάθεις την επόμενη. Προφανώς γνωρίζεις τον τρόπο εκμάθησης και επίσης πολλές τεχνικές μπορεί να είναι ίδιες.<br />
<br />
Ας δούμε όμως κάποια tips για το πως μπορείτε να μάθετε μια ΝΕΑ γλώσσα προγραμματισμού:<br />
<br />
<b><h2>1. ΑΠΟΦΑΣΙΣΤΕ ΤΟ ΜΕΣΟ ΕΚΜΑΘΗΣΗΣ</h2></b><br />
Μέσο εκμάθησης εννοείται εάν θα είναι βιβλίο, εάν θα είναι κάποιο ασύγχρονο μάθημα στο διαδίκτυο ή κάποιον άλλο τρόπο που θεωρείτε εσείς ότι σας ταιριάζει. Εάν μάλιστα θέλετε να μάθετε την γλώσσα προγραμματισμού με ένα φίλο σας, τότε φροντίστε να διαβάζετε από τον ίδιο τίτλο. Σε περίπτωση που κάποιος έχει πρόβλημα, μπορεί ο άλλος να τον βοηθήσει.<br />
<br />
<i>Μαθήματα online (δωρεάν και επί πληρωμή):</i><br />
<a href="https://www.w3schools.com/" target="1">https://www.w3schools.com/</a><br />
<a href="https://www.udemy.com/" target="1">https://www.udemy.com/</a><br />
<a href="https://www.coursera.org/" target="1">https://www.coursera.org/</a><br />
Πολλές σειρές στο Youtube (τόσο στα Ελληνικά, όσο και στα Αγγλικά)<br />
<br />
<b><h2>2. ΝΑ ΜΑΘΑΙΝΕΤΕ ΛΙΓΟ ΚΑΘΕ ΜΕΡΑ</h2></b><br />
Αφού αποφασίσατε το μέσο εκμάθησης, σειρά έχει η συχνότητα. Προσπαθήστε να διαβάζετε από λίγο κάθε μέρα. Αυτό θα είναι πχ 10 λεπτά από τον χρόνο σας; Θα είναι η ολοκλήρωση του κεφαλαίου; Χωρίστε το ανάλογα με τις αντοχές σας. <br />
<br />
Θυμηθείτε ότι η συχνότητα είναι πιο σημαντική της ποσότητας. Εάν αφήσετε κάτι, θα σας αφήσει και αυτό.<br />
<br />
<b><h2>3. ΑΚΟΛΟΥΘΗΣΤΕ ΤΗΝ ΣΕΙΡΑ ΤΟΥ ΜΕΣΟΥ</h2></b><br />
Όταν ξεκινάτε την ανάγνωση, μην παρακάμπτετε σελίδες, θεωρώντας ότι γνωρίζετε τι λέει. Συνήθως θα παρακάμψετε πολλές σελίδες που μπορεί να έχουν μια πληροφορία που δεν την γνωρίζετε και στις παρακάτω σελίδες να την χρησιμοποιήσουν, οπότε θα ανατρέξετε στα προηγούμενα ή μπορεί και να εκνευριστείτε και να σταματήσετε.<br />
Οι συγγραφείς του μέσου, έχουν μια λογική σειρά που θα οδηγήσουν σε κάποιο τελικό αποτέλεσμα. Πιθανό να λείπουν κάποιες πληροφορίες για προχωρημένους. Στο χέρι σας είναι να ψάξετε, έχοντας την βάση της γλώσσας προγραμματισμού.<br />
<br />
<b><h2>4. ΠΩΣ ΝΑ ΜΗΝ ΞΕΧΝΑΩ;</h2></b><br />
Η απάντηση στην ερώτηση είναι ότι μαθαίνεις με την επανάληψη. Πως θα κάνεις την επανάληψη; Προχώρησε ένα βήμα παραπέρα. Προσπάθησε να λύσεις ασκήσεις που θα κάνουν χρήση των γνώσεων που έμαθες. Έτσι θα μάθεις πως χρησιμοποιείται η τεχνική ή η εντολή.<br />
<br />
<b><h2>5. ΞΕΚΙΝΑ ΔΙΚΟ ΣΟΥ PROJECT</h2></b><br />
Με λίγα λόγια εξάσκηση. Όταν ξεκινάς ένα δικό σου project θα ψάχνεις πως γίνεται μια τεχνική που δεν γνωρίζεις-έμαθες. Θα κάνεις μια αναζήτηση πχ σε <a href="https://stackoverflow.com/" target="1">stack overflow</a>.<br /><br />
Εσείς μαθαίνετε κάποια γλώσσα προγραμματισμού; Αν ναι, υπάρχουν κάποια tips που θέλετε να τα μοιραστείτε;Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-75306439057739763932021-02-17T12:00:00.006+02:002021-02-17T12:14:05.672+02:00Ένωση πολλών εικόνων σε ένα .pdf<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja2q5e9AkdRWovPEP1sVYhEw43lMJ6Rs1oeG6akuqjPBGtJG0YMilFAofSOImMcFsHgA-jE0zsXhRnI9JAI5sRyB_Td3nJ8YFUxEsw0-UqMlBTOHMrT-gh-plK8bXrUDMidS4T35vLHkPI/s708/ImageMagick.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="ImageMagick" border="0" height="320" data-original-height="708" data-original-width="684" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja2q5e9AkdRWovPEP1sVYhEw43lMJ6Rs1oeG6akuqjPBGtJG0YMilFAofSOImMcFsHgA-jE0zsXhRnI9JAI5sRyB_Td3nJ8YFUxEsw0-UqMlBTOHMrT-gh-plK8bXrUDMidS4T35vLHkPI/s320/ImageMagick.png"/></a></div>
<h2><b>Η ΑΝΑΓΚΗ</b></h2>
Η τηλε-εκπαίδευση μπορεί να ήταν και πολύ βοηθητική για κάποιους, αφού δεν ήταν απαραίτητο να κρατούν σημειώσεις σε χαρτί κατά την ώρα της παράδοσης, αλλά να παρακολουθούν τον καθηγητή και να κατανοούν καλύτερα το αντικείμενο. Η εμπέδωση γίνεται με την επανάληψη των αρχείων που παρέχουν οι καθηγητές μέσω πλαφόρμας ασύγχρονης εκπαίδευσης του κάθε ιδρύματος. Αντί χειρόγραφων σημειώσεων, δίνεται η δυνατότητα της λήψης στιγμιοτύπου οθόνης (screenshot), με ότι πιθανές σημειώσεις έχει γράψει ο καθηγητής. Πως μπορείτε να λάβετε ένα στιγμιότυπο οθόνης; Δείτε παρακάτω για τα διαφορετικά λειτουργικά συστήματα:
<ul>
<li><b>LINUX:</b> Πατάτε το πλήκτρο <b>PrtScr</b> και ανοίγει το πρόγραμμα λήψης στιγμιοτύπου οθόνης και αποθηκεύει (αυτόματα) όλη την οθόνη σας μέσα στον φάκελο των εικόνων. </li>
<li><b>MAC OSX:</b> Πατήστε το συνδυασμό <b>Command+Shift+3</b> και σας αποθηκεύει την εικόνα στην επιφάνεια εργασίας σας.</li>
<li><b>Windows:</b> Πατήστε το συνδυασμό <b>Windows key + Print Screen key</b> και θα σας αποθηκεύσει την εικόνα στον φάκελο <i>Εικόνες>Στιγμιότυπα οθόνης</i>.</li>
</ul>
<br>
Όλες αυτές τις εικόνες (συνήθως png), μπορείτε να τις βλέπετε μια-μια με το πρόγραμμα προβολής εικόνων. Είναι όμως καλύτερα να τις προσθέσετε σε ένα αρχείο pdf. Το αρνητικό και στις δυο περιπτώσεις είναι ότι δεν μπορείτε να κάνετε αναζήτηση ενός όρου, αφού είναι εικόνες.<br><br>
<h2><b>ΤΟ ΠΡΟΒΛΗΜΑ</b></h2>
Μετά από λίγη αναζήτηση στο Internet, η λύση ήταν απλή. Ανοίξτε ένα τερματικό και εκτελέστε την εντολή:<br>
<div class="code">
convert *.png out.pdf
</div><br>
Αυτό που κάνει η παραπάνω εντολή είναι να πάρει όλα τα αρχεία με κατάληξη .png και τα προσθέτε σε ένα αρχείο .pdf. Όμως με την εκτέλεση αυτής της εντολής, λάμβανα ένα μήνημα σφάλματος:<br>
<div class="code">
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3288.
</div><br>
Μετά από λίγη αναζήτηση, βρήκα στο <a href="https://stackoverflow.com/questions/52998331/imagemagick-security-policy-pdf-blocking-conversion" target="_blank">stackoverflow παρόμοιο πρόβλημα</a>. Να δούμε τι λύση δώσανε λοιπόν.<br><br>
<h2><b>Η ΛΥΣΗ</b></h2>
Ουσιαστικά έπρεπε να δικαιώματα εγγραφής στο ImageMagick.<br>
<div class="code">
sudo nano /etc/ImageMagick-6/policy.xml
</div><br>
Στην περίπτωσή σας μπορεί να είναι το αρχείο <i>/etc/ImageMagick-7/policy.xml</i>, ανάλογα με την έκδοση του ImageMagick που έχετε.<br><br>
Ουσιαστικά πρέπει να σβήσετε ένα κομμάτι και να προσθέσετε μια γραμμή. Προσωπικά κράτησα με σχόλιο όπως βλέπετε παρακάτω:
<pre>
<!--
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="PS2" />
<policy domain="coder" rights="none" pattern="PS3" />
<policy domain="coder" rights="none" pattern="EPS" />
<policy domain="coder" rights="none" pattern="PDF" />
<policy domain="coder" rights="none" pattern="XPS" />
-->
</pre><br>
Και μετά πρόσθεσα την παρακάτω γραμμή:
<pre>
<policy domain="module" rights="read|write" pattern="{PS,PS2,PS3,EPS,PDF,XPS}">
</pre><br>
Επειδή οι εικόνες είναι πολλές σε αριθμό, μπορεί να μην σας τις προσθέσει όλες με την πρώτη. Καλύτερα είναι να τις προσθέσετε ανά μάθημα και στο τέλος να ενώσετε τα pdf με την εντολή:<br>
<div class="code">
pdfunite *.pdf out.pdf
</div><br>
Αυτό υπάρχει στα εργαλεία poppler-utils. Για περισσότερες πληροφορίες πως μπορείτε να ενώσετε πολλά pdf σε ένα, <a href="https://eiosifidis.blogspot.com/2021/02/4-tropoi-gia-enosi-pollon-pdf-se-ena.html" target="_blank">δείτε σε προηγούμενο άρθρο</a>.<br><br>
Κοινοποιήστε το παρόν άρθρο σε φίλο σας που προσπαθεί να ενώσει πολλές εικόνες σε ένα pdf. Θα του σώσετε αρκετό χρόνο.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-18024940679224716342021-02-10T00:00:00.024+02:002022-02-13T22:24:08.576+02:004 τρόποι για να ενώσετε πολλά .pdf σε ένα μεγάλο<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu5U1c4Y9zJ2wCawJ35aL0Ey5bq9l3LIDIYMLTqxC3Kx2ftcNkyX-BlEdNbOua1xUNTCP1ajWL1jlE8dG4asKPF7rx64qF-XPIaZO-d1kpv-V_dJyfZWavW2kF8-3ERYIyyfqdYyKlsKk3/s512/pdf.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="4 τρόποι για να ενώσετε πολλά .pdf σε ένα μεγάλο" border="0" width="320" data-original-height="512" data-original-width="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu5U1c4Y9zJ2wCawJ35aL0Ey5bq9l3LIDIYMLTqxC3Kx2ftcNkyX-BlEdNbOua1xUNTCP1ajWL1jlE8dG4asKPF7rx64qF-XPIaZO-d1kpv-V_dJyfZWavW2kF8-3ERYIyyfqdYyKlsKk3/s320/pdf.png"/></a></div>
<h2><b>ΤΟ ΠΡΟΒΛΗΜΑ</b></h2>
Έστω ότι συγκεντρώνετε πολλά αρχεία pdf. Είτε σχολή λέγεται αυτό, είτε εργασία; Το πρόβλημα που αντιμετωπίζουν πολλοί είναι η εύρεση της πληροφορίας όταν την χρειάζονται. Σίγουρα μπορεί να γίνει και μέσα από το λειτουργικό σύστημα αλλά αρκετές φορές δεν έχει επιτυχία. Οπότε μια καλή λύση είναι η ένωση σε ένα αρχείο, όλων των pdf που έχουν το ίδιο αντικείμενο, ώστε να αναζητάτε μέσα από το πρόγραμμα ανάγνωσης pdf. Εδώ θα εξετάσουμε πως μπορείτε με μια κίνηση, να ενώσετε πολλά pdf.<br><br>
<h2><b>Η ΛΥΣΗ</b></h2>
Μέχρι στιγμής, βρήκα 4 λύσεις:<br><br>
<h3><b>ΛΥΣΗ 1:</b></h3> Εγκαταστήστε το poppler-utils με την παρακάτω εντολή:<br>
<div class="code">
#Σε openSUSE<br>
sudo zypper in poppler-tools<br><br>
#Σε Ubuntu/Linux Mint<br>
sudo apt install poppler-utils<br><br>
#Σε Arch Linux<br>
sudo pacman -S poppler
</div><br>
Στη συνέχεια, στον κατάλογο με τα pdf, εκτελέστε την εντολή:<br>
<div class="code">
pdfunite *.pdf out.pdf
</div><br>
<br>
<h3><b>ΛΥΣΗ 2:</b></h3> Εγκαταστήστε το πρόγραμμα pdftk με την παρακάτω εντολή:<br>
<div class="code">
#Σε openSUSE<br>
sudo zypper in pdftk<br><br>
#Σε Ubuntu/Linux Mint<br>
sudo apt install pdftk<br><br>
#Σε Arch Linux<br>
sudo pacman -S pdftk
</div><br>
Έστω ότι είστε φοιτητής και έχετε οργανώσει τις διαλέξεις ανά φάκελο (με ότι πιθανά αρχεία να σας έχουν δώσει). Δώστε την παρακάτω εντολή:<br>
<div class="code">
pdftk lecture?/*.pdf cat output lecturesall.pdf
</div><br>
Αυτό που θα κάνει είναι να μπει σε ένα ένα φάκελο, θα δει αν έχει κάποιο αρχείο pdf και θα το ενώσει σε ένα pdf.<br>
<br>
<h3><b>ΛΥΣΗ 3:</b></h3> Χρήση latex.
Εγκαταστήστε το παρακάτω πακέτο.
<div class="code">
#Σε openSUSE<br>
sudo zypper in texlive-latex-base<br><br>
#Σε Ubuntu/Linux Mint<br>
sudo apt install texlive-latex-base<br><br>
#Σε Arch Linux<br>
sudo pacman -S texlive-latexextra
</div><br>
Εστω ότι έχετε τα αρχεία file1.pdf και file2.pdf στον ίδιο φάκελο. Φτιάξτε το αρχείο <b>output.tex</b> με το περιεχόμενο:<br>
<div class="code">
\documentclass{article}<br>
\usepackage{pdfpages}<br>
\begin{document}<br>
\includepdf[pages=-]{file1}<br>
\includepdf[pages=-]{file2}<br>
\end{document}
</div><br>
Εκτελέστε την εντολή:<br>
<div class="code">
pdflatex output.tex
</div><br>
<br>
<h3><b>ΛΥΣΗ 4:</b></h3> Μπορείτε να κατασκευάσετε ένα script στο Nautilus:<br>
Εγκαταστήστε το πακέτο (εάν δεν το έχετε):<br>
<div class="code">
#Σε openSUSE<br>
sudo zypper in poppler-tools<br><br>
#Σε Ubuntu/Linux Mint<br>
sudo apt install poppler-utils<br><br>
#Σε Arch Linux<br>
sudo pacman -S poppler
</div><br>
Κατασκευάστε ένα αρχείο μέσα στον κατάλογο nautilus/scripts<br>
<div class="code">
nano ~/.local/share/nautilus/scripts/merge_pdfs.sh
</div><br>
Στην συνέχεια προσθέστε το παρακάτω κώδικα:<br>
<div class="code">
#!/bin/sh<br>
CLEANED_FILE_PATHS=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed 's,.pdf /home/,.pdf\\n/home/,g')<br>
echo $CLEANED_FILE_PATHS | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" merged.pdf'
</div><br>
Το αρχείο αυτό κάντε το εκτελέσιμο (πατήστε δεξί πλήκτρο πάντω του > Ιδιότητες > Δικαιώματα > Να επιτρέπεται η εκτέλεση του αρχείου ως προγράμματος). Εναλλακτικά δώστε την παρακάτω εντολή:<br>
<div class="code">
chmod +x ~/.local/share/nautilus/scripts/merge_pdfs.sh
</div><br>
Τώρα για να ενώσετε τα αρχεία, φωτίστε τα στον φάκελο στο Nautilus, πατήστε δεξί <b>πλήκτρο > Δέσμες ενεργειών (scripts)</b> και επιλέξτε το merge_pdfs.sh για να σας εξάγει ένα αρχείο pdf.<br><br>
Εάν βρήκατε κάποιον τρόπο εύκολο στην χρήση, ενημερώστε και τους φίλους σας ώστε να μην παιδεύονται.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-734287895964849792020-11-11T10:57:00.008+02:002021-02-24T15:12:04.579+02:00Εγκατάσταση Code::Blocks σε διανομές GNU/Linux και ρυθμίσεις (αλλαγή θέματος, ρυθμίσεις τερματικού)<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglwmAnaUSnDsHg1iLYKV_M1wLMDx1iAxI0P7t5gtCPbPvQLEgacZU4DYnQtFD2WUJL1OmLxyTmXGtPktGKfXPfKZW-JAn8e_3RYcqiOiYKV9SvOMmK8FCOJ4V_HAPsHB9BJCZCxLaRYTBK/s246/code-blocks.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Code::Blocks" title="Code::Blocks" border="0" width="200" data-original-height="246" data-original-width="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglwmAnaUSnDsHg1iLYKV_M1wLMDx1iAxI0P7t5gtCPbPvQLEgacZU4DYnQtFD2WUJL1OmLxyTmXGtPktGKfXPfKZW-JAn8e_3RYcqiOiYKV9SvOMmK8FCOJ4V_HAPsHB9BJCZCxLaRYTBK/s200/code-blocks.png"/></a></div>
Το <a href="http://www.codeblocks.org/" target="_blank">Code::Blocks</a> είναι ένα δωρεάν εργαλείο με περιβάλλον ανάπτυξης κώδικα C, C ++ και Fortran, κατασκευασμένο για να ικανοποιεί τις πιο απαιτητικές ανάγκες των χρηστών του. Είναι σχεδιασμένο να είναι πολύ επεκτάσιμο και πλήρως διαμορφώσιμο.
<br /><br />
Στο Code::Blocks μπορούν να ενεργοποιηθούν πολλά πρόσθετα. Για παράδειγμα, η λειτουργία μεταγλώττισης και εντοπισμού σφαλμάτων παρέχεται ήδη από πρόσθετα!
<br /><br />
Εδώ θα δούμε πως εγκαθιστάτε το Code::Blocks πολύ εύκολα σε διανομές Linux. Για αρχή, υπάρχει η ιστοσελίδα <a href="http://www.codeblocks.org/downloads/binaries" target="_blank">λήψεων εδώ</a>.<br /><br />
<h3>Εγκατάσταση με χρήση flatpak</h3>
Η πιο σίγουρη λύση για εγκατάσταση είναι μέσω του <a href="https://eiosifidis.blogspot.com/search/label/flatpak" target="_blank">flatpak</a>.<br />
Ανοίξτε τερματικό και εκτελέστε την εντολή:
<div class="code">
sudo flatpak install org.codeblocks.codeblocks
</div>
<br />
<h3>Εγκατάσταση σε openSUSE</h3>
Στο openSUSE η εγκατάσταση είναι πολύ απλή. Θα χρησιμοποιήσετε την τεχνολογία 1-click-install. Μετακινηθείτε στην σελίδα:
<br /><br />
<a href="https://software.opensuse.org/package/codeblocks" target="_blank">https://software.opensuse.org/package/codeblocks</a>
<br /><br />
Εκεί επιλέξτε την έκδοση που έχετε εγκατεστημένη (μπορείτε να πατήσετε και εδώ επάνω στην έκδοσή σας):
<ul>
<li><a href="https://software.opensuse.org/ymp/devel:tools:ide/openSUSE_Factory/codeblocks.ymp?base=openSUSE%3AFactory&query=codeblocks" target="_blank">openSUSE Tumbleweed</a></li>
<li><a href="https://software.opensuse.org/ymp/devel:tools:ide/openSUSE_Leap_15.2/codeblocks.ymp?base=openSUSE%3ALeap%3A15.2&query=codeblocks" target="_blank">openSUSE Leap 15.2</a></li>
</ul>
Και θα ανοίξει ένα ymp αρχείο, θα προσθέσει το αποθετήριο <b>devel:tools:ide</b>, από όπου θα γίνει η εγκατάσταση του Code:Blocks.
<br /><br />
Εναλλακτικά με τερματικό, μπορείτε να χρησιμοποιήσετε τις εντολές:<br /><br />
- Για openSUSE Leap 15.2:
<div class="code">
su -<br />
zypper ar http://download.opensuse.org/repositories/devel:/tools:/ide/openSUSE_Leap_15.2/ devel:tools:ide<br />
zypper in codeblocks
</div>
<br />
<h3>Εγκατάσταση σε Arch Linux</h3>
Ανοίξτε το τερματικό και πληκτρολογήστε:
<div class="code">
sudo pacman -S codeblocks
</div>
<br />
<h3>Εγκατάσταση σε Ubuntu/Linux Mint</h3>
Σε Ubuntu, θα βρείτε τα πάντα στην διεύθυνση <a href="https://launchpad.net/~codeblocks-devs" target="_blank">https://launchpad.net/~codeblocks-devs</a>. Μάλιστα εντύπωση που έκανε που το διατηρεί Ελληνας.<br /><br />
Εδώ θα πρέπει να προσθέσετε το αποθετήριο και μετά να κάνετε μια ενημέρωση των αποθετηρίων, καταλήγοντας στην εγκατάσταση με τις παρακάτω εντολές:
<div class="code">
sudo add-apt-repository ppa:codeblocks-devs/release<br />
sudo apt-get update<br />
sudo apt-get install codeblocks codeblocks-contrib
</div><br /><br />
Ελπίζουμε να μην βρήκατε ιδιαίτερα δύσκολη την εγκατάσταση του Code::Blocks.<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzuCj6PbOAGz4VF4xEU3LsvlO7ErFSleYM6mq8a0FANNF821diElmfana_ZbmBVlYWgjKUgNOrG3rm_4vEfJQ4nV4yVlHT0Qd7_GFJSZfFPHMsjkzZegy3xb-5PS17Bt4NuYjq_D_twWlI/s200/codeblocks.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="Code::Blocks" title="Code::Blocks" border="0" width="200" data-original-height="200" data-original-width="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzuCj6PbOAGz4VF4xEU3LsvlO7ErFSleYM6mq8a0FANNF821diElmfana_ZbmBVlYWgjKUgNOrG3rm_4vEfJQ4nV4yVlHT0Qd7_GFJSZfFPHMsjkzZegy3xb-5PS17Bt4NuYjq_D_twWlI/s200/codeblocks.png"/></a></div>
Αφού εγκαταστήσαμε το Code::Blocks και γράψαμε τους πρώτους κώδικες σε C, επόμενη κίνηση ήταν να βρούμε ένα όμορφο χρώμα για τα παράθυρά μας, που να ταιριάζει και να μην κουράζει το μάτι. Δυστυχώς από τα υπάρχοντα, δεν μου άρεσε κάποιο, οπότε ξεκίνησε το ψάξιμο για αλλαγή του θέματος.<br><br>
Στο αρχείο <a href="https://github.com/yjzzjy4/Codeblocks-themes" target="_blank">default.conf</a>, έχει πολλά θέματα, όμως που έπρεπε νααποθηκευτούν;
Όπως είδατε, υπάρχουν δυο τρόποι.<br><br>
1. Εάν το εγκαταστήσετε από το πακέτο ή αποθετήριο της διανομής σας, τότε μπορείτε να αποθηκεύσετε το αρχείο <b>default.conf</b> στον φάκελο όπως βλέπετε παρακάτω:<br>
<div class="code">
# Κρατήστε αντίγραφο ασφαλείας<br>
cp ~/.codeblocks/default.conf ~/.codeblocks/default.conf.bak<br><br>
# Αντιγράψτε το αρχείο default.conf από τον φάκελο που το κατεβάσατε, στον παρακάτω φάκελο<br>
cp default.conf ~/.codeblocks/
</div><br />
2. Εάν το εγκαταστήσετε από το αποθετήριο flatpak, τότε ο φάκελος είναι διαφορετικός. Αποθηκεύστε το αρχείο <b>default.conf</b> στον φάκελο όπως βλέπετε παρακάτω:<br>
<div class="code">
# Κρατήστε αντίγραφο ασφαλείας<br>
cp ~/.var/app/org.codeblocks.codeblocks/config/codeblocks/default.conf ~/.var/app/org.codeblocks.codeblocks/config/codeblocks/default.conf.bak<br><br>
# Αντιγράψτε το αρχείο default.conf από τον φάκελο που το κατεβάσατε, στον παρακάτω φάκελο<br>
cp default.conf ~/.var/app/org.codeblocks.codeblocks/config/codeblocks/
</div><br />
Mετακινηθείτε στο <i>Settings->Editor->Syntax highlighting->Colour theme</i>. Ορίστε το στο επιθυμητό θέμα.<br /><br />
Τέλος, για να φαίνονται λίγο μεταλύτερα τα γράμματα στο τερματικό, μετακινηθείτε το <b>Settings>Environment</b> και στο <i>Terminal to launch console programs</i> και αλλάξτε το στο παρακάτω:<br />
<div class="code">
xterm -fa 'Monospace' -fs 12 -bg black -fg white -geometry 132x50 -T $TITLE -e
</div><br /><br />
Θα μεγαλώσουν τα γράμματα (αλλάξτε το μέγεθος 12) αλλά και το παράθυρο.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-62590080345015258922020-11-04T10:50:00.006+02:002021-01-18T01:16:42.606+02:00Εγκατάσταση Μαθηματικού Λογισμικού SageMath σε διανομές GNU/Linux<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMduaxS_hVF1ZuCdhrpW4BPG5yPPQ0KlqDhLXXH-suKO4OaHNkHSQQycoJWxUe1X1_8sQyT-88ZeZCPailaOO0Z4HxkJnzcKlmFoxIcWzcBFN7nPRtP7J27gz0_KQJnEFP2GUowcsBPsvw/s690/sagemath_logo.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="SageMath Logo" title="SageMath Logo" border="0" width="600" data-original-height="335" data-original-width="690" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMduaxS_hVF1ZuCdhrpW4BPG5yPPQ0KlqDhLXXH-suKO4OaHNkHSQQycoJWxUe1X1_8sQyT-88ZeZCPailaOO0Z4HxkJnzcKlmFoxIcWzcBFN7nPRtP7J27gz0_KQJnEFP2GUowcsBPsvw/s600/sagemath_logo.png"/></a></div>
<h2>ΠΡΟΛΟΓΟΣ</h2>
Πολλοί φοιτητές των Ελληνικών Πανεπιστημίων, διδάσκονται μαθηματικά λογισμικά που πιθανό να τα χρησιμοποιήσουν στην εργασία τους. Από τη στιγμή που διδάσκονται, πρέπει να δίνεται η δυνατότητα να εξασκηθούν στο σπίτι. Εάν τα λογισμικά αυτά είναι εμπορικά, αυτό σημαίνει ότι χρειάζεται και άδεια χρήσης. Η άδεια αυτή κοστίζει αρκετά χρήματα, ειδικά αν πρέπει να δοθεί και στους φοιτητές.
<br><br>
Στον αντίποδα, υπάρχουν μαθηματικά λογισμικά ανοικτού κώδικα που μπορούν να αντικαταστήσουν τα εμπορικά λογισμικά στην διαδικασία της διδασκαλίας. Ίσως, να μπορεί να γίνει η αντικατάσταση αυτή και στον παραγωγικό τομέα, αφού οι περισσότεροι απόφοιτοι θα γνωρίζουν τον χειρισμό ΜΟΝΟ των λογισμικών ανοικτού κώδικα. Ένα από αυτά είναι το <b>SageMath</b>. Εδώ θα δούμε πως μπορεί να εγκατασταθεί στο Linux.
<br><br>
<h2>ΕΙΣΑΓΩΓΗ</h2>
Το <a href="https://www.sagemath.org/" target="_blank">Sage (System for Algebra and Geometry Experimentation)</a> είναι ένα ελεύθερο (δωρεάν) λογισμικό μαθηματικών ανοιχτού κώδικα που υποστηρίζει αριθμητικούς υπολογισμούς, και γενικά την έρευνα και τη διδασκαλία στην άλγεβρα, στη γεωμετρία, στην θεωρία αριθμών, στην κρυπτογραφία, και σε συναφείς τομείς. Καλείται συχνά και <b>Sagemath</b> καθώς η λέξη Sage είναι πολύ κοινή.
<br><br>
Συνδυάζει τις δυνατότητες πολλών υπαρχόντων πακέτων ανοιχτού κώδικα (<i>NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R</i> κ.τ.λ.) σε µία κοινή διεπαφή βασισμένη στη γλώσσα <b>Python</b>. Είναι λογισμικό γενικής χρήσης, με δυνατότητες αναλυτικών και αριθμητικών υπολογισμών καθώς και γραφικών.
<br><br>
Ο γενικός στόχος του Sage, σύμφωνα με τον δημιουργό του, είναι να δημιουργηθεί μια βιώσιμη, δωρεάν, ανοιχτού κώδικα εναλλακτική λύση απέναντι στα μαθηματικά λογισμικά: <i>Maple, Mathematica, Magma, και MATLAB</i>.
<br><br>
Η πρώτη δημόσια έκδοση παρουσιάστηκε τον Φεβρουάριο του 2005 ως ελεύθερο λογισμικό. Ο δημιουργός της είναι ο William Stein, καθηγητής μαθηματικών στο University of Washington.
<br><br>
<h2>Εγκατάσταση σε Debian/Ubuntu/Linux Mint</h2>
Η εγκατάσταση σε Debian/Ubuntu είναι εύκολη, καθώς υπάρχουν στο αποθετήριο. Μπορείτε εύκολα να τα εγκαταστήσετε με την εντολή:
<div class="code">
sudo apt install sagemath sagemath-jupyter sagemath-doc-en
</div><br />
Ο διακομιστής Sage Jupyter Notebook θα εκκινήσει αμέσως μόλις εκκινήσετε την εφαρμογή, είτε από το GUI είτε από το τερματικό.<br /><br />
<h3>Εγκατάσταση σε Debian/Ubuntu από συμπιεσμένο αρχείο</h3>
1. Μεταβείτε στην <a href="http://ftp.ntua.gr/pub/sagemath/linux/index.html" target="_blank">ιστοσελίδα των λήψεων</a> και κατεβάστε την έκδοση που αντιστοιχεί στο λειτουργικό σας.<br /><br />
2. Στη συνέχεια αποσιμπιέστε το αρχείο <b>.tar.bz2</b> που κατεβάσατε.<br />
<b>ΣΥΜΒΟΥΛΗ:</b> Φτιάξτε ένα κατάλογο <b>bin</b> μέσα στον προσωπικό σας φάκελο. Εκεί να αποθηκεύετε τα προγράμματα που θέλετε να εγκαταστήσετε (όπως το SageMath). Με αυτό τον τρόπο θα γνωρίζετε ότι πρόκειται για προγράμματα και δεν θα τον πειράζετε. Επίσης δεν θα είστε σίγουροι ότι δεν υπάρχει κάποιος Ελληνικός χαρακτήρας στο path που μπορεί να προκαλέσει κάποιο πρόβλημα.<br /><br />
3. Αφού το αποσυμπιέσατε, μεταβείτε στον κατάλογο <i>SageMath</i> και εκτελέστε το πρόγραμμα <i>sage</i>
<div class="code">
./sage
</div><br />
4. Την πρώτη φορά που θα εκτελεστεί το Sage θα σας δώσει μια εικόνα όπως το παρακάτω μήνυμα:
<div class="code">
Rewriting paths for your new installation directory<br />
===================================================<br /><br />
This might take a few minutes but only has to be done once.<br /><br />
patching ... (long list of files)
</div><br />
Από εδώ και πέρα, δεν μπορείτε να μετακινήσετε το Sage.<br /><br />
5. Τελευταία κίνηση είναι η δημιουργία συντόμευσης ώστε να μπορείτε να εκτελέσετε το Sage από το τερματικό. Τώρα μπορείτε να δημιουργήσετε την συντόμευση με την εντολή:
<div class="code">
$ sudo ln -s /path/to/SageMath/sage /usr/local/bin/sage
</div><br />
Όπου /path/to/ είναι το πλήρες path που εγκαταστήσατε το SageMath.<br /><br />
Μπορείτε να βρείτε περισσότερες πληροφορίες στο <a href="https://help.ubuntu.com/community/SAGE" target="_blank">wiki του Ubuntu</a>.
<br /><br />
<h2>Εγκατάσταση σε Arch Linux</h2>
1. Εγκατάσταση με την εντολή:
<div class="code">
sudo packam -S sagemath sagemath-jupyter sagemath-doc
</div><br />
2. Το SageMath παρέχει και το Jupyter Notebook. Εκτελέστε την εντολή:
<div class="code">
$ jupyter notebook
</div><br />
και επιλέξτε "SageMath" από το αναδυόμενο μενού "New...".<br /><br />
<h3>Εκκίνηση</h3>
Εκτέλεση στο τερματικό με την εντολή:
<div class="code">
$ sage -c "notebook(automatic_login=True)"
</div><br />
Μεταβείτε στην διεύθυνση <a href="http://localhost:8080/" target="_blank">http://localhost:8080/</a> και εκεί θα μπορείτε χρησιμοποιήσετε το Jupiter Notebook. Επειδή θα χρησιμοποιείτε μόνο εσείς το SageMath, μπορείτε να το εκτελέσετε χωρίς κωδικό.
<br /><br />
Για περισσότερες πληροφορίες, μπορείτε να <a href="https://wiki.archlinux.org/index.php/SageMath" target="_blank">δείτε το Arch Linux wiki</a>.
<br /><br />
<h2>Εγκατάσταση και χρήση Docker</h2>
Όμως τι γίνεται αν έχετε κάποια άλλη διανομή (όπως έγώ με openSUSE); Η λύση είναι η χρήση Docker.<br /><br />
Ψάχντοντας στο hub, βρήκα την διευθυνση:<br />
<a href="https://hub.docker.com/r/sagemath/sagemath/" target="_blank">https://hub.docker.com/r/sagemath/sagemath/</a>
<br /><br />
Οπότε εδώ θα δούμε πως θα κάνουμε λήψη, ενεργοποίηση και χρήση του SageMath.
<br /><br />
1. Λήψη του θα την κάνετε με την εντολή:
<div class="code">
sudo docker pull sagemath/sagemath
</div><br />
<br />
2. Αφού κατέβει, μπορείτε να δείτε την λίστα με τα images με την εντολή:
<div class="code">
sudo docker images
</div><br />
<br />
3. Εκκίνηση του SageMath μαζί με το Jupyter Notebook.
<div class="code">
sudo docker run -p8888:8888 sagemath/sagemath:latest sage-jupyter
</div><br />
<br />
Αφού εκτελεστεί, δείτε λίγο τα μηνύματα που θα βγάλει. Θα σας εμφανίσει ένα token. Αυτό θα το χρειαστείτε για να κάνετε είσοδο από την διεύθυνση <a href="http://localhost:8888" target="_blank">http://localhost:8888</a> ή την τύπου http://IP:8888.
<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIk3e7mT2FkM2K0mnYKlbBfELZpJn0R8UmByWJBITtXMFcMQm4kaPhg1bwAO80tpCsceKOIpbMgkhQs1ScEdNrTcXyResjk2rxtfoEBU0nksXt-TtS83XSLiyNvB41wz_ypC1RUHzaIKdK/s0/sagemath.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="SageMath στον Browser" title="SageMath στον Browser" border="0" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIk3e7mT2FkM2K0mnYKlbBfELZpJn0R8UmByWJBITtXMFcMQm4kaPhg1bwAO80tpCsceKOIpbMgkhQs1ScEdNrTcXyResjk2rxtfoEBU0nksXt-TtS83XSLiyNvB41wz_ypC1RUHzaIKdK/s0/sagemath.jpg"/></a></div>
<br />
4. Αφού τελειώσετε, πρέπει να τερματίσετε τον server και να τερματίσετε το docker.<br /><br />
Αυτό γίνεται πολύ εύκολα με μια εντολή:<br /><br />
<div class="code">
sudo docker ps | grep sagemath | awk '{print $1}' | xargs docker stop
</div><br />
Εάν παρόλα αυτά δεν δουλέψει, μπορείτε να τερματίσετε το container με την παρακάτω διαδικασία.<br />
Θα βρείτε το CONTAINER_ID με την εντολή:
<div class="code">
sudo docker container ps
</div><br />
<br />
Δείτε το ID της και μπορείτε να τερματίσετε με το ID της με την εντολή (αν πχ το ID είναι 3b40632adb78):
<div class="code">
sudo docker container stop 3b40632adb78
</div><br />
<br />
<h2>ONLINE</h2>
Υπάρχει και η δυνατότητα να μην εγκαταστήσετε τιποτα. Μπορείτε να βρείτε online τις εξής λύσεις:<br /><br />
1. <a href="https://cocalc.com/" target="_blank">https://cocalc.com/</a>: Η λύση αυτή είναι επι πληρωμή. Υπάρχει το δωρεάν πλάνο αλλά δεν είναι και τόσο γρήγορο. Μπορεί να περιμένετε αρκετή ώρα μέχρι να έχετε αποτέλεσμα.
<br />
2. <a href="https://sagecell.sagemath.org/" target="_blank">https://sagecell.sagemath.org/</a>: Ακόμα μια λύση, καλύτερη από το cocalc.
<br /><br />
<h2>Σημειωματάριο PORTO</h2>
Εναλλακτικά του Jupyter μπορείτε να εγκαταστήσετε το Porto από το flathub.<br /><br />
<a href="https://flathub.org/apps/details/org.cvfosammmm.Porto" target="_blank">https://flathub.org/apps/details/org.cvfosammmm.Porto</a><br /><br />
Ή εκτελέστε την εντολή
<div class="code">
sudo flatpak install org.cvfosammmm.Porto
</div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwQ5lWyNCXz46-J4jsqoCeVfhb505F10YP3ceIQRN-V_6T7Okw_FsKUA4tqkJs6zIFAoYspISSY0n2TOwLCPGUonVFtmShTQwVkrBOWMeg4HasFaiV3_N2qNqfROnFJ0D4zRKDhgO305bo/s1366/porto.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Porto notebook" title="Porto notebook" border="0" width="600" data-original-height="768" data-original-width="1366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwQ5lWyNCXz46-J4jsqoCeVfhb505F10YP3ceIQRN-V_6T7Okw_FsKUA4tqkJs6zIFAoYspISSY0n2TOwLCPGUonVFtmShTQwVkrBOWMeg4HasFaiV3_N2qNqfROnFJ0D4zRKDhgO305bo/s600/porto.jpg"/></a></div>
<br /><br />
<a href="https://doc.sagemath.org/html/en/installation/source.html" target="_blank">Δείτε πως μπορείτε να κάνετε εγκατάσταση από το πηγαίο αρχείο.</a>
Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-25819242114192384092020-10-24T13:24:00.001+03:002020-10-24T23:56:00.087+03:00Όρια φόρτισης μπαταρίας και διαχείριση ισχύος στο openSUSE με TLP<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB6vfkqgytoGjzLKnEXZpDtpHpQ79UMNUfhp659Jh2ycN7f7JpsG17jAkMfg0QQqV8XcWPhArel50bU__kXKs91xxovh3RvJJi-pz34XySqys5HgNkjUG-OZVwcFhiHLR_Ojsd46IvlJbV/s654/small-lamp.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Λάμπα openSUSE" border="0" width="320" data-original-height="654" data-original-width="654" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB6vfkqgytoGjzLKnEXZpDtpHpQ79UMNUfhp659Jh2ycN7f7JpsG17jAkMfg0QQqV8XcWPhArel50bU__kXKs91xxovh3RvJJi-pz34XySqys5HgNkjUG-OZVwcFhiHLR_Ojsd46IvlJbV/s320/small-lamp.jpg"/></a></div>
Οι μπαταρίες είναι ένα σημαντικό στοιχείο στη βιωσιμότητα των φορητών υπολογιστών. Αξίζει ειδική μεταχείριση για την παράταση της διάρκειας ζωής τους. Μια ειδική μεταχείριση λοιπόν είναι με την προσαρμογή των ορίων φόρτισης μπαταρίας.<br><br>
Τα όρια φόρτισης μπαταρίας είναι ένας μηχανισμός διακοπής φόρτησης, προτού να φορτιστεί πλήρως η μπαταρία και συνέχιση φόρτησης όταν αρχίσει να αδειάζει. Χωρίς ποτέ φόρτιση της μπαταρίας να πάει στο 100%, η διάρκεια ζωής της μπαταρίας μεγαλώνει. Ρυθμίστε για διακοπή της φόρτισης, εάν η χωρητικότητα της μπαταρίας είναι 85% και επανέναρξη όταν η μπαταρία είναι 75%. Μπορείτε να προσαρμόσετε αυτήν την ποσοστιαία τιμή όπως θέλετε.<br>
<div class="code">START_CHARGE_THRESH_BAT0="<b>75</b>"<br />
STOP_CHARGE_THRESH_BAT0="<b>85</b>"
<br /><br />
START_CHARGE_THRESH_BAT1="<b>75</b>"<br />
STOP_CHARGE_THRESH_BAT1="<b>85</b>"
</div><br />
Αυτή η δυνατότητα διαχείρισης ενέργειας είναι αρκετά ολοκληρωμένη όταν χρησιμοποιείτε το ThinkVantage σε λειτουργικό σύστημα Windows. Προφανώς, το ThinkVantage είναι ένα ξεχωριστό χαρακτηριστικό της σειράς φορητών υπολογιστών Thinkpad. Το λογισμικό ThinkVantage δεν είναι διαθέσιμο στο λειτουργικό σύστημα GNU / Linux.<br><br>
Μία εφαρμογή που μπορεί να εκτελέσει το καθήκον του καθορισμού ορίων φόρτισης μπαταρίας είναι το <b>TLP</b>. Αυτό το λογισμικό είναι άμεσα διαθέσιμο σε πολλά αποθετήρια διανομών GNU / Linux.<br><br>
<h3><b>Εγκατάσταση TPL</b></h3>
Βλέποντας στον επίσημο ιστότοπο TLP στον σύνδεσμο <a href="https://linrunner.de/tlp/" target="_blank">https://linrunner.de/tlp/</a> , τα βήματα εγκατάστασης και η εκτέλεση του είναι αρκετά εύκολα.
<div class="code">sudo zypper in tlp-rdw<br />
sudo systemctl enable tlp
</div><br />
<h3><b>Διαμόρφωση TLP</b></h3>
Η διαμόρφωση του TLP γίνεται αλλάζοντας τις ρυθμίσεις στο αρχείο του TLP στη διεύθυνση: <b>/etc/tlp.conf</b>. Χρησιμοποιήστε το αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου. Εδώ είναι η διαμόρφωση η δικιά μου:
<div class="code">
--- TLP 1.3.1 --------------------------------------------<br />
+++ Configured Settings:<br />
/etc/tlp.conf L0026: TLP_ENABLE="1"<br />
/etc/tlp.conf L0038: TLP_PERSISTENT_DEFAULT="0"<br />
/etc/tlp.conf L0050: DISK_IDLE_SECS_ON_AC="0"<br />
/etc/tlp.conf L0051: DISK_IDLE_SECS_ON_BAT="2"<br />
/etc/tlp.conf L0056: MAX_LOST_WORK_SECS_ON_AC="15"<br />
/etc/tlp.conf L0057: MAX_LOST_WORK_SECS_ON_BAT="60"<br />
/etc/tlp.conf L0100: CPU_ENERGY_PERF_POLICY_ON_AC="balance_performance"<br />
/etc/tlp.conf L0101: CPU_ENERGY_PERF_POLICY_ON_BAT="balance_power"<br />
/etc/tlp.conf L0128: SCHED_POWERSAVE_ON_AC="0"<br />
/etc/tlp.conf L0129: SCHED_POWERSAVE_ON_BAT="1"<br />
/etc/tlp.conf L0135: NMI_WATCHDOG="0"<br />
/etc/tlp.conf L0150: DISK_DEVICES="sda"<br />
/etc/tlp.conf L0158: DISK_APM_LEVEL_ON_AC="254 254"<br />
/etc/tlp.conf L0159: DISK_APM_LEVEL_ON_BAT="128 128"<br />
/etc/tlp.conf L0198: SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"<br />
/etc/tlp.conf L0199: SATA_LINKPWR_ON_BAT="med_power_with_dipm min_power"<br />
/etc/tlp.conf L0219: AHCI_RUNTIME_PM_TIMEOUT="15"<br />
/etc/tlp.conf L0264: WIFI_PWR_ON_AC="off"<br />
/etc/tlp.conf L0265: WIFI_PWR_ON_BAT="on"<br />
/etc/tlp.conf L0270: WOL_DISABLE="Y"<br />
/etc/tlp.conf L0276: SOUND_POWER_SAVE_ON_AC="0"<br />
/etc/tlp.conf L0277: SOUND_POWER_SAVE_ON_BAT="1"<br />
/etc/tlp.conf L0283: SOUND_POWER_SAVE_CONTROLLER="Y"<br />
/etc/tlp.conf L0291: BAY_POWEROFF_ON_AC="0"<br />
/etc/tlp.conf L0292: BAY_POWEROFF_ON_BAT="0"<br />
/etc/tlp.conf L0302: RUNTIME_PM_ON_AC="on"<br />
/etc/tlp.conf L0303: RUNTIME_PM_ON_BAT="auto"<br />
/etc/tlp.conf L0323: USB_AUTOSUSPEND="1"<br />
/etc/tlp.conf L0342: USB_BLACKLIST_PHONE="0"<br />
/etc/tlp.conf L0354: USB_BLACKLIST_WWAN="0"<br />
/etc/tlp.conf L0374: RESTORE_DEVICE_STATE_ON_STARTUP="0"<br />
/etc/tlp.conf L0442: NATACPI_ENABLE="1"<br />
/etc/tlp.conf L0443: TPACPI_ENABLE="1"<br />
/etc/tlp.conf L0444: TPSMAPI_ENABLE="1"<br />
/etc/tlp.conf L0032: TLP_DEFAULT_MODE="AC"<br />
/etc/tlp.conf L0076: CPU_SCALING_GOVERNOR_ON_AC="powersave"<br />
/etc/tlp.conf L0077: CPU_SCALING_GOVERNOR_ON_BAT="powersave"<br />
/etc/tlp.conf L0425: START_CHARGE_THRESH_BAT0="80"<br />
/etc/tlp.conf L0426: STOP_CHARGE_THRESH_BAT0="90"<br />
/etc/tlp.conf L0431: START_CHARGE_THRESH_BAT1="80"<br />
/etc/tlp.conf L0432: STOP_CHARGE_THRESH_BAT1="90"
</div><br />
<h3><b>Εκτέλεση TLP</b></h3>
Αφού πραγματοποιήσετε τη ρύθμιση που θέλετε, το TLP είναι έτοιμο για εκτέλεση<br>
<div class="code">
sudo systemctl restart tlp<br />
sudo tlp start #εκκίνηση tlp<br />
sudo tlp-stat -s #προβολή κατάστασης tlp<br />
sudo tlp-stat -c #για να δείτε ποια ρύθμιση εκτελείται
</div><br />
Υλικό ανάγνωσης:<br>
<a href="https://www.tecmint.com/tlp-increase-and-optimize-linux-battery-life/" target="_blank">https://www.tecmint.com/tlp-increase-and-optimize-linux-battery-life/</a>Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-88878716053940416552020-09-23T00:00:00.005+03:002020-10-01T11:57:32.164+03:00Πώς να κάνετε ερωτήσεις στο φόρουμ, στο facebook και γενικά όπου ζητάτε βοήθεια<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqGN_dv65b4Q6c3tabtmKG3N-Qqeb7ns9b2hRdiU6zPAWF1zGeNJSeVJ7VZOzsujozUmZVy0IioH5WjHvq30ERp18VQQNVhTChFMqA153_sUrx27qpaoPz5rmely1iuOiXNxiHOfniZ8R/s1200/sostes_erotisis_voitheias.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="Πώς να κάνετε ερωτήσεις στο facebook όταν ζητάτε βοήθεια" border="0" width="600" data-original-height="800" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqGN_dv65b4Q6c3tabtmKG3N-Qqeb7ns9b2hRdiU6zPAWF1zGeNJSeVJ7VZOzsujozUmZVy0IioH5WjHvq30ERp18VQQNVhTChFMqA153_sUrx27qpaoPz5rmely1iuOiXNxiHOfniZ8R/s600/sostes_erotisis_voitheias.jpg"/></a></div>
<h2><b>Πώς μπορώ να κάνω μια καλή ερώτηση σε ένα φόρουμ;</b></h2>
Παλιότερα τα φόρουμ ήταν τόπος επίλυσης πολλών προβλημάτων των χρηστών. Με την έλευση των μέσων κοινωνικής δικτύωσης, οι περισσότεροι ρωτούν σε ομάδες ειδικές για την εκάστοτε διανομή/πρόγραμμα, ώστε να έχουν γρηγορότερη απάντηση. Προσωπικά έχω λύσει αλλά μου έχουν λυθεί πολλές απορίες σε πολλά forum.<br>
Ένα από τα αξιοσημείωτα forum είναι το Java Ranch. (<a href="http://www.coderanch.com/how-to/java/HowToAskQuestionsOnJavaRanch" target="_blank">http://www.coderanch.com/how-to/java/HowToAskQuestionsOnJavaRanch</a>)<br><br>
Γιατί σας αναφέρω το συγκεκριμένο forum; Επειδή έχουν μια καλή παράδοση να κάνουν καλή ερώτηση.<br><br>
Το να περιγράψει κανείς επακριβώς το πρόβλημα που αντιμετωπίζει, φαίνεται να είναι κάτι που απουσιάζει σε πολλά forum. Όχι μόνο στην Ελλάδα αλλά και στο εξωτερικό. Βέβαια από την άλλη, υπάρχει η άποψη ότι "αν γνώριζα πως να κάνω μια αναλυτική ερώτηση, θα μπορούσα να βρώ και την λύση από μόνος μου". Δεν είναι ακριβώς έτσι. Θα μοιραστώ έναν μικρό οδηγό σχετικά με τον τρόπο υποβολής ερωτήσεων σε ένα forum που θα βοηθήσουν τους πεπειραμένους να σας δώσουν μια άμεση και γρήγορη απάντηση.<br><br>
Η υποβολή ερωτήσεων γενικά είναι «τέχνη». Η ποιότητα των απαντήσεων εξαρτάται πολύ από την «ποιότητα» της ερώτησης. Όταν δεν λάβετε την απάντηση που θέλετε, θα πρέπει πάντα να αναρωτιέστε «μήπως θα μπορούσα να βελτιώσω την ερώτηση;».<br><br>
Ο πρώτος κανόνας για να λάβετε μια καλή απάντηση είναι<br> <br>
<h3>«<b>Δείξτε κάποια προσπάθεια</b>»</h3>
Να θυμάστε ότι τα μέλη του forum δεν πληρώνονται για να απαντήσουν στις ερωτήσεις σας. Θα αφιερώσουν το χρόνο τους σε εσάς, οπότε βεβαιωθείτε ότι έχετε καταβάλει τουλάχιστον τόση προσπάθεια στην ερώτηση όσο περιμένετε να σας δώσουν τα μέλη που θα ασχοληθούν. Μην υποθέτετε ότι ο χρόνος των άλλων ανθρώπων είναι λιγότερο πολύτιμος από τον δικό σας που έχετε τη δυνατότητα να κάνετε «τηλεγραφικές» ερωτήσεις ώστε να «κερδίσετε» χρόνο - πράγμα που αναγκάζει τα μέλη του forum να χρειαστεί σπαταλήσουν χρόνο για να καταλάβουν τι ζητάτε.<br><br>
<h3>«<b>Να είστε ακριβής</b>»</h3>
Εάν λάβατε ένα μήνυμα σφάλματος, δημοσιεύστε το πλήρες μήνυμα σφάλματος. Η παράφραση δεν βοηθά πολύ, ειδικά στις περιπτώσεις όπου το μήνυμα δίνει λεπτομέρειες που δεν ξέρετε πώς να ερμηνεύονται, αλλά είναι πολύτιμες πληροφορίες για τους άλλους.<br><br>
<h3>«<b>Πρώτα αναζήτηση</b>»</h3>
Χρησιμοποιήστε το πεδίο αναζήτησης στο forum. Χρησιμοποιήστε το Google. Πείτε τι έχετε αναζητήσει και ίσως να σας δωθεί μια υπόδειξη για το τι να αναζητήσετε. Προσωπικά μισώ όταν μπορείτε να κάνετε αντιγραφή της απλής ερώτηση του θέματος που γράψατε στην ανάρτησή σας στο forum, και επικόληση στο Google και να λάβετε 10-15 καλές απαντήσεις. (Και ναι, ακόμη και αν χρησιμοποιήσετε παράθυρο ανώνυμης περιήγησης του Chrome). Μην προσβληθείτε εάν κάποιος δημοσιεύσει έναν σύνδεσμο <a href="https://lmgtfy.com/" target="_blank">https://lmgtfy.com</a>.<br><br>
<h3>«<b>Ηρεμήστε</b>»</h3>
Λοιπόν, βιάζεστε να λύσετε ένα πρόβλημα. Δεν βοηθά να γράψετε ΜΕ ΚΕΦΑΛΑΙΑ ΓΡΑΜΜΑΤΑ. Δεν βοηθά να γράψετε ΕΠΕΙΓΟΝ και ASAP (το γρηγορότερο δυνατό). Σε κανέναν δεν αρέσει όταν προσπαθείτε να του μεταφέρετε το άγχος σας. Αποκτήστε μια Rubber Duck. Είναι εκπληκτικό πόσο καλό είναι το Rubber Duck που λύνει προβλήματα. (Ψάξτε στο Google για <a href="https://en.wikipedia.org/wiki/Rubber_duck_debugging" target="_blank">Rubber Duck Debugging</a>). Εάν είναι πραγματικά επείγουσα ερώτηση και κάποιος την δει μια ημέρα μετά την ανάρτησή της, νομίζω γενικά ότι θα λάβετε την απάντηση αργοπορημένα ούτως ή άλλως.<br><br>
<h3>«<b>Κάντε υπομονή</b>»</h3>
Μην πηγαίνετε στην ανάρτησή σας στην κορυφή γράφοντας «Κάποιος;». Οι 24 ώρες δεν είναι πολύς χρόνος για να περιμένετε μια απάντηση. Ενώ περιμένετε, θα μπορούσατε να «Δείξετε κάποια προσπάθεια». Είναι εντάξει να γράψετε μια απάντηση στην ανάρτησή σας εάν έχετε νέες πληροφορίες όπως "Βρήκα αυτό το άρθρο, αλλά μπορεί κάποιος να μου εξηγήσει τι εννοούν με το Χ;".<br><br>
<h3>«<b>Γράψτε στο θέμα μια πρόταση που να βγάζει νόημα</b>»</h3>
Αυτό έχει να κάνει πολύ με το «Έκανα μια προσπάθεια». Αυτός είναι ο τρόπος διαφήμισης της ερώτησής σας. Το "REACT ΠΡΟΒΛΗΜΑ" δεν είναι καλό θέμα. "Πού μπορώ να βρω εγχειρίδια για React;" είναι καλύτερο. Οι λάτρεις του φόρουμ αγαπούν μια πρόκληση, οπότε βεβαιωθείτε ότι το θέμα σας είναι «δύσκολο».<br><br>
<h3>«<b>Πείτε τις λεπτομέρειες</b>»</h3>
Θέλουμε τις λεπτομέρειες, όλες τις λεπτομέρειες. Αν γράψετε ένα ξερό «Το πρόγραμμά μου εμφανίζει ένα σφάλμα» θα οδηγήσει στην ερώτηση «Ποιο σφάλμα;».<br>
Αν πείτε «Το πρόγραμμά μου δίνει ένα NullPointerException στη γραμμή 13. Παρακάτω είναι ο κώδικας ...» είναι πολύ καλύτερο.<br><br>
Πρέπει να είστε σε θέση να περιγράψετε:<br><br>
Λεπτομερής περιγραφή του προβλήματος<br>
<ul>
<li>τι κάνατε</li>
<li>τι περιμένατε να συμβεί</li>
<li>γιατί περιμένατε να συμβεί</li>
<li>γιατί το χρειάζεστε για να συμβεί</li>
<li>αυτό που συνέβη στην πραγματικότητα και γιατί αυτό που συνέβη είναι πρόβλημα για εσάς</li>
</ul>
<br>
<b>Μήνυμα λάθους</b><br>
<ul>
<li>Ηλεκτρονικός υπολογιστής (χαρακτηρηστικά του, σε περίπτωση ερώτησης σχετικά με το λειτουργικό σύστυμα)</li>
<li>Αριθμοί έκδοσης των σχετικών βιβλιοθηκών, JDK, εργαλεία, <b>λειτουργικό σύστημα</b> κ.λπ.</li>
<li>Αποσπάσματα κώδικα</li>
<li>Ίχνος στοίβας</li>
<li>Τι άλλο δοκιμάσατε / τι λειτούργησε / τι δεν λειτούργησε</li>
</ul>
99 φορές στα 100, έχω λύσει προσωπικό πρόβλημα όταν έχω απαντήσει στις ερωτήσεις.<br><br>
<h3>«<b>Χρησιμοποιήστε ολόκληρες λέξεις με προτάσεις</b>»</h3>
Αν προσπαθείτε να γράψετε κάτι τηλεγραφικά όπως γράφετε ένα SMS, κάντε το με τους φίλους σας αν θέλετε. Το ίδιο με τη χρήση του "h4x0r353". Χρησιμοποιώντας κανονικές προτάσεις και λέξεις, βοηθάτε και τις μηχανές αναζήτησης αλλά και γενικά τις αναζητήσεις άλλων χρηστών με το ίδιο πρόβλημα.<br><br>
<h3>«<b>Αναφέρετε τις πηγές σας</b>»</h3>
Αν έχετε ψάξει για λύση, εκτελέσατε κάποιες εντολές και δεν είχατε αποτέλεσμα, μέσα στο σώμα της ανάρτησης, αναφέρετε ότι εκτέλεσα αυτές τις εντολές που βρήκα στην ανάρτηση σε αυτή τη διεύθυνση. Με αυτό τον τρόπο θα καταλάβουν πολλά, όσοι ασχοληθούν με το πρόβλημά σας.<br><br>
<h3>«<b>Δημοσιεύστε κείμενο και όχι στιγμιότυπα οθόνης</b>»</h3>
Κατά την ανάρτηση κώδικα, μηνυμάτων μεταγλωττιστή ή πραγματικά οτιδήποτε στα φόρουμ, δημοσιεύστε κείμενο χρησιμοποιώντας ετικέτες κώδικα αντί για συνημμένα στιγμιότυπα οθόνης. Εναλλακτικά χρησιμοποιήστε μια υπηρεσία όπως το <a href="https://pastebin.com/" target="_blank">pastebin dot com</a>.<br>
Όταν αφορά κώδικα, τα στιγμυότυπα οθόνης απαιτούν από τους χρήστες να τα κατεβάσουν στους υπολογιστές του (κάτι που είναι απρόθυμοι να το κάνουν), να ψάχνουν στις μηχανές αναζήτησης με λέξεις κλειδιά του κώδικά σας και στην χειρότερη να πρέπει να δακτυλογραφήσουν τον κώδικά σας σε αρχείο για να δοκιμάσουν. Αυτό τους ωθεί στο να μην σας βοηθήσουν καθόλου.<br>
Τα στιγμιότυπα οθόνης είναι συμπληρωματικά. Σε περιπτώσεις κώδικα, προσθέστε και το στιγμιότυπο οθόνης γιατί μπορεί να έχετε κάνει κάποιο ορθογραφικό λάθος που να φαίνεται και στην φωτογραφία. Τώρα εάν αφορά κάποιο πρόβλημα του λειτουργικού συστήματος και κάποιας συσκευής, και εδώ θα βοηθήσει πολύ η φωτογραφία αλλά εάν σας ζητήσουν να δώσετε το αποτέλεσμα μιας εντολής, αυτό σίγουρα πρέπει να είναι σε κείμενο.<br><br>
<h3>«<b>Πείτε ευχαριστώ</b>»</h3>
Εάν λάβετε μια καλή απάντηση που σας βοήθησε, πείτε Ευχαριστώ. Με αυτόν τον τρόπο, αυτός που απαντά θα γνωρίζει ότι την επόμενη φορά που θα δημοσιεύσετε μια ερώτηση, θα εκτιμήσετε την προσπάθεια του, που τέθηκε στην απάντηση.<br><br>
<h3>«<b>Χρησιμοποιήστε το δικό σας όνομα</b>»</h3>
Προτιμώ να απαντήσω σε μια ερώτηση του "Stathis Iosifidis" παρά στο "savra". Μου αρέσει να μιλάω σε ανθρώπους.<br><br>
<h3>«<b>Μην ουρλιάζετε</b>»</h3>
Η χρήση κεφαλαίων γραμμάτων, ειδικά σε θέματα, συνήθως θεωρείται κάπως αγενής σύμφωνα με το <a href="https://el.wikipedia.org/wiki/Netiquette" target="_blank">netiquete</a>.<br><br>
<h3>«<b>Δεν χρειάζεται να πείτε συγγνώμη</b>»</h3>
Οι παραπάνω συμβουλές δεν είναι κανόνες, οπότε δεν χρειάζεται να ζητήσετε συγγνώμη εάν ξεχάσετε να τους ακολουθήσετε. Εάν κάποιος σας έδειξε κάποια από αυτές τις συμβουλές, το έκαναν επειδή θέλουν πραγματικά να σας δουν να λαμβάνετε την καλύτερη δυνατή βοήθεια με την ερώτησή σας. Η αλήθεια είναι ότι και εγώ δεν ακολουθώ όλους τους παραπάνω κανόνες όλη την ώρα.<br><br>
<b>EDIT: (Παραθέτω από το Facebook όπως σωστά επισήμανε η Ελένη Σακελλάρη)</b><br>
<h3>«<b>Διαβάζουμε ξανά το κείμενο της ερώτησης</b>»</h3>
Είτε ρωτάμε, είτε απαντάμε, πριν πατήσουμε το send, ξαναδιαβάζουμε αυτό που γράψαμε. Γιατί;
<ul>
<li>α) μπορεί να το γράψαμε βιαστικά ή συγκεχυμένα όπως είναι στο μυαλό μας και να μην βγάζει νόημα αν το διαβάσει άλλος.</li>
<li>β) απευθυνόμαστε σε αγνώστους (με τους φίλους μας έχουμε άλλον κώδικα επικοινωνίας, μας ξέρουν. Πίσω από αυτό που τους γράφουμε βλέπουν ακόμα και τη γκριμάτσα μας ή ακούνε τη φωνή μας). Με τους αγνώστους είναι αλλιώς, οπότε καλό είναι να ξαναδιαβάσουμε τι γλώσσα, τόνο κλπ χρησιμοποιούμε.</li>
</ul>
Έτσι, ακόμα και για μια μικρή παραγραφούλα ακολουθούμε τον κανόνα της αρθρογραφίας: <b>40% σκέφτομαι - 20% γράφω - 40% ξαναδιαβάζω και διορθώνω.</b><br><br>
Αφού λοιπόν διαβάσατε τα παραπάνω, καλό θα είναι να υποδείξετε σε κάποιον που δεν διατυπώνει καλά μια ερώτηση, να διαβάσει τις παραπάνω προτροπές ώστε να κάνει σωστά τις ερωτήσεις για να λαμβάνει σύντομα απαντήσεις.<br><br>
Σχετικά με αυτό το θέμα μπορείτε να βρείτε στη πολλά στη διεύθυνση <a href="http://www.catb.org/~esr/faqs/smart-questions.html" target="_blank">http://www.catb.org/~esr/faqs/smart-questions.html</a>.<br><br>
Επίσης δείτε και το παραπλήσιο άρθρο:<br>
<a href="https://cerebrux.net/2017/09/10/61-%CE%BB%CE%AC%CE%B8%CE%BF%CF%82-%CE%B4%CE%B9%CE%B1%CF%84%CF%85%CF%80%CF%8E%CF%83%CE%B5%CE%B9%CF%82-%CF%83%CE%B5-%CE%B5%CF%81%CF%89%CF%84%CE%AE%CF%83%CE%B5%CE%B9%CF%82-%CE%B1%CE%BD%CE%B1%CE%B6%CE%AE/" target="_blank">6+1 λάθος διατυπώσεις σε ερωτήσεις αναζήτησης βοήθειας</a><br><br>
Το παρόν άρθρο είναι αντεγραμμένο με λίγες τροποποιήσεις από το <a href="https://forums.adobe.com/thread/2332684" target="_blank">https://forums.adobe.com/thread/2332684</a> + δευτερεύουσες τροποποιήσεις.Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0tag:blogger.com,1999:blog-7223234205443938063.post-46564269861032940222020-09-02T11:36:00.000+03:002020-09-02T11:36:09.297+03:00Γιατί να χρησιμοποιήσω openSUSE;<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8rs1i7KRDs7lwfsIrc69ImGMfxKsQUSuMnpL2l4448dZBL__5taxW3UqUnXErqTjSrFlTPyLaYEx3xmFh5LGmeIRoS0U_DvTXv41MPGAGgIpmWykpQl1gE9zGoddbQS4WaAOaN17EhxA7/s1600/i-love-opensuse.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8rs1i7KRDs7lwfsIrc69ImGMfxKsQUSuMnpL2l4448dZBL__5taxW3UqUnXErqTjSrFlTPyLaYEx3xmFh5LGmeIRoS0U_DvTXv41MPGAGgIpmWykpQl1gE9zGoddbQS4WaAOaN17EhxA7/s640/i-love-opensuse.png" width="640" height="229" data-original-width="1400" data-original-height="501" alt="I love openSUSE" /></a></div><br />
<br />
Ένα πράγμα που με ρωτάνε πολλοί, ξανά και ξανά, είναι «Γιατί openSUSE;». Η έννοια της ερώτησης δεν είναι πάντα η ίδια. Μπορεί να σημαίνει: «Γιατί να το χρησιμοποιήσω;», «Γιατί πρέπει να συνεισφέρω στο έργο openSUSE;», «Γιατί το χρησιμοποιείς εσύ;», «Γιατί να μην χρησιμοποιήσω [βάλτε το όνομα κάποιας άλλης διανομής];», αλλά η ερώτηση καταλήγει πάντα στο «Τι ιδιαίτερο έχει η openSUSE;».<br />
<br />
Είναι μια καλή ερώτηση, και η δυσκολία στην απάντηση δεν οφείλεται στην έλλειψη καλών λόγων, αλλά στην αφθονία τους, σε συνδυασμό με μια γενική τάση στην κοινότητά openSUSE, που είναι πολύ μετριόφρων.<br />
<br />
Εδώ είναι μια προσπάθειά να δούμε μερικούς λόγους για τους οποίους εσείς, ο αναγνώστης, πρέπει να συνεισφέρετε στο έργο openSUSE και να χρησιμοποιείτε το λογισμικό που αναπτύσσει η κοινότητα.<br />
<br />
<br />
<h2>1ος Λόγος: Δεν είμαστε (απλώς) μια διανομή Linux</h2><br />
Κανονικά, το πρώτο πράγμα που σκέφτονται οι άνθρωποι όταν ακούνε το openSUSE είναι η «Τυπική έκδοση της διανομής», όπως το openSUSE Leap (<a href="https://software.opensuse.org/distributions/leap" target="1">Λήψη ΕΔΩ</a>)<br />
<br />
Ωστόσο, το έργο openSUSE παράγει πολλά περισσότερα.<br />
<br />
Για αρχή, δεν έχουμε μία, αλλά τεχνικά <b>ΔΥΟ</b> άλλες διανομές Linux που διατηρούμε.<br />
<br />
<a href="https://www.opensuse.org/#Tumbleweed" target="1">openSUSE Tumbleweed</a> - η εκπληκτική κυλιόμενη έκδοση που καταφέρνει να προσφέρει στους χρήστες του σταθερό, εύχρηστο, λειτουργικό σύστημα Linux, με συνεχή ενημέρωση λογισμικού.<br />
Ιδανικό όχι μόνο για προγραμματιστές, αλλά και για όσους θέλουν το πιο πρόσφατο και καλύτερο λογισμικό, κορυφαίοι ειδικοί του Linux, όπως ο <a href="https://en.wikipedia.org/wiki/Greg_Kroah-Hartman" target="1">Greg Kroah-Hartman</a>, έχουν δηλώσει ότι οι κυλιόμενες κυκλοφορίες όπως το Tumbleweed αντιπροσωπεύουν το «μέλλον» των διανομών Linux. Το openSUSE είναι το καλύτερο (Διαβάστε το άρθρο <a href="https://eiosifidis.blogspot.com/2018/06/why-you-should-use-opensuse-tumbleweed.html" target="1">Γιατί να χρησιμοποιείσετε openSUSE Tumbleweed</a>) μεταξύ των κυλιόμενων διανομων.<br />
Στην περίπτωσή μου, προτιμώ το Tumbleweed τόσο για την σταθερότητά του αλλά και διότι ως ενεργός μεταφραστής του <a href="https://eiosifidis.blogspot.com/search/label/Gnome" target="1">GNOME</a>, θέλω να έχω πάντα την τελευταία έκδοση του GNOME ώστε να διορθώνω σφάλματα μετάφρασης, έτσι ώστε να επωφελούνται άλλες διανομές που χρησιμοποιούν GNOME.<br />
Αν θέλετε να το δείτε μόνοι σας, <a href="https://en.opensuse.org/openSUSE:Tumbleweed_installation" target="1">κατεβάστε από το ΕΔΩ</a><br />
<br />
<a href="https://en.opensuse.org/Portal:Leap" target="1">openSUSE Leap</a> - Η openSUSE Leap είναι ένας "καινούργιος" τρόπος κατασκευής της openSUSE και είναι ένας νέος τύπος υβριδικής διανομής Linux. Η Leap χρησιμοποιεί την πηγή από την <a href="https://www.suse.com/promo/sle/" target="1">SUSE Linux Enterprise (SLE)</a>, η οποία δίνει στην Leap ένα επίπεδο σταθερότητας απαράμιλλο από άλλες διανομές Linux και το συνδυάζει με τις εξελίξεις της κοινότητας για να δώσει στους χρήστες, προγραμματιστές και sysadmins την καλύτερη διαθέσιμη σταθερή εμπειρία Linux.<br />
Η πρώτη κυκλοφορία της Leap ήταν στις 4 Νοεμβρίου 2015, με την κυκλοφορία της openSUSE Leap 42.1. Η Leap θα έχει μικρές κυκλοφορίες και οι χρήστες αναμένεται να κάνουν αναβάθμιση στην τελευταία δευτερεύουσα κυκλοφορία εντός 6 μηνών από τη διαθεσιμότητά της, οδηγώντας σε κύκλο ζωής 18 μηνών συντήρησης και με ενημερώσεις ασφαλείας ανά δευτερεύουσα κυκλοφορία. Η σειρά Leap 15 αναμένεται να επιτύχει περίπου 36 μήνες ενημερώσεων συντήρησης και ασφάλειας.<br />
<br />
<a href="https://en.opensuse.org/Portal:Kubic" target="1">openSUSE Kubic</a>: Η openSUSE Kubic είναι ένα έργο που συντηρεί πολλές τεχνολογίες που σχετίζονται με container ως μέρος του openSUSE.<br />
<br />
Αυτό επικεντρώνεται κυρίως στο openSUSE Kubic, μια παραλλαγή <a href="https://en.opensuse.org/Portal:Tumbleweed" target="1">openSUSE Tumbleweed</a> που επικεντρώνεται στη φιλοξενία υπηρεσιών container. Η openSUSE Kubic αποτελείται επί του παρόντος από δύο βασικά στοιχεία:<br />
<br />
* <a href="https://en.opensuse.org/Portal:MicroOS" target="1">openSUSE MicroOS</a> - ένα λειτουργικό σύστημα που βασίζεται στο openSUSE που παρέχει ενημερώσεις Transactional (Atomic) σε ένα σύστημα αρχείων btrfs root μόνο για ανάγνωση, σχεδιασμένο να φιλοξενεί containers με αυτοματοποιημένη διαχείριση και ενημέρωση κώδικα.<br />
* <a href="https://en.opensuse.org/Kubic:kubeadm" target="1">kubeadm</a> - ένα εργαλείο εκκίνησης συστοιχίας Kubernetes ενσωματωμένο ως μέρος της <i>openSUSE Kubic</i> για εκτέλεση πάνω από την <i>openSUSE MicroOS</i>.<br />
Ο πηγαίος κώδικας για μεγάλο μέρος των εργαλείων που σχετίζονται με το Kubic βρίσκεται στο <a href="https://github.com/kubic-project" target="1">GitHub Project</a>.<br />
<br />
Λοιπόν, η openSUSE δεν είναι μόνο <b>ΜΙΑ</b> διανομή Linux, αλλά περιμένετε, υπάρχουν περισσότερα!<br />
<br />
Το έργο openSUSE φιλοξενεί έναν ολόκληρο σωρό άλλων έργων λογισμικού, πάντα Open Source, τα οποία χρησιμοποιούμε στην κοινότητα αλλά και ενθαρρύνουμε τους άλλους να χρησιμοποιούν και να συνεισφέρουν. Αυτά περιλαμβάνουν:<br />
<br />
<a href="http://openbuildservice.org/" target="1">Open Build Service</a> - το εργαλείο κατασκευής, το οποίο δημιουργεί όλα τα πακέτα μας, καθώς και αυτά για SUSE Linux Enterprise, Arch, Debian, Fedora, Scientific Linux, RHEL, CentOS, Ubuntu και πολλά άλλα.<br />
<br />
<a href="https://os-autoinst.github.io/openQA/" target="1">openQA</a> - αυτοματοποιημένη δοκιμή για <u><b>οποιοδήποτε</b></u> λειτουργικό σύστημα, το οποίο μπορεί να διαβάσει την οθόνη και να ελέγξει τον κεντρικό υπολογιστή δοκιμής με τον ίδιο τρόπο που κάνει ένας χρήστης.<br />
<br />
<a href="http://yast.github.io/" target="1">YaST</a> - Το καλύτερο και ολοκληρωμένο εργαλείο ρύθμισης και εγκατάστασης συστήματος Linux.<br />
<br />
<a href="https://en.opensuse.org/Portal:KIWI" target="1">KIWI</a> - Δημιουργεί εικόνες Linux σε πραγματικό υλικό, αλλά και για συστήματα container όπως το Docker ή το <a href="https://www.suse.com/c/podman-on-opensuse/" target="1">podman</a>.<br />
<br />
<a href="http://snapper.io/" target="1">Snapper</a> - Δημιουργία, διαχείρηση και επαναφορά στιγμιοτύπων συστήματος. Επαναφέρετε το σύστημά σας χωρίς ταλαιπωρία σε προηγούμενο στιγιότυπο όταν μετά από ενημέρωση καταλήξετε με κατεστραμμένο σύστημα (πιθανότατα να είναι δικό σας λάθος, το Snapper μπορεί να σας δείξει τι άλλαξε μεταξύ των στιγμιότυπων).<br />
<br />
<a href="https://github.com/openSUSE/osem" target="1">OSEM</a> - Διαχείριση Εκδηλώσεων Ανοιχτού Κώδικα. Πολλά έργα ανοιχτού κώδικα έχουν τα δικά τους συνέδρια και άλλες εκδηλώσεις. Έχουμε το δικό μας εργαλείο για τη διαχείριση προτάσεων για παρουσιάσεις, την οργάνωση προγραμμάτων, τη λήψη εγγραφών κ.λπ.<br />
<br />
Και πολλά άλλα, πολλά από τα οποία μπορείτε να βρείτε στη σελίδα του <a href="https://github.com/opensuse" target="1">έργου μας στο GitHub</a>.<br />
<br />
<br />
<h2>2ος Λόγος: Κατασκευάζουμε και χρησιμοποιούμε τα καλύτερα εργαλεία</h2><br />
Ίσως έχετε παρατηρήσει ένα κοινό θέμα ανάμεσα σε πολλά από τα έργα λογισμικού που αναφέρονται παραπάνω. Είμαστε ένα έργο που ενδιαφέρεται πολύ για τη χρήση του σωστού εργαλείου για τη κατάλληλη δουλειά.<br />
Σε πολλές περιπτώσεις αυτό σημαίνει τη χρήση πολλών από τα ίδια εργαλεία που χρησιμοποιούν άλλα έργα, όπως είναι <a href="https://en.opensuse.org/openSUSE:IRC_list" target="1">IRC</a>, Git & GitHub, Φόρουμ, Λίστες αλληλογραφίας κ.λπ. Δεν είμαστε το είδος του έργου που θέλει να εφεύρει ξανά τον τροχό μόνο και μόνο επειδή δεν το κάναμε πρώτοι, αλλά όταν τα εργαλεία που βρίσκονται εκεί έξω δεν κάνουν τη δουλειά αρκετά καλά, σηκώνουμε τα μανίκια μας και προσπαθούμε να δημιουργήσουμε το <b>καλύτερο</b> εργαλείο για αυτήν την κάθε εργασία.<br />
<br />
Εργαζόμαστε επίσης πολύ σκληρά για να παράγουμε εργαλεία που μπορούν και πρέπει να υιοθετηθούν από ένα πολύ ευρύτερο κοινό και όχι μόνο από την «κοινότητα του openSUSE».<br />
Αυτό πιθανότατα τονίζεται καλύτερα μιλώντας για δύο από τα καλύτερα εργαλεία μας, το Open Build Service και το openQA.<br />
<br />
<a href="http://openbuildservice.org/" target="1">Open Build Service</a> - Όπως ήδη αναφέρθηκε, το εργαλείο κατασκευής δημιουργεί όλα τα πακέτα διανομής openSUSE, τα ISO κλπ.<br />
Δημιουργεί και φιλοξενεί αποθετήρια για αυτά τα πακέτα.<br />
Κατασκευάστηκε πάντα ως εργαλείο για χρήση από όλες τις διανομές, το οποίο είναι σε θέση να δημιουργήσει πακέτα για SUSE Linux Enterprise, Arch, Debian, Fedora, Scientific Linux, RHEL, CentOS, Ubuntu και άλλα.<br />
Υπάρχει μια γραφική διεπαφή (μπορείτε να δείτε και να το χρησιμοποιήσετε <a href="https://build.opensuse.org/" target="1">ΕΔΩ</a>) αλλά και το εργαλείο γραμμής εντολών osc (τεκμηρίωση <a href="https://en.opensuse.org/openSUSE:OSC" target="1">ΕΔΩ</a>). Ακόμα και κάποιος που δεν έχει εμπειρία κατασκευής πακέτων μπορεί εύκολα να δει τα περιεχόμενα οποιουδήποτε πακέτου στο OBS, να καταλάβει πώς δημιουργούνται, να το διακλαδώσει (να το κάνει fork, για να χρησιμοποιήσουμε τον ισοδύναμο όρο του github) στο δικό του Έργο-Αποθετήριο και να το επεξεργαστεί όπως νομίζει.<br />
Επιτρέπεται η χρήση του OBS του openSUSE από <b>οποιονδήποτε</b> χωρίς χρέωση, έτσι ώστε να μπορεί να κατασκευάσει και να φιλοξενήσει τα πακέτα του στην υποδομή του openSUSE, δωρεάν (αν και τουλάχιστον, θα θέλαμε ως αντάλλαγμα να βεβαιωθούν ότι τα πακέτα για openSUSE λειτουργούν αβασάνιστα ;-) )<br />
Το OBS χρησιμοποιείται ήδη από άλλες εταιρείες και έργα όπως το VideoLAN, η Dell, το HipChat και το ownCloud, αλλά αν είστε στον κλάδο δημιουργίας λογισμικού για Linux, πρέπει πραγματικά να αναρωτηθείτε «Γιατί δεν χρησιμοποιώ το OBS για την κατασκευή τα πακέτα μου;»<br />
<br />
<a href="https://os-autoinst.github.io/openQA/" target="1">openQA</a> - Ένα άλλο κόσμημα. Το openQA είναι ένα εργαλείο δοκιμών που σας επιτρέπει να δημιουργήσετε δοκιμές για οποιοδήποτε λειτουργικό σύστημα ή εφαρμογή. Σε αντίθεση με σχεδόν κάθε άλλο εργαλείο δοκιμών, το openQA δοκιμάζει το λογισμικό με τον ίδιο τρόπο που το κάνουν <b>οι χρήστες</b>. Κοιτάζει στην οθόνη και διασφαλίζει ότι ο χρήστης θα δει τι περιμένετε να δει. Στη συνέχεια, θα πατήσει τα ίδια κουμπιά πληκτρολογίου και ποντικιού με τα οποία ένας χρήστης θα εργαζόταν μέσω της εφαρμογής. Μπορείτε να το δείτε στη δράση <a href="https://openqa.opensuse.org/tests/" target="1">ΕΔΩ</a>.<br />
Το openSUSE χρησιμοποιεί εκτεταμένα το openQA για την κατασκευή του Tumbleweed. Ο προτεινόμενος κώδικας για το Tumbleweed δοκιμάζεται από το openQA πριν γίνει αποδεκτός και δοκιμαστεί ξανά META την αποδοχή του (για να βεβαιωθούμε ότι ενσωματώνεται καλά με όλα τα άλλα πακέτα που έχουν συγχωνευθεί πρόσφατα).<br />
Με αυτόν τον τρόπο μπορούμε να προσφέρουμε το Tumbleweed ως μια «σταθερή» κυλιόμενη έκδοση, γιατί χάρη στο openQA <b>γνωρίζουμε</b> ότι η διανομή λειτουργεί <b>πριν</b> σταλούν οι ενημερώσεις στους υπολογιστές των χρηστών. Εάν κάτι δεν δουλέψει, το openQA σταματά την κυκλοφορία και οι χρήστες δεν παρατηρούν προβλήματα, εκτός από ίσως μια μικρή καθυστέρηση στη λήψη νέων ενημερώσεων. Με την (εξαιρετικά σπάνια) πιθανότητα κάτι να ξεφύγει από το openQA, γίνεται μια νέα δοκιμαστική υπόθεση, οπότε δεν γινεται ποτέ το ίδιο λάθος δύο φορές.<br />
Το openQA χρησιμοποιείται επίσης από την SUSE για τη δοκιμή της SUSE Linux Enterprise και το έργο Fedora ξεκίνησε πρόσφατα να το χρησιμοποιεί. Θα θέλαμε να δούμε περισσότερες διανομές να το χρησιμοποιούν.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm70Ui1l6nnkqYQXGpcwVmt_b-HQy4Cu-2P5hTDE5L1tKhHKV0Y-t_wZkU3ECv6_hrRKGyQKW5VtsOVmkhAPL4zyfwQYgLGfSys3hFUsR_W81OQBy7t5rHs-y0J8upHZ9sWYNatiamLZ17/s1600/opensuse_ferrari.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm70Ui1l6nnkqYQXGpcwVmt_b-HQy4Cu-2P5hTDE5L1tKhHKV0Y-t_wZkU3ECv6_hrRKGyQKW5VtsOVmkhAPL4zyfwQYgLGfSys3hFUsR_W81OQBy7t5rHs-y0J8upHZ9sWYNatiamLZ17/s320/opensuse_ferrari.jpg" width="226" height="320" data-original-width="1000" data-original-height="1415" alt="openSUSE Engineering" /></a></div><br />
<h2>3ος Λόγος: Θέματα μηχανικής</h2><br />
Γιατί επικεντρωνόμαστε στα εργαλεία; Πέρα από τα εργαλεία που χρησιμοποιούμε, ξοδεύουμε πολύ χρόνο, εγκεφαλικά κύτταρα και συζητήσεις, σηκώνουμε μανίκια και προσπαθούμε να βρούμε τον καλύτερο τρόπο για να δημιουργήσουμε το λογισμικό.<br />
<br />
Αυτό οδήγησε στο openSUSE να πρωτοστατεί με πολλές καινοτομίες σε τομείς όπως η διαχείριση πακέτων. Το zypper και το libsolv σημαίνουν ότι, σε αντίθεση με άλλες διανομές Linux που βασίζονται σε RPM, το «χάλι με τις εξαρτήσεις» είναι κάτι παρελθόν για εμάς και καταφέρνουμε να σταθούμε δίπλα-δίπλα με Debian και Ubuntu, να δούμε τους διαχειριστές πακέτων τους και να πούμε «ωραία, μπορούμε να το κάνουμε αυτό και πολλά περισσότερα».<br />
<br />
Επίσης, δεν μας ενδιαφέρει να είμαστε ένα άλλο έργο ανοιχτού κώδικα που να παίρνει τα πάντα από δεκάδες έργα και είτε να σφραγίζουμε το λογότυπό μας και να το ονομάζουμε δικά μας, είτε να αλλάζουμε πολλά πράγματα και να μην επιστρέφουμε έργο στην κοινότητα.<br />
Δουλεύουμε σε συνεργασία με όλα τα γνωστά έργα ανοικτού κώδικα, είτε ο πυρήνας, το GNOME, το KDE, οτιδήποτε άλλο, για να δώσουμε τα ανατροφοδότηση, να στείλουμε τις διορθώσεις στον κώδικα, για το όφελος όλων.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigOqUL9hmb7qgUiQz9_1KV0eM8D093I7oh5voSSqIpnJ7fbFq4BJLiXS2-g2pKJpB1XfWngi5oaapFXHBEcgclKOpzu7QP-0aFF1wcMzJVng8uQTNZNHjtVCXicybqV4wEEWvjuk4TEzBK/s1600/FB_IMG_1562676926320.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigOqUL9hmb7qgUiQz9_1KV0eM8D093I7oh5voSSqIpnJ7fbFq4BJLiXS2-g2pKJpB1XfWngi5oaapFXHBEcgclKOpzu7QP-0aFF1wcMzJVng8uQTNZNHjtVCXicybqV4wEEWvjuk4TEzBK/s640/FB_IMG_1562676926320.jpg" width="640" height="427" data-original-width="1080" data-original-height="720" alt="Συνέδριο Νυρεμβέργη 2019" /></a></div><br />
<br />
<h2>4ος Λόγος: Κοινότητα, κοινότητα, κοινότητα</h2><br />
Η κοινότητα openSUSE είναι υπέροχη. Θα συνοψίσω μερικά πράγματα εδώ.<br />
<br />
Πρώτον, λίγα λόγια για την SUSE. Η SUSE χρηματοδοτεί την κοινότητα openSUSE, και αποτελεί ένα σημαντικό μέρος της κοινότητας, απασχολώντας έναν μεγάλο αριθμό προγραμματιστών που συνεισφέρουν στο έργο openSUSE, συνεισφέρει δε στο έργο openSUSE τόσο με κώδικα, όσο και με προσωπικό αλλά και με χρήματα.<br />
Από πολλές απόψεις είναι ο «προστάτης» του έργου openSUSE, έχοντας την εταιρία στην πλάτη μας όταν το χρειαζόμαστε, χωρίς όμως να σημαίνει ότι η εταιρία SUSE ελέγχει το έργο. Το έργο openSUSE είναι ανεξάρτητο, ελεύθερο να καθορίσει τη δική του κατεύθυνση.<br />
Η SUSE βλέπει τον εαυτό της ως ίσο μέλος στην κοινότητα, συμμετέχοντας με τον ίδιο τρόπο όπως όλοι οι άλλοι, ενθαρρύνοντας τους μηχανικούς της να συμμετέχουν σε συζητήσεις και βοηθούν στον καθορισμό της κατεύθυνσης του έργου openSUSE μέσω υποβολής κώδικα, όπως όλοι οι άλλοι.<br />
Ο ανοικτός κώδικας λειτουργεί καλύτερα όταν υπάρχει ελευθερία καινοτομίας, αυτή είναι η θέση στην οποία βρίσκεται το έργο openSUSE, η SUSE είναι μια εταιρεία που κατανοεί την βάση της - καθώς η τρέχουσα εκστρατεία της λέει ότι «<a href="https://www.youtube.com/watch?v=oEtM6V8aMeo" target="1">Ο ανοικτός κώδικας είναι στα γονίδιά μας</a>».<br />
<br />
Αν λοιπόν η SUSE δεν είναι το «αφεντικό», τότε ποιος είναι; Προφανώς η κοινότητα. Αυτή αποφασίζει, και μάλιστα θέλουμε περισσότερα άτομα να μας βοηθήσουν να κάνουμε πολλά πράγματα! Είμαστε το είδος του έργου που είναι πολύ ανοιχτό σε όλους που θέλουν να συνεισφέρουν και προσπαθούμε σκληρά να διατηρήσουμε ένα πολύ χαμηλό «εμπόδιο» για την είσοδο.<br />
Η κοινότητα openSUSE δεν είναι το είδος της κοινότητας που θα ορίσει να αποκτήσετε πολλές γνώσεις προτού σας επιτραπεί να κάνετε οτιδήποτε για το έργο openSUSE.<br />
Εάν δείτε κάτι που χρειάζεται διόρθωση, μιλήστε με τα άτομα που εργάζονται στην επίλυση σφαλμάτων, διορθώστε το μαζί τους και υποβάλετε τις συνεισφορές σας. Αυτό ισχύει για τον κώδικα, τον ιστότοπο, το wiki, το μάρκετινγκ, οτιδήποτε και οπουδήποτε. Δεν είμαστε ένα έργο για το οποίο χρειάζεστε άδεια για να μπορέσετε να συμμετάσχετε.<br />
Προσπαθούμε να διατηρήσουμε τις διαδικασίες μας λιτές, αλλά αυτές που έχουμε είναι στο <a href="https://en.opensuse.org/" target="1">Wiki</a> μας, και όσον αφορά τη συνάντηση με υπάρχοντα μέλη που συνεισφέρουν, μπορείτε εύκολα να τους βρείτε στα κανάλια <a href="https://en.opensuse.org/openSUSE:IRC_list" target="1">IRC</a> και στις <a href="http://lists.opensuse.org/" target="1">λίστες αλληλογραφίας</a> μας.<br />
<br />
Εάν είστε χρήστης και χρειάζεστε βοήθεια στην πραγματικότητα χρησιμοποιώντας το openSUSE αλλά δεν είστε έτοιμοι να εμπλακείτε με τη συνεισφορά στο έργο ακόμα, τότε έχουμε μια μεγάλη κοινότητα που βοηθούν τους ανθρώπους μέσω του <a href="https://en.opensuse.org/openSUSE:IRC_list" target="1">IRC</a>, του <a href="https://forums.opensuse.org/forum.php" target="1">Φόρουμ</a> και του <a href="https://t.me/openSUSE_group" target="1">Telegram (Αγγλικό)</a> / <a href="https://t.me/opensusegr" target="1">Telegram (Ελληνικό)</a>.<br />
<br />
Όταν όλοι ασχολούνται με όλα, δεν οδηγεί στο απόλυτο χάος; Οχι ακριβώς. Το μοντέλο ανοιχτού κώδικα λειτουργεί, με τις λίγες διαδικασίες που έχουμε στη διάθεσή μας να παρέχουν αρκετή δομή και ασφάλεια, ώστε οποιαδήποτε προβλήματα εμφανιστούν να αντιμετωπιστούν ως μέρος μιας διαδικασίας φυσικής ροής και μάθησης.<br />
Όμως, δεν είναι ουτοπία, από καιρό σε καιρό φυσικά εμφανίζονται διάφορα και γι' αυτό το έργο openSUSE έχει το «<a href="https://en.opensuse.org/openSUSE:Board" target="1">Διοικητικό Συμβούλιο</a>».<br />
Η δουλειά του είναι να βοηθάει στη διατήρηση του έργου και της κοινότητας στο σωστό δρόμο, να μιλούν τα μέλη της κοινότητας μεταξύ τους, να επιλύει συγκρούσεις, και να είναι οι «τελευταίοι υπεύθυνοι λήψης αποφάσεων» εάν δεν υπάρχει κάποιος άλλος ικανός/κατάλληλος για να λάβει μια δύσκολη απόφαση που επηρεάζει το openSUSE.<br />
<br />
Η δομή του «Διοικητικού Συμβουλίου» είναι επίσης μια ωραία αντανάκλαση του τρόπου δομής της υπόλοιπης κοινότητάς μας - από τις 5 εκλεγμένες έδρες του Διοικητικού Συμβουλίου, όχι περισσότερες από 2 θέσεις μπορούν να καταληφθούν από άτομα που απασχολούνται / ελέγχονται από τον ίδιο οργανισμό. Αυτό σημαίνει ότι καμία εταιρεία (ούτε καν SUSE) δεν μπορεί να έχει την πλειοψηφία των θέσεων στο Διοικητικό Συμβούλιο, διασφαλίζοντας ότι είναι υγιής και ισορροπημένη όπως και η υπόλοιπη κοινότητά μας.<br />
<br />
Και τέλος, η κοινότητα openSUSE είναι απλώς μια μεγάλη ομάδα ανθρώπων. Ένα μεγάλο μέρος αυτής συναντιέται στα τακτικά συνέδρια του openSUSE. Στα συνέδρια γίνεται η συνδυασμός συναντήσεων των μελών της κοινότητας, συνομιλιών αλλά και διασκέδασης με πολλές πολλές μπύρες.<br />
<br />
Και θυμηθείτε το σύνθημά μας... <br />
<br />
Have a Lot of Fun!Efstathios Iosifidishttp://www.blogger.com/profile/05938335414856991521noreply@blogger.com0