Αυτό το commit περιλαμβάνεται σε:
infl00p 2022-03-23 20:14:33 +02:00
commit 8ec8e9bee2
451 αρχεία άλλαξαν με 46736 προσθήκες και 0 διαγραφές

52
content/articles/27/01_editorial.md Κανονικό αρχείο

@ -0,0 +1,52 @@
+++
title = 'Editorial'
date = '2000-10-01T00:00:00Z'
description = ''
author = 'Παπαδογιαννάκης Βαγγέλης(mailto:papas@hellug.gr)'
issue = ['Magaz 27']
issue_weight = 1
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Καλώς ορίσατε στο **Magaz**\... Επίσιμη ονομασία τεύχους, \`\`Η επιστροφή των απολωλότων\'\'*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Καλωσήρθατε στο **magaz** Οκτωβρίου του 2000. Λοιπόν, οι περισσότεροι θα αναρωτιέστε γιατί αυτός ο τίτλος! Επίσημα λοιπόν, αυτό πρέπει να είναι το πιο
καθυστερημένο magaz στην ιστορία, μια και με την πάρτη μου ισχύει αυτό που λένε τα στρατευμένα νιάτα\... **ΕΧΩ ΠΗΞΕΙ!**. Μια όμως και τα προσωπικά μου, προφανώς
και δικαιολογημένα, δε σας ενδιαφέρουν, ας προχωρήσουμε στην ύλη του μήνα αυτού.
Αρχίζοντας αυτόν το μήνα, ας διορθώσουμε τα \`\`κακώς κείμενα\'\' του προηγούμενου τεύχους. Στο προηγούμενο τεύχος λοιπόν, φιλοξενήθηκε ένα άρθρο από τον [Θέμη
Παπασσιλέκα](mailto:panzer@finecon.gr) με τίτλο [Ο υπέροχος κόσμος του Linux 2.4](../26/04_kernel24.html). Για αυτό το άρθρο από δική μου παράλειψη, δεν
αναφέρθηκε ο πραγματικός αρθρογράφος. Αυτό συνέβη διότι.. δεν τον ήξερα και απλά \`\`έβαλα\'\' το άρθρο.
Όπως καταλαβαίνετε, η ευθύνη βαραίνει εμένα και μόνο αποκλειστικά.
Μετά από την (πολύ σωστή) επισήμανση του (ουσιαστικά) μεταφραστή ( [Θέμη Παπασσιλέκα](mailto:panzer@finecon.gr)) λοιπόν, να πούμε σε αυτό το τεύχος (κάλιο αργά
παρά ποτέ) ότι το άρ8ρο γράφτηκε από τον [Joe Pranevich](mailto:jpranevich@linuxtoday.com) για το γνωστό [LinuxToday](http://linuxtoday.com) και την τελευταία
του έκδοση, μπορείτε να βρείτε [εδώ](http://linuxtoday.com/news_story.php3?ltsn=2000-07-17-014-04-NW-LF-KN). Την ειλικρινή μου συγνώμη για την παράλειψη.
Καλωσορίζουμε ξανά ένα άρθρο από τον [Παπακώστα Ευρυπίδη](mailto:evris@hellug.gr), συνέχεια του άρθρου του [περί καλής συμπεριφοράς των
linuxάδων](../24/05_odigos.html) που δημοσιεύτηκε στο [τεύχος 24](../24/index.html). Ένας αρθρογράφος, που μετά από πολύ-πολύ καιρό απραξίας (όσον αφορά στο
magaz) επιστρέφει πολλά υποσχόμενος και\... γεμάτος άρθρα. Τώρα θα μου πείτε\...\`\`Κοίτα ποιός μιλάει για απραξία\...\'\'. Και το κακό είναι ότι θα έχετε
δίκιο! Τέλος πάντων, το άρθρο του μπορείτε να το βρείτε [εδώ](03_odigos.html)
Και για να κάνουμε το συγκεκριμένο αυτό τεύχος πιο \`\`οικογενειακό\'\', ε, φιλοξενούμε και ένα άρθρο από την [Βούλα Σανιδά](mailto:voulariba@hellug.gr). Οι
παλιοί θα το υμνήσουν, οι νέοι θα το μισήσουν\... **μόνο στην αρχή**. Πρόκειται για ένα άρθρο για τον πιο **διαδεδομένο**, πιο **στυλάτο** editor, που
ταυτόχρονα έχει και το πιο φανατικό κοινό! Δεν πρόκειται για άλλον από τον vi. [Δείτε το οπωσδήποτε!](02_vitips.html)
Όλοι, όταν πρωτοασχοληθήκαμε με το **linux**, είχαμε την απορία τι στο καλό είναι αυτό το **/proc** directory που υπάρχει στο δίσκο μας. Άσε που εκεί μέσα
υπάρχει και το **μ-ε-γ-α-λ-ύ-τ-ε-ρ-ο** αρχείο του filesystem (What could that file be? Can I delete it?)! Αν και (μερικοί) λύσαμε τελικά αυτήν την απορία,
υπάρχουν πολλές λεπτομέρειες που σίγουρα δεν ξέρουμε! Ε λοιπόν, αυτό το άρθρο που περιγράφει το proc filesystem από τον [Πρατικάκη
Πολύβιο](mailto:polyvios@softlab.ntua.gr) με μια \`\`ξεχωριστή\'\' νότα περιεχομένου, θα μας κάνει να\... θέλουμε και άλλα!!! (εγώ τουλάχιστον, μόλις το
διάβασα, έτρεξα και διάβασα το **linux kernel module programmers guide**. Το άρθρο μπορείτε να το βρείτε [εδώ](04_proc.html)
Συνέχεια του [άρθρου του προηγούμενου μήνα](../26/05_lfs.html) από τον [Μιχάλη Καμπριάνη](mailto:kabrianis@hellug.gr) που μας έγραψε για το πώς να στήσουμε ένα
linux μηχανάκι **from the scrach!**. Εγώ πάντως που το δοκίμασα, τώρα έχω γεμίσει ένα δίσκο με\... images!!! Φυσικά και αστειεύομαι, και μπράβο στο
[Μιχάλη](mailto:kabrianis@hellug.gr) για το πολύ καλό πραγματικά άρθρο. Μπορεί οι νέοι μας να μην το εκτιμήσουν και πολύ (καθόλου θα ήταν ακριβέστερο) αλλά όλοι
οι υπόλοιποι το απολαύσαμε!
Αυτά τα ολίγα προς το παρόν, και σας υπόσχομαι ότι δε θα ξαναργήσω να βγάλω τεύχος! Θα φροντίσω, αν πνίγομαι τόσο πολύ, να λέω στον παλιό αρχισυντάκτη, τον
[Μιχάλη Καμπριάνη](mailto:kabrianis@hellug.gr), τον οποίο και ευχαριστώ που πάντα με βοηθάει, να το ανεβάζει!
Για το **magaz** [Παπαδογιαννάκης Βαγγέλης](mailto:papas@hellug.gr).

272
content/articles/27/02_vitips.md Κανονικό αρχείο

@ -0,0 +1,272 @@
+++
title = 'vi Tips'
date = '2000-10-01T00:00:00Z'
description = ''
author = 'Βούλα Σανίδα(mailto:voulariba@eeea.gr)'
issue = ['Magaz 27']
issue_weight = 2
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Tips στον vi (Μα δεν χρειάζονται, είναι τόσο απλός\...)*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Ποιός τόλμησε να πει πως το vi είναι δύσχρηστο; Μερικά απλά tips για να κάνετε την ζωή σας ευκολότερη\...
**1. Practical leaflet**
-------------------------------------------------
**2. crash course theory leaflet**
-----------------------------------------------------------
- [2.1 θεωρία 1](#ss2.1)
- [2.2 θεωρία 2](#ss2.2)
- [2.3 θεωρία 3](#ss2.3)
### [1. Practical leaflet]{#s1}
**tip 1**: Για να βλέπετε στο κάτω μέρος της οθόνης την τρέχουσα γραμμή και στήλη:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:set ruler
----------------------------------------------------------------------------------------------------------------------------------------------------------------
(αν θέλετε τέτοιες ρυθμισεις να ισχύουν πάντα δημιουργείστε στο \$HOME σας ένα αρχείο .vimrc και γράψτε εκεί την παραπάνω εντολή).
**tip 2**: Διαλέξτε κομμάτια κειμένου με τα πλήκτρα (σαν να χρηιμοποιείτε ποντίκι):\
Πατήστε v για VISUAL MODE. Με τα πλήκτρα διαλέξτε τις γραμμές του κείμενο που θέλετε. Λειτουργεί το page-up, page-down για να διαλέξετε ολόκληρες οθόνη.
Μπορείτε να χρησιμοποιείσετε regular expressions (π.χ. /test) για να επιλέξω το κείμενο μέχρι την πρώτη εμφάνιση της λέξης test.\
Εναλλακτικά,. πατήστε Ctrl-v για VISUAL BLOCK και διαλέξτε το κείμενο που θέλετε κατά στήλες (κατακόρυφα).
- Αντιγράφετε το κείμενο.
- Με p κάνετε επικόλληση (paste).
- Με d διαγράφετε το μαρκαρισμένο κείμενο.
**tip 3**: Πως αφαιρούμε ΟΛΑ τα html tags από μια html σελίδα και μένει μόνο plain text κείμενο:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:g/<[^>]*>/s///g
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 4**: Πώς σβήνουμε το mail header από ένα email, ώστε να μείνει μόνο το body του:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:1,/^$/d
----------------------------------------------------------------------------------------------------------------------------------------------------------------
(ουσιαστικά σβήνουμε από την 1η γραμμή μέχρι να βρούμε την πρώτη κενή γραμμή)
**tip 5**: Πως αντικαθιστούμε τη λέξη καλό με τη λέξη πολύ καλό σε όλο το κείμενο και σε όλες τις εμφανίσεις σε κάθε γραμμή, με χρήση του τελεστή &:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:%s/καλό/πολύ &/g
(εναλλακτικά :%s/καλό/πολύ καλό/g, αν και δεν είναι και τόσο δυναμικό)
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 6**: Πως κλείνουμε σε /\* \... \*/ την τρέχουσα γραμμή:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:s/.*/\/* & *\//
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 7**: Πως βάζουμε τις 5 πρώτες γραμμές σε σχόλια τύπου shell (\#):
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:1,5s/.*/# &/
(ή ισοδύναμα :1,5s/^/# /)
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 8**: Πως διαγράφουμε όλες τις κενές γραμμές του κειμένου:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:g/^$/d
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 9**: Πως σβήνουμε τα κενά πριν από κάθε γραμμή
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:g/^ *\(.*\)/s//\1/g
(ή ισοδύναμα :g/^ */s///g)
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 10**: Πως διπλασιάζουμε τον αριθμό των κενών μεταξύ των λέξεων
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:%s/ */&&/g
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 11**: Ανταλλαγή μέρας-μήνα. Η ημερομηνία από τη μορφή 21-03-1999 θα γίνει 03-21-1999
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:%s/\([0-9]\{1,2\}\)-\([0-9]\{1,2\}\)-\([0-9]\{4\}\)/\2-\1-\3/g
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 12**: Πώς αντιστρέφουμε 2 στήλες που διαχωρίζονται μεταξύ τους με άνω κάτω τελεία :
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:%s/\(.*\):\(.*\)/\2:\1/g
(ναι, με awk είναι πιο εύκολο, όντως!)
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 13**: Πως διαγράφουμε τους 4 πρώτους χαρακτήρες σε κάθε γραμμή του κειμένου
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:%s/^....//g
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 14**: Σε περίπτωση που γράφουμε ένα βιβλίο με references της μορφής \"Δείτε το κεφάλαιο ΧΧ.ΥΥ\", όπου Χ και Y αριθμοί, και θέλουμε να βάλουμε τέτοιες
εμφανίσεις σε παρενθέσεις:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:%s/Δείτε το Κεφάλαιο [1-9][0-9]*\.[1-9][0-9]*/(&)/g
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**tip 16**: Βαρεθήκατε να χρησιμοποιείτε το \\ σαν unescape χαρακτήρα για τον χαρακτήρα /; Αλλάξτε το διαχωριστή (delimiter) / της εντολής s (π.χ. με τον
χαρακτήρα θαυμαστικό !).\
**Παράδειγμα:** Θέλω να αντικαταστήσω το /usr/doc/HOWTO /usr1/doc2/HOWTO3:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
:%s/\/usr\/doc\/HOWTO/\/usr1\/doc2\/HOWTO3 (ο παλιός δύσκολος τρόπος)
:%s!/usr/doc/HOWTO!/usr1/doc2/HOWTO3! (ο νέος και εύκολος)
----------------------------------------------------------------------------------------------------------------------------------------------------------------
tip16: Α\....εννοείτε πως για να ψάξουμε για μια έκφραση (π.χ. lalakis) η εντολή είναι:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
/lalakis
----------------------------------------------------------------------------------------------------------------------------------------------------------------
### [2. crash course theory leaflet]{#s2}
### [2.1 θεωρία 1]{#ss2.1}
Aντικαταστάσεις:
H εντολή αντικατάστασης έχει την μορφή: \[address\]s/oldregexp/newregexpr\[/flags\] όπου :
----------------------------------------------------------------------------------------------------------------------------------------------------------------
[..] = προεραιτικό μέρος της εντολής, μπορείτε να το παραλείψετε
oldregexp = τι να αντικαταστήσουμε
newregexp = με τι
address = σε ποιο διάστημα (range) κειμένου θα γίνει η αντικατάσταση
flags = αν θα ρωτάει για κάθε αντικατάσταση, αν θα το κάνει σε όλο
το κείμενο, αν θα τα δείχνει κλπ...
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Ετσι, το address μπορεί να είναι:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
% = θα εφαρμοστεί σε όλο το κείμενο
1,5 = θα εφαρμοστεί από τη γραμμή 1 μέχρι την 5
1,$ = θα εφαρμοστεί από τη γραμμή 1 ως και την τελευταία (σε όλο
δηλαδή το κείμενο)
= (τίποτα), θα εφαρμοστεί στην τρέχουσα γραμμή
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Μερικά flags μπορούν να είναι
----------------------------------------------------------------------------------------------------------------------------------------------------------------
g = θα εκτελεστεί η εντολή σε όλα τις εμφανίσεις τρέχουσας γραμμής
(Μια καλή ερώτηση που θα περιμένα να έχετε: Αν έχω για address το % ,
δεν είναι ισοδύναμο; Μια καλή απάντηση είναι ΟΧΙ. Αν παραλείψετε το g
στα flags τότε το vi θα ψάξει για την oldregexp σε όλο το κείμενο αλλά
αντικατάσταση θα γίνει ΜΟΝΟ για την πρώτη εμφάνιση της oldregexp ΣΕ ΚΑΘΕ
ΓΡΑΜΜΗ. Αρα αν μια γραμμή περιέχει δύο φορές την oldregexp χρειάζεστε
το flag g.)
gc = θα ρωτά για κάθε αντικατάσταση πριν την κάνει
p = εμφάνιση στο κάτω μέρος του vi όλων των υποψήφιων αλλαγών
(tips: 3, 5, 6, 7, 9, 10, 11, 12, 13, 14)
----------------------------------------------------------------------------------------------------------------------------------------------------------------
### [2.2 θεωρία 2]{#ss2.2}
Μερικοί χαρακτήρες (με χαρακτήρα):
----------------------------------------------------------------------------------------------------------------------------------------------------------------
& = Αν εμφανιστεί οπουδήποτε στα δεξιά μιας εντολής
αντικατάστασης s, αντικαθίσταται από οτιδήποτε συνέπεσε στην αριστερή
πλευρά (tips: 5, 6, 7, 10, 14)
. = Οποιοσδήποτε χαρακτήρας (tips: 6, 7, 9, 12, 13)
* = Οσοι (και όποιοι) χαρακτήρες (tips: 6, 7, 9, 12, 14)
% = Ολό το αρχείο (tips: 5, 10, 11, 12, 13, 14)
^ = Αρχή γραμμής (tips: 3, 4, 7, 8, 9, 13)
$ = Τέλος γραμμής (tips: 4, 8)
[...] = Οποιοσδήποτε χαρακτήρας από αυτούς που είναι εντός αγκύλης.
Με Α-Χ εντός αγκύλης ορίζουμε όλους τους χαρακτήρες από τον Α εως τον X
κατά ASCII σειρά (tips: 3, 11, 14)
[^...] = Οποιοσδήποτε χαρακτήρας εκτός από αυτούς που είναι εντός αγκύλης
\ = Escape character. Εξουδετερώνει τις "ειδικές" ιδιότητες του
χαρακτήρα που ακολουθεί. Το vi αντιμετωπίζει δηλαδή τον επόμενο χαρακτήρα,
ως κοινό. (tips: 6, 14)
\{n,m\} = Δηλώνει πως οι εμφανίσεις του χαρακτήρα που προηγείται αυτής της
έκφρασης θα κυμαίνονται από n το λιγότερο μέχρι m το περισσότερο (tips: 11)
----------------------------------------------------------------------------------------------------------------------------------------------------------------
### [2.3 θεωρία 3]{#ss2.3}
Regular Expressions
----------------------------------------------------------------------------------------------------------------------------------------------------------------
\(regexp\) = Ομαδοποιεί με βάση το regular expression εντός παρένθεσης.
Οτι λοιπόν είναι μέσα στην παρένθεση θεωρείται ως ένα ενιαίο block. Μπορούμε
πλέον να αναφερθούμε σε αυτό με βάση τον αριθμό του block αυτού. Αν είναι το
πρώτο block που ομαδοποιήσαμε με αυτόν τον τρόπο, αναφερόμαστε σε αυτό με \1
(tips: 9, 11, 12)
// = κενό regular expression ισοδυναμεί με το αμέσως προηγούμενο
regular expression (tips: 9)
/./ = μη κενή γραμμή, τουλάχιστον 1 χαρακτήρας
/^$/ = κενή γραμμή, μόνο χαρακτήρας αλλαγής γραμμής
/κάτι/ = το κάτι οπουδήποτε στη γραμμή
/^κάτι/ = το κάτι στην αρχή της γραμμής
/κάτι$/ = το κάτι στο τέλος της γραμμής
/κάτι.$/ = το κάτι και ένας ακόμη οποιοσδήποτε χαρακτήρας στο τέλος της
γραμμής
/κάτι\.$/ = το κάτι. στο τέλος της γραμμής
/κάτι[0-9]/ = το κάτι ακολουθούμενο από ψηφίο
/κάτι[^0-9]/ = το κάτι ακολουθούμενο από μη ψηφίο
----------------------------------------------------------------------------------------------------------------------------------------------------------------

329
content/articles/27/03_odigos.md Κανονικό αρχείο

@ -0,0 +1,329 @@
+++
title = 'Οδηγός καλής συμπεριφοράς προς Linuxάδες'
date = '2000-04-01T00:00:00Z'
description = ''
author = 'Ευριπίδης Παπακώστας `evris@hellug.gr`'
issue = ['Magaz 27']
issue_weight = 3
+++
**1. Ένα Παραμύθι με Νόημα**
-----------------------------------------------------
**2. Η Πραγματικότητα**
------------------------------------------------
- [2.1 Linux Κοινότητα](#ss2.1)
- [2.2 Υπάρχει τελικά πρόβλημα;](#ss2.2)
**3. Τυφλοσούρτι**
-------------------------------------------
**4. Προτεινόμενο Διάβασμα**
-----------------------------------------------------
- [4.1 LGU Netiquette](#ss4.1)
- [4.2 MAGAZ](#ss4.2)
- [4.3 HOWTOs](#ss4.3)
- [4.4 HELLUG](#ss4.4)
- [4.5 ΕΕΕΑ](#ss4.5)
### [1. Ένα Παραμύθι με Νόημα]{#s1}
*\"Μια φορά κι έναν καιρό, σε ένα απόμακρο χωριό, ζούσαν δέκα ψαράδες. Την εποχή εκείνη, κανείς άλλος δεν ήξερε να ψαρεύει και ούτε ενδιαφερόταν για το ψάρεμα.
Αν μάλιστα οι ψαράδες έκαναν το αστείο να διδάξουν ψάρεμα στους ανθρώπους της πόλης, ή να τους δώσουν δωρεάν ψάρια εκείνοι τους κορόιδευαν και τους χλεύαζαν.*
*Οι κάτοικοι της πόλης, βλέπετε, τρώγανε μόνο έτοιμες προτηγανισμένες τηγανητές πατάτες που τους προμήθευε ο αφέντης μεγαλέμπορας.*
*Οι ψαράδες όμως επέμειναν. Σιγά σιγά, καλλιέργησαν και τη γη, κάναν μια μικρή φάρμα εκτροφής ζώων, άρμεγαν το γάλα και επειδή ήταν όλοι φίλοι μεταξύ τους και
ήταν λίγοι σε πληθυσμό, ο καθένας έκανε ότι του άρεσε και το πρόσφερε δωρεάν και χαμογελαστά στους υπόλοιπους. Όποιος δεν μπορούσε να φέρει σε πέρας κάποια
δουλειά, μπορούσε να ρωτήσει τους παλιότερους κατοίκους του χωριού και εκείνοι με χαρά τον βοηθούσαν.* *Σιγά σιγά, οι ταλαιπωρημένοι και στα πρόθυρα της ασιτίας
κάτοικοι της πόλης ενδιαφέρθηκαν να μάθουν και αυτοί τον τρόπο ζωής του μικρού αυτού χωριού και άρχισαν να μαζεύονται στα περίχωρα του χωριού.* *Ο πληθυσμός του
χωριού αυξήθηκε. Οι νέοι κάτοικοι απαιτούσαν σαν κακομαθημένα παιδιά τα δωρεάν ψάρια τους (λες και κάποιος τους τα χρώσταγε) και κακοαναθρεμένοι όπως ήταν,
άρχισαν να ζητάνε τσιπούρες, φιλέτο, λαχανάκια Βρυξελλών, πράγματα που οι παλιοί χωρικοί δε μπορούσαν (χωρίς τη συνεργασία των νέων) να φτιάξουν.*
*Αλλά αυτό που πραγματικά έφερνε σε απόγνωση τους γέροντες του χωριού, ήταν η συμπεριφορά των νέων στο σχολείο. Δεν έκαναν τις εργασίες τους, δε διάβαζαν τα
βιβλία τους, δεν παίδευαν το μυαλό τους και δεν παρατηρούσαν τους γεροντότερους ώστε να προοδεύσουν. Αντί αυτού, συνεχώς έβριζαν τη δασκάλα τους όταν τους
εξηγούσε πως αν είχαν διαβάσει το βιβλίο δε θα χρειαζόταν να διακόπτουν συνέχεια το μάθημα και να ρωτούν τα ίδια και τα ίδια.*
*Η κατάσταση αυτή συνεχίστηκε για πολύ καιρό, μέχρι που πέθαναν οι γεροντότεροι, χάθηκε η γνώση που είχαν και τελείωσαν από τις αποθήκες οι έτοιμες τροφές που
με τόσο κόπο συσσώρευαν.*
*Πεινασμένοι και απογοητευμένοι οι κάτοικοι της πόλης, ξαναγύρισαν στον παλιό αφέντη τους. Με σκυμμένο το κεφάλι, παραδέχτηκαν πως ήταν λάθος τους να φύγουν από
κοντά του και του ζήτησαν να τους πάρει στη δούλεψή του.*
*Αυτός άλλο που δεν ήθελε. Τώρα πια όλοι δουλεύουν γι\' αυτόν, για μια μερίδα προτηγανισμένες σάπιες πατάτες και κανένας δεν έχει μείνει για να επαναστατήσει
εναντίον του.\"*
### [2. Η Πραγματικότητα]{#s2}
Ο παραπάνω μύθος, μέχρι ένα σημείο του ανταποκρίνεται πλήρως στο μοντέλο ανάπτυξης και λειτουργίας του Linux. Είναι γνωστό πως δεν ανήκει σε κανέναν, πως
προσφέρεται δωρεάν, πως ο καθένας εθελοντικά προσφέρει εκεί που θέλει και μπορεί και πως υπάρχουν ισχυροί δεσμοί ανάμεσα στα μέλη της κοινότητας αυτής.\
Είναι γνωστό, επίσης, πως για να μην τρως μόνο ότι σε ταΐζουν οι άλλοι, θα πρέπει μόνος σου να διαφοροποιήσεις το μενού σου πράγμα που απαιτεί προσωπική
ενασχόληση.
### [2.1 Linux Κοινότητα]{#ss2.1}
Η κοινότητα του Linux, λοιπόν, έχει τα σχολεία της. Διατηρεί κάποιους μηχανισμούς για την ισχυροποίηση των δεσμών των μελών της, για την επίλυση των προβλημάτων
τους και για την, τόσο ζωτικής σημασίας, επικοινωνία μεταξύ τους. Αυτοί οι μηχανισμοί δεν είναι τίποτε άλλο από τις γνωστές μας λίστες ανταλλαγής ηλεκτρονικών
μυνημάτων (newsgroups).
Στον ελληνικό χώρο, ο αφιλοκερδής σύλλογος Ελλήνων Χρηστών και Φίλων Λίνουξ Ελλάδος -HELLUG συμβάλλει σε αυτή την προσπάθεια. Με τον προσωπικό χρόνο, χρήμα και
όρεξη μελών του και μη, συντηρείται το www.hellug.gr (web server του συλλόγου), magaz.hellug.gr (ηλεκτρονικό περιοδικό για Linux), HOWTOs (μεταφρασμένα ή
πρωτότυπα εγχειρίδια τεκμηρίωσης), projects (στέγαση και ενημέρωση για ελληνικές προγραμματιστικές προσπάθειες), happenings, εκθέσεις, κλπ.
Σημαντικότερη, ίσως, όλων των παραπάνω δραστηριοτήτων είναι η συντήρηση των αντίστοιχων λιστών:
![](/27/img/linux-greek-users.jpg)
linux-greek-users\@hellug.gr (για θέματα που άπτονται του Linux γενικώς π.χ. προβλήματα, συζητήσεις, επικαιρότητα κλπ.),\
linux-howto\@hellug.gr (για μεταφραστικές προσπάθειες, εξελληνισμούς),\
hellug\@hellug.gr (για διοικητικά θέματα, συμμετοχή μόνο από μέλη του HELLUG)\
### [2.2 Υπάρχει τελικά πρόβλημα;]{#ss2.2}
Τώρα πια, όμως, που μέρος των στόχων του συλλόγου δείχνει να εκπληρώνεται (αύξηση των Ελλήνων χρηστών Linux καθώς και των εταιρειών που ασχολούνται ή το
χρησιμοποιούν), αρχίζει να διαφαίνεται ένας μακροπρόθεσμος κίνδυνος. Αυτός της κατάρρευσης της κοινότητας κάτω από το ίδιο της το βάρος. Και εξηγούμαι\...
#### Παλιοί και νέοι Χρήστες
Όπως και στο μύθο με τους χωρικούς, οι νέοι χρήστες που δίνουν στο Linux μια ευκαιρία, κατά πλειοψηφία δε διαθέτουν την αντίστοιχη παιδεία και μεράκι όπως οι
παλιοί.\
Για να μην παρεξηγηθούμε, δεν γίνεται εδώ θέμα τεχνικών γνώσεων, παλαιότητας, μαγκιάς ή σεβασμού προς τους γκουρού. Απλά, όσο περισσότεροι άνθρωποι
στριμώχνονται στον ίδιο χώρο τόσο πιο προσεκτικοί και ευγενικοί πρέπει να είναι στις επαφές τους με τους γύρω τους.\
Η αρχική μαγιά χρηστών Linux, καθότι λιγοστοί στον αριθμό, δεν αντιμετώπισε ποτέ αυτό το πρόβλημα. Άλλωστε, μην ξεχνάμε πως οι πρώτοι εκείνοι χρήστες ήταν κατά
βάση επαγγελματίες, χομπίστες - σπασίκλες των computers. Το κύριό τους μέλημα δεν ήταν να κάνουν τη δουλειά τους με το Linux, αλλά αντίθετα η δουλειά τους (έστω
και σε επίπεδο δονκιχοτισμού ή χόμπι) ήταν να κάνουν το Linux.
#### Οι ορμές του νέου
Οι σημερινοί χρήστες, συνήθως, είναι πιο προσγειωμένοι και απαιτητικοί. Θεωρούν πως το Linux οφείλει να τους ανταμείψει για το τόλμημα που έκαναν να το
δοκιμάσουν και να τους καλύψει κάθε τους ανάγκη, καλύτερα και πιο γρήγορα από κάθε εναλλακτική λύση με την οποία το συγκρίνουν.
Μερικές φορές, παρεξηγούν επίσης, το ρόλο των ανθρώπων που έκαναν τα πράγματα να είναι όπως σήμερα, χωρίς να το χρωστούν σε κανέναν και απαιτούν την επιτυχή
βοήθειά τους εδώ και τώρα. Σε περιπτώσεις άγνοιας, αδιαφορίας, λανθασμένης απάντησης (κανείς δεν είναι τέλειος μην ξεχνάμε) δείχνουν αρνητική στάση και αρχίζουν
να ακούγονται παράπονα όπως \"κρατάτε την γνώση για τον εαυτό σας\", \"δεν μας διδάσκετε όπως σας δίδαξαν\", \"είσαστε ένα κλειστό κύκλωμα και δεν μας δέχεστε
και εμάς\" \...
Πολλές φορές, μάλιστα, επειδή το Linux έχει ξεφύγει πια από εργαλείο του σπασίκλα, οι νέοι χρήστες αυτοί δε διαθέτουν βασικές γνώσεις Η/Υ αλλά και ούτε την
στοιχειώδη παιδεία συμπεριφοράς στα ηλεκτρονικά μέσα (email, λίστες).
Έτσι, ακόμα και αν η απορία τους έχει απαντηθεί και η πληροφορία είναι ήδη προσιτή, δεν μπαίνουν καν στον κόπο να την αναζητήσουν και επιμένουν να ρωτούν τα
ίδια και τα ίδια, δημιουργώντας τριβές και εκνευρισμούς.
#### Ο καημός του παλιού
Για να απαντήσει κάποιος \"γκουρού\" σε μια οποιαδήποτε ερώτηση, θα πρέπει να βρει τον χρόνο να την διαβάσει, να την επεξεργαστεί (ώστε να μην συμβουλέψει
λάθος), να το δοκιμάσει ο ίδιος, πιθανώς να ψάξει για σχετικά links και documentation ή και να αναζητήσει παλαιότερες απαντήσεις στην ίδια ερώτηση. Αν η
ανταμοιβή του είναι μόνο γκρίνια, ίσως να αποτραβηχτεί από την εθελοντική αυτή συνεισφορά του. Αν επίσης οι ερωτήσεις πληθαίνουν σε σημείο που δεν μπορεί κανείς
να τις παρακολουθήσει, χάνουν την πραγματική τους αξία, εξισώνονται όλες μεταξύ τους (δύσκολες, ενδιαφέρουσες, τετριμμένες, ήδη απαντημένες, λανθασμένες,
άσχετες με Linux) και γίνονται απλά ένας θόρυβος.
Στην περίπτωση δε που η απάντηση έχει δοθεί τρια μηνύματα πριν, είναι λογικό να απογοητεύεται οποιοσδήποτε από τον τρόπο που υποβιβάζουν τον χρόνο και την
προσφορά του οι ερωτούντες πριν διαβάσουν έστω και στο ελάχιστο το \"μάθημα της ημέρας\".
#### Μια μέση λύση
Φυσικά η σωστή συμπεριφορά απαιτεί βήματα και κατανόηση και από τις δύο πλευρές.\
Ο νέος φίλος δεν καλείται να τα ξέρει όλα, αλλά ούτε και να απαιτεί σαν κακομαθημένο παλιόπαιδο ιδιαίτερα μαθήματα, όποτε χρειαστεί, από όποιον επιλέξει, επί
παντός επιστητού.
Ο παλιός από την άλλη, υπό κανονικές συνθήκες δεν θα έπρεπε να σνομπάρει κάθε ερώτηση που του φαίνεται απλή και προφανής. Θα πρέπει να είναι επεξηγηματικός στις
απαντήσεις του. Σε περίπτωση που νοιώθει την ακατάσχετη τάση να χλευάσει, να ειρωνευτεί και γενικώς να μην συνεισφέρει θετικά σε κάποιο πρόβλημα, όποιος και αν
είναι ο λόγος αυτής του της διάθεσης, υπάρχει μια και μόνη συμβουλή: **Μην απαντήσει!**.
Η λίστα είναι εργαλείο και δεν πρέπει να εκφυλίζεται σε προσωπικές μικροτριβές που δεν προάγουν το Linux.
Όπως και στο μύθο, το μυστικό της επιτυχίας του χωριού, ήταν πρώτα πρώτα η προσωπική ενασχόληση με κάτι που άρεσε στους χωρικούς. Η εξήγηση της αποτυχίας είναι,
επίσης, απλή. Μηδενική προσωπική συνεισφορά και απαίτηση από τους άλλους να δουλέψουν για σένα. Στο Linux, ισχύει το ρητό \"Αν σε τρώει η πλάτη σου, προσπάθησε
να την ξύσεις μόνος σου. Αν τα καταφέρεις, πες και στους άλλους πώς το έκανες. Αν όχι, βρες φίλους σου να ξύνει ο ένας την πλάτη του άλλου.\"
Προς θεού, απέχουμε πολύ από την κατάληξη του μύθου και δεν νομίζω πως εύκολα θα καταλήξουμε εκεί, αλλά μπορούμε όλοι μαζί να κάνουμε την Linux-ική ζωή μας πιο
εύκολη και ευχάριστη, αν έχουμε στο μυαλό μας την παραπάνω ιστοριούλα, κάθε φορά που αποφασίζουμε να απευθυνθούμε στις Linux λίστες.
### [3. Τυφλοσούρτι]{#s3}
Παρακάτω επιχειρούμε να δώσουμε έναν τυφλοσούρτη καλής συμπεριφοράς για τέτοιες περιπτώσεις. Οι ενέργειες καταγράφονται ΑΚΡΙΒΩΣ με την σειρά που θα έπρεπε να
γίνουν, ώστε να μεγιστοποιήσουμε τον παράγοντα σήμα/θόρυβο μιας ηλεκτρονικής λίστας.
- Βήμα 1: Επιχειρώ να λύσω μόνος μου το πρόβλημά μου (διαβάζοντας τα manuals, πειραματιζόμενος, ψάχνοντας στο internet στα σχετικά sites).
- Βήμα 2: Συμβουλεύομαι φίλους και γνωστούς από τον κύκλο μου. Αν φοβάμαι πως γίνομαι ενοχλητικός σε αυτούς, να είμαι σίγουρος πως το ίδιο νοιώθουν και οι
άγνωστοι στις λίστες.
- Βήμα 3: Διαβάζω με προσοχή παρεμφερείς ερωταπαντήσεις στις λίστες, κοιτώντας μήπως η απάντηση έχει ήδη δοθεί και είναι μπροστά στα μάτια μου.
- Βήμα 4: Δημοσιοποιώ το πρόβλημά μου στην σωστή λίστα, με ευγενικό τρόπο, παρέχοντας όσες πληροφορίες νομίζω πως θα βοηθήσουν τους άλλους να κατανοήσουν
ακριβώς το πρόβλημα μου και συνεχίζω να τους δίνω τις επιπλέον πληροφορίες που (ίσως) να ζητήσουν.
- - Βήμα 5α: Αν το πρόβλημα λυθεί δεν είναι άσχημη ιδέα να ευχαριστήσω τα παιδιά που έδωσαν χρόνο και δαπάνησαν σκέψη για να με βοηθήσουν. Στέλνω την
ολοκληρωμένη ερώτηση και απάντηση στην λίστα γιατί πιθανώς ενδιαφέρει και άλλους.
- Βήμα 5b: Αν η ερώτηση δεν απαντηθεί για κάποιο καιρό, ή οι απαντήσεις δεν λύσουν το πρόβλημα, δεν επιμένω, δεν βρίζω, δεν προσβάλω. Όποιος και όπως
μπόρεσε να ασχοληθεί το έκανε ήδη. Δεν υπάρχει τρόπος να καταναγκάσουμε και άλλους να εμπλακούν. Τι να γίνει; Ήμασταν άτυχοι. Δεν είναι λύση επίσης, η
αποστολή του ίδιου mail - ερώτηση σε πολλαπλούς παραλήπτες προσωπικά. Να είσαστε σίγουροι πως όλοι διαβάζουν τις ίδιες λίστες και πως μόνο ενόχληση
μπορεί να δημιουργήσει κάτι τέτοιο.
- Βήμα Μόνιμο (και σημαντικότερο): ΠΑΝΤΑ, ΜΑ ΠΑΝΤΑ, έχω στο μυαλό μου πως η λίστα δεν είναι μόνο για να παίρνω απαντήσεις αλλά κατά βάση για να δίνω.
Παρακολουθώ λοιπόν και τα υπόλοιπα threads, προσπαθώντας με την σειρά μου να ανακουφίσω και εγώ άλλους ομοιοπαθείς.
### [4. Προτεινόμενο Διάβασμα]{#s4}
Το θέμα αυτό έχει συζητηθεί πολλές φορές και από τα ίδια τα παιδιά που συμμετέχουν στις λίστες αυτές και έχουν ήδη ξεκινήσει κάποιες προσπάθειες ενημέρωσης των
\"νεοφώτιστων\" φίλων. Το κάθε ένα από αυτά τα ενημερωτικά κείμενα, αναφέρεται στο θέμα με τον δικό του τρόπο, κάνοντας όμως λίγο πολύ παρεμφερείς συστάσεις.
Σας παραπέμπουμε λοιπόν στην σχετική \*βιβλιογραφία\* :
### [4.1 LGU Netiquette]{#ss4.1}
Το LGU Netiquette μπορείτε να διαβάσετε ηλεκτρονικά στο <http://lists.hellug.gr/lgu-netiquette.txt>. Αποστέλλεται πάντως αυτόματα και σε μηνιαία βάση στην
linux-greek-users, ώστε να το λαμβάνουν όλοι οι νέοι συμμετέχοντες σε αυτήν. Μεταξύ άλλων στο κείμενο αναφέρονται και τα εξής:
> ``
>
> * Βάλτε ένα σχετικό subject στο e-mail σας. Subjects του στυλ "βοήθεια,
> αρχάριος" ή "πρόβλημα με το linux" δε βοηθάνε ούτε τους αναγνώστες,
> ούτε όσους ψάχνουν για παρόμοιο πρόβλημα στα archives αλλά ούτε κι εμάς
> που γράφουμε το faq.
>
> * Αλλάζετε το subject όταν αλλάζετε το θέμα.
>
> * Μπορείτε όταν σας απαντήσουν και λυθεί το πρόβλημά σας, να γράψετε
> ένα e-mail με την προσθήκη του "FIXED:" ή κάτι παρόμοιο στο θέμα, και
> να περιγράψετε με λίγα λόγια πως τελικά λύσατε το πρόβλημά σας. Με
> αυτό τον τρόπο δημιουργείται μια περίληψη του όλου thread και βοηθάτε
> κάποιον με παρόμοιο πρόβλημα να βρει τη λύση πολύ γρηγορότερα.
>
> * Γενικά, αν είστε νέος στη λίστα και γενικά σε λίστες ταχυδρομείου,
> διαβάστε τα μηνύματα που στέλνονται για μια εβδομάδα περίπου για να
> καταλάβετε τον τρόπο συμπεριφοράς σε τέτοιους χώρους.
>
> * Quotes: Όταν κάνετε reply σε κάποιο e-mail κόψτε όσο ποιο πολλά
> μπορείτε από το αρχικό μύνημα. Kόψτε το footer που προσθέτει ο
> mail-server στο τέλος κάθε μηνύματος. Αφήστε μόνο τα σχετικά με την
> απάντησή σας για να καταλάβουν οι υπόλοιποι σε τί απαντάτε.
> Οτιδήποτε άλλο χαραμίζει bandwidth και χρόνο.
>
> * Signatures: Γενικά είναι καλό να περιορίσετε το signature στα e-mail
> σας σε 4-5 σειρές το πολύ.
>
> * Attachments: Γενικά είναι καλό να μην στέλνετε αρχεία στη λίστα. Αν
> χρειάζεται να στείλετε κάποιο αρχείο που έχει σχέση με το πρόβλημά σας
> προσπαθήστε να βρείτε το πιθανό σημείο του προβλήματος και να στείλετε
> μόνο αυτό. Το να στέλνετε όλο το syslog δεν είναι καλή τακτική!
### [4.2 MAGAZ]{#ss4.2}
Άρθρα με παρεμφερή προβληματισμό, μπορείτε να βρείτε και στο [ηλεκτρονικό περιοδικό magaz](http://magaz.hellug.gr).
Ένα άρθρο γενικού ενδιαφέροντος που εκφράζει κάποιες γενικότερες σκέψεις για την κοινότητα και τις δραστηριότητές της είναι το: [Σκέψεις για την ελληνική
κοινότητα του Linux](http://magaz.hellug.gr/21/03_community_thought.html).
Μια άλλη πληροφορία που μπορεί να σας φανεί χρήσιμη είναι πως τα τεύχη του magaz, έως και το 16ο, περιλαμβάνουν και αλληλογραφία με το κοινό. Σε αυτήν υπάρχουν
αρκετές ερωταπαντήσεις κυρίως αρχαρίων χρηστών.
### [4.3 HOWTOs]{#ss4.3}
Ένα από τα γνωστότερα και παλαιότερα Ελληνικά HOWTOs, το [Hellenic HOWTO](http://www.hellug.gr/gr/howto/howto/pub/html/Hellenic-HOWTO.html) αναφέρει και αυτό με
την σειρά του μερικούς χρήσιμους κανόνες καλής συμπεριφοράς. Αναφέρουμε αποσπασματικά\...
> ``
>
> Χρήσιμες συμβουλές
>
> - Το magaz έχει πλήθος από ερωτήσεις που έχουν γίνει στο παρελθόν,
> και λίγο πολύ οι ερωτήσεις επαναλαμβάνονται.
>
> - Αφιερώστε αρκετό χρόνο διαβάζοντας για να ενημερωθείτε γύρω από το
> πρόβλημα που ψάχνετε,
>
> - ΜΗΝ παραλείψετε να διαβάσετε τα HOWTO και FAQ (/usr/doc/faq) του
> LDP Project (http://metalab.unc.edu/LDP/).
>
> - Ψάξτε σχετικά θέματα από την σελίδα: http://lists.hellug.gr/archives.
>
> - Τα διεθνή newsgroups comp.os.linux* είναι επίσης χρήσιμα,
> πχ news://comp.os.linux.misc
>
> - Μην στέλνετε προσωπικό email σε κάποιον, γιατί σπάνια υπάρχει
> ο χρόνος για απάντηση. Αντίθετα προτιμήστε την λίστα ή το newsgroup,
> όπου η πιθανότητα να πάρετε απάντηση είναι πολύ μεγαλύτερη.
> ΠΧ, στο δικό μου mailbox, συχνά φτάνουν γράμματα αυτού του τύπου:
> me lene Xxxxx spoudazo yyyyyyy kai arxisa na asxoloumai me to linux.
> Tha ithela na mou peis pou mporo na bro to programma.
> oti theleis na mou to steileis sto zzz@zzzzzzzzzz.zz"
> Δεν απαντώ τέτοια email, ειδικά όταν το HOWTO και το FAQ έχουν τις απαντήσεις,
> αντίστοιχα πράττουν και άλλοι.
Εκτός των παραπάνω, το HOWTO αυτό έχει μια λίστα συχνά τιθέμενων ερωτήσεων (FAQ) για προβλήματα Ελλήνων Linuxάδων, που μπορεί να σας φανεί ιδιαίτερα χρήσιμη.
### [4.4 HELLUG]{#ss4.4}
Οδηγίες για το τι σκοπούς εξυπηρετεί η κάθε λίστα, ποιες είναι οι συχνότερα τιθέμενες ερωτήσεις και απαντήσεις τους (FAQ), συμβουλές για να βοηθήσετε και να
βοηθηθείτε καθώς και για το πώς να εγγραφείτε στις λίστες, θα βρείτε στην διεύθυνση <http://lists.hellug.gr> και στο [LGU FAQ (Linux Greek Users Frequently
Asked Questions)](http://http://homepages.pathfinder.gr/lgu_faq/)
![](/27/img/lists-hellug-gr.jpg)
Διαβάζουμε:
> ``
>
> Πρέπει να περιοριστεί λίγο το traffic στη λίστα. Τον τελευταίο καιρό με
> αύξουσα πορεία σε συνάρτηση με το χρόνο, τίθενται ερωτήσεις που έχουν απαντηθεί
> στο παρελθόν. Παράλληλα, καλό θα ήταν να ανέβει λίγο το επίπεδό της, εννοώντας
> ότι παλιές απορίες λύνονται, και εμφανίζονται νέες, πιο προχωρημένες.
>
> * Οι απαντήσεις που γράφονται είναι εγγυημένα σωστές;
> Φυσικά και όχι! Οι απαντήσεις δίνονται από τον καθένα σε εθελοντική βάση
> σύμφωνα με τις γνώσεις και εμπειρίες που είχε μέχρι στιγμής.
>
> * Πέρασαν 24 ώρες κι ακόμα απάντηση δεν πήρα. Γιατί;
> Πολύ απλά μπορεί να μην ξέρει κανείς την απάντηση! Οι απαντήσεις γράφονται
> από άλλους χρήστες, που μπορεί να μην έχουν αντιμετωπίσει το πρόβλημά σας.
>
> * Κάποιος μου απάντησε υβριστικά/με έθιξε/κλπ. Να του απαντήσω;
> Όχι μέσω της λίστας. Για τέτοιου είδους θέματα να στέλνετε προσωπικά e-mail.
> Δεν ενδιαφέρει κανέναν στη λίστα οι προσωπικές σας διαφορές με κάποιον.
>
> * Μην ξεχνάτε ότι το linux απαιτεί κόπο και από τον ίδιο το χρήστη.
>
> * Το να στείλετε μια ερώτηση που έχει απαντηθεί δεκάδες φορές στο παρελθόν
> δείχνει ότι θεωρείτε το χρόνο σας πιο πολύτιμο από τον χρόνο αυτών που θα σας
> απαντήσουν...
>
> * Προσέξτε τη γλώσσα που χρησιμοποιείτε. Η λίστα είναι διαθέσιμη σε πολύ κόσμο
> και δε μιλάτε στους φίλους σας μόνο. Η λίστα αυτή αποτελεί και έναν τρόπο να
> δείχνουμε την εικόνα του Linux στον υπόλοιπο κόσμο.
>
> * Spam: Σε καμία περίπτωση δε θα πρέπει να στείλετε spam mail στη λίστα. Άσχετα
> διαφημιστικά, μηνύματα-αλυσίδες, κλπ. Μη σχολιάζετε spam-mail που καταλήγει
> στη λίστα. Απλά επιβαρύνετε κι άλλο τη λίστα.
### [4.5 ΕΕΕΑ]{#ss4.5}
Τέλος, για μια ακόμα πιο επιθετική και ωμή στάση στο ζήτημα μπορείτε να διαβάσετε το [Linux Savoir Vivre HOWTO στην
EEEA](http://www.eeea.gr/repository/grlinux/Linux-Savoir-Vivre-HOWTO/Linux-Savoir-Vivre-HOWTO.html) που φημίζεται για την αμεσότητά της παρά για την πολιτικά
ορθή στάση της. Για μια πρόγευση:
> ``
>
> - Ελπίζεις να είναι όλοι καλύτεροι από σένα. Δέξου το, αν όντως αληθεύει.
> Για να σου λύσουν το πρόβλημα, οι άλλοι, η κοινότητα, βασίζεσαι σε μια κρυφή
> ελπίδα. Να ξέρουν αυτό για το οποίο χρειάζεσαι βοήθεια. Δηλαδή να είναι
> καλύτεροί σου. Να μάθεις να ακούς λοιπόν και να κάνεις τουμπέκα γιατί αυτή
> τη στιγμή ένας καλύτερός σου, εθελοντικά δαπανά χρόνο. Μην του τον χαραμίζεις.
>
> - Του άλλου ο χρόνος είναι πάντα πιο σημαντικός από σένα τον ασήμαντο.
> Απόδειξη: Εσύ του τον ζητάς και αυτός άμα γουστάρει τον δίνει.
> Σεβάσου τον λοιπόν.
>
> - Χέρι με χέρι ή δώσε πρώτος.
> Μην θεωρείς δεδομένο πως σου χρωστάει κανείς μόνο και μόνο γιατί αποφάσισες
> να βάλεις Linux. Ίσα - ίσα. Εσύ χρωστάς να συνεχίσεις και να βελτιώσεις αυτό
> που τόσο απλόχερα σου προσφέρθηκε.
>

159
content/articles/27/04_proc.md Κανονικό αρχείο

@ -0,0 +1,159 @@
+++
title = 'Περιγραφή του proc filesystem'
date = '2000-10-01T00:00:00Z'
description = ''
author = 'Πρατικάκης Πολύβιος(mailto:polyvios@softlab.ntua.gr)'
issue = ['Magaz 27']
issue_weight = 4
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------
**1. Εισαγωγή**
--------------------------------------
**2. Οι δομές του proc**
-----------------------------------------------
**3. Std disclaimer**
--------------------------------------------
### [1. Εισαγωγή]{#s1}
Στο linux υπάρχει ένα σύστημα αρχείων, το proc, το οποίο προσαρτάται συνήθως στο **/proc** στο δένδρο καταλόγων, και το οποίο είναι εικονικό. Αυτό που δηλαδή
φαίνεται ως αρχεία, στην πραγματικότητα δεν υπάρχει πουθενά στο δίσκο ή στην μνήμη του υπολογιστή. Στην πραγματικότητα, τα φαινομενικά αρχεία είναι απλές
\"εγγραφές\" στο δένδρο καταλόγων που αντιστοιχούν το διάβασμα, γράψιμο κ.λ.π των \"αρχείων\" αυτών σε κλήσεις διαφόρων συναρτήσεων. Έτσι, όταν διαβάζει κάποιος
το αρχείο π.χ. /proc/interrupts δεν διαβάζει τα περιεχόμενα ενός υπαρκτού αρχείου, αλλά απλώς την έξοδο μιας συνάρτησης που καλείται κάθε φορά που το αρχείο
αυτό διαβάζεται.
Το εικονικό σύστημα αρχείων proc, χρησιμοποιείται κυρίως για την αναφορά πληροφοριών (δυναμικά) του συστήματος. Μπορεί δε να αλλάξει δυναμικά, δηλαδή να
προστεθούν και να αφαιρεθούν αρχεία και κατάλογοι, ανάλογα με την τρέχουσα κατάσταση του συστήματος.\
Ο προγραμματισμός του συστήματος αρχείων proc στον πυρήνα, προσφέρει ένα υπάρχον σύνολο συναρτήσεων (ελληνιστί API), που καθιστούν την επέμβαση στο proc και την
προσθαφαίρεση αρχείων σχετικά εύκολη. Για να προσθέσουμε ένα αρχείο στο proc, χρησιμοποιούμε τη συνάρτηση proc\_register(), η οποία παίρνει ως όρισμα μια δομή
που περιγράφει το αρχείο (όνομα, μέγεθος, ιδιότητες, κ.λ.π.), καθώς και τις συνδεδεμένες με το αρχείο συναρτήσεις. Επιπλέον, δίνεται η - πολύ χρήσιμη -
δυνατότητα να περάσουμε ένα δείκτη, ο οποίος θα περαστεί ως παράμετρος στην συνάρτηση που κάθε φορά καλείται. Με αυτό τον τρόπο, μπορούμε να γράψουμε μια φορά
τις συναρτήσεις που καλύπτουν πολλά \"ίδια\" αρχεία του proc.
Για παράδειγμα, προφανώς δεν χρειάζεται να γραφούν ξεχωριστές συναρτήσεις για το αρχείο /proc/parport/0/irq και /proc/parport/1/irq, αλλά οι ίδιες συναρτήσεις
καλούνται με διαφορετικό όρισμα. Ο τρόπος για να γίνει αυτό, είναι ένας δείκτης void \*, ο οποίος \"συνδέεται\" με κάθε αρχείο, και \"κουβαλάει\" ό,τι αυτό
χρειάζεται.
### [2. Οι δομές του proc]{#s2}
Επειδή το καλό με το Open Source είναι το\... open source, παρατηρώντας το αρχείο linux/include/linux/proc\_fs.h, βλέπουμε τα εξής:
- 3-4 enum τα οποία καθορίζουν σταθερές. Οι σταθερές αυτές χρησιμοποιούνται από κάποια \"αρχεία\" του proc, το ποιά είναι φανερό από την ονομασία τους. Π.χ.,
οι σταθερές PROC\_\* (το πρώτο enum), είναι τα \"είδη\" των αρχείων ή καταλόγων που βλέπει κανείς ακριβώς \"κάτω\" από το σημείο που προσαρτάται το proc,
συνήθως δηλαδή στο /proc/\*. Οι σταθερές PROC\_NET\_\* βρίσκονται στο /proc/net κ.ο.κ.
- Στη συνέχεια, βλέπουμε το σημαντικό μέρος του αρχείου, την δομή `proc_dir_entry`. Κάθε αρχείο του proc είναι ουσιαστικά μια τέτοια δομή. Αναλυτικά, τα πεδία
της δομής είναι:
**`low_ino`**
: Στη μεταβλητή αυτή τίθεται το είδος του αρχείου, που συνήθως είναι μια από τις σταθερές που ορίζονται παραπάνω.
**`namelen`**
: Όπως ίσως φαίνεται, στη μεταβλητή αυτή αποθηκεύεται το μήκος του ονόματος του αρχείου.
**`name`**
: Πρόκειται για δείκτη σε null terminated αλφαριθμητικό, με το όνομα του αρχείου.
**`mode`**
: Στη μεταβλητή αυτή, καθορίζεται ο τύπος και τα permissions του αρχείου, δηλαδή το αν πρόκειται για αρχείο ή κατάλογο, αν και για ποιόν επιτρέπεται η
εγγραφή, η ανάγνωση κ.λ.π.
**`nlink`**
: Στη μεταβλητή αυτή αποθηκεύεται ο αριθμός των συνδεδεμένων αρχείων με αυτό το αρχείο, δηλαδή 1 αν πρόκειται για απλό αρχείο που συνδέεται μόνο με τον
κατάλογο που το περιέχει, ή 2 αν πρόκειται για κατάλογο. Στην περίπτωση αυτή, το nlink καταλόγου αυξάνει όταν προσθέτουμε αρχεία σε κατάλογο.
**`uid`**
: Το owner ID του αρχείου.
**`gid`**
: Το group ID του αρχείου.
**`size`**
: Το φαινομενικό μέγεθος του αρχείου, όπως αυτό φαίνεται π.χ. με την εντολή ls -l.
**`ops`**
: Μια δομή inode\_operations στην οποία περιέχονται δείκτες στις συναρτήσεις που χειρίζονται το inode (βλέπε κείμενα για συστήματα αρχείων) που
δημιουργείται. Στο άρθρο αυτό, δεν θα υπάρξει εκτενής περιγραφή για τη δομή αυτή και τις πιθανές χρήσεις της. Για όποιον ενδιαφέρεται, ας κοιτάξει το
linux kernel module programming guide, στο <http://www.linuxdoc.org> όπου γίνεται μια περιγραφή του proc, και χρησιμοποιείται η συγκεκριμένη δομή για
είσοδο.
**`get_info`**
: Συνάρτηση που καλείται κατά την ανάγνωση από το αρχείο και επιστρέφει το μήκος.
**`fill_inode`**
: Η συνάρτηση αυτή καλείται για να συμπληρώσει τη δομή inode που αντιστοιχεί στο αρχείο, και χρησιμοποιείται μόνο όταν αυτά τα δεδομένα δεν μπορούν να
καθοριστούν στατικά κατά την δημιουργία του αρχείου.
**`next,parent,subdir`**
: Πρόκειται για δείκτες σε δομές proc\_dir\_entry. Με το δείκτη next, δημιουργείται μια συνδεδεμένη λίστα από όλες τις εγγραφές (entries) στο proc, ενώ
χρησιμοποιώντας τους δείκτες parent και subdir, διατηρείται στη μνήμη ένα \"δένδρο\" καταλόγων για το proc.
**`data`**
: Όπως αναφέρθηκε και στην εισαγωγή, κατά τη δημιουργία του αρχείου θέτουμε το δείκτη αυτό ώστε να δείχνει στα δεδομένα που αντικατοπτρίζει το αρχείο, και
στη συνέχεια όταν καλλούνται οι διάφορες συναρτήσεις του αρχείου περνιέται ως παράμετρος. Έτσι, οι συναρτήσεις του αρχείου \"ξέρουν\" σε ποιά δεδομένα
αναφέρεται το αρχείο αυτό.
**`read_proc`**
: Συνάρτηση που καλείται όταν το αρχείο διαβάζεται. Η συνάρτηση αυτή χρησιμοποιείται για έξοδο από τον πυρήνα, και επιστρέφει (γράφει σε ένα buffer)
δεδομένα κάθε φορά που καλείται. Μια από τις παραμέτρους της συνάρτησης αυτής είναι ο δείκτης data που προαναφέρθηκε.
**`write_proc`**
: Συνάρτηση που καλείται κατά το γράψιμο στο αρχείο. Με τη συνάρτηση αυτή επιτυγχάνεται η είσοδος παραμέτρων προς τον πυρήνα μέσα από το σύστημα αρχείων
proc. Αυτό βέβαια γίνεται και μέσω των συναρτήσεων του inode του αρχείου, αλλά ο τρόπος αυτός είναι προτιμότερος, γιατί υπάρχει και εδώ ο μηχανισμός με
το δείκτη data, που επιτρέπει να υπάρχουν \"παρόμοια\" αρχεία.
**`readlink_proc`**
: Η συνάρτηση αυτή (από ότι έχω καταλάβει πάντα) καλείται όταν το αρχείο \"συνδέεται\" (link), όπως π.χ. με την εντολή ln.
**`count`**
: Μετρητής για την απαρίθμηση της χρήσης του αρχείου. Αυξάνει κάθε φορά που το αρχείο ανοίγεται, και μειώνεται όταν κλείνεται.
**`deleted`**
: Σημαία για το αν το αρχείο έχει σβηστεί.
- Μετά τον ορισμό της δομής proc\_dir\_entry, ακολουθούν ορισμοί τύπων για τους δείκτες συναρτήσεων που χρησιμοποιούνται, και δηλώνονται ορισμένες μεταβλητές
που αντιστοιχούν στα \"σίγουρα\" αρχεία του proc, όπως π.χ. η ρίζα του, οι υποκατάλογοι net, scsi, sys, pid, κ.λ.π.
- Οι επόμενες ενδιαφέρουσες δηλώσεις στο αρχείο, είναι αυτές των συναρτήσεων proc\_register και proc\_unregister. Χρησιμοποιώντας τις συναρτήσεις αυτές,
\"βάζουμε\" και \"βγάζουμε\" proc\_dir\_entries, δηλαδή αρχεία, στο και από το proc filesystem.
Η συνέχεια του αρχείου είναι λίγο εως πολύ συγκεκριμένες δηλώσεις που χρησιμοποιούνται για τα υπάρχοντα αρχεία του proc, ή απλώς δεν τα έχω ψάξει αρκετα ;-).
Η μέχρι τώρα επεξήγηση πρέπει να είναι αρκετή για να \"φτιάξετε\" ένα αρχείο στο proc που θα μπορεί από το να \"περιέχει\" ένα απλό \"hello world!\", μέχρι να
κάνει dump τα στατιστικά μιας tbf queueing discipline (Αυτό είναι σίγουρα ένα άλλο θέμα!). Για το πού θα πρέπει να προσθέσετε την proc\_register() γραμμή σας,
ένα πιθανό μέρος είναι η do\_basic\_setup() συνάρτηση στο αρχείο linux/init/main.c, ή η init\_module() συνάρτηση του αρχείου που θα κάνετε insmod (Αλλά κι αυτό
είναι ένα άλλο θέμα\...)
Αν αυτή η περιγραφή σας άνοιξε την όρεξη, μπορείτε να διαβάσετε περισσότερα στον linux kernel module programmers guide, αν και οι αναφορές δεν είναι με τίποτα
εκτενείς. Στο συγκεκριμένο guide υπάρχει γενικότερη αναφορά στα modules, σε IO - device drivers κ.λ.π. Μην ξεχνάτε όμως πως ο καλύτερος οδηγός είναι ο κώδικας.
Άλλωστε γιατί ειναι τόσο σημαντικό το Open Source;
### [3. Std disclaimer]{#s3}
Στο παρόν άρθρο, καταβλήθηκε προσπάθεια να περιγραφεί το σύστημα αρχείων proc, όπως το έχω καταλάβει προσωπικά από τα sources του πυρήνα, και διάφορα guides.
Δεν είμαι σίγουρος ότι οι πληροφορίες που δίνονται ανταποκρίνονται στην πραγματικότητα, και μη βασιστείτε σε αυτο :-).

118
content/articles/27/05_lfs.md Κανονικό αρχείο

@ -0,0 +1,118 @@
+++
title = 'To \...δικό μας Linux. Γιατί και πως μέρος 2ο'
date = '2000-10-01T00:00:00Z'
description = ''
author = 'Μιχάλης Καμπριάνης(mailto:kabrianis@hellug.gr)'
issue = ['Magaz 27']
issue_weight = 5
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Συνεχίζουμε την προσπάθεια για τη δημιουργία του δικού μας Linux, μπαίνοντας στα extra προγράμματα και τις ρυθμίσεις.*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Την περασμένη φορά (προηγούμενο τεύχος) είχαμε φτάσει να έχουμε ένα minimum σύστημα το οποίο κάνει boot και έχει δίκτυο, telnet, ftp, compiler (και όλα τα
απαιτούμενα tools για compile) και τα sources του πυρήνα. Αυτό το σύστημα το έχουμε και σε backup (ας το ονομάσουμε «στάδιο 2»). Τώρα πρέπει να κάνουμε το
fork\...
**1. Forking**
------------------------------------
**2. Κοινός server**
------------------------------------------
**3. Development μηχάνημα**
-------------------------------------------------
**4. Μεταφορά**
-------------------------------------
### [1. Forking]{#s1}
Από εδώ και πέρα, αποφασίζουμε τι ακριβώς ανάγκες θα εξυπηρετεί το μηχάνημά μας.\
Αν το μηχάνημα το «χτίζουμε» για (π.χ.) **stand-alone workstations** φοιτητών σε Πανεπιστήμιο που θα μπαίνουν Internet, θα θέλουν mail, browser, editor και
λοιπά παρόμοια προγράμματα, δεν χρειάζεται να του βάλουμε καθόλου servers και απλά θα εγκαταστήσουμε (αν τίθεται τέτοια απαίτηση για την χρήση του workstation)
τα X-windows. Μπορούμε να μην σηκώνουμε καν το inetd για παράδειγμα, και ούτε κουβέντα για Apache, sendmail, postgres/mysql, squid και λοιπά καλούδια που μας
βάζουν συνήθως οι distributions.\
Αν το μηχάνημα το «χτίζουμε» για να εξυπηρετεί **συγκεκριμένο service** (π.χ. θα γίνει mail server) τότε απλά του εγκαθιστούμε το αντίστοιχο service και ένα
πρόγραμμα για remote access. Σε όλες τις περιπτώσεις, για remote access προτιμώ το ssh έναντι των παραδοσιακών telnet/ftp. Δεν συζητάμε καθόλου βέβαια για
r-tools εκτός αν πρόκειται το μηχάνημα να είναι backup-server (το rmt χρειάζεται rshd). Δημιουργούμε τα αντίστοιχα scripts για να σηκώνονται και να σταματάνε τα
σχετικά services, κατά τα παραδείγματα του Gerard.\
Αν μιλάμε για περίπτωση **«τυπικού» server** που θα εξυπηρετεί web, mail, dns, μία (τουλάχιστον) βάση, ίσως news, ότι σκεφτούμε δηλαδή (κλασικά παραδείγματα
τέτοιων μηχανημάτων είναι ο tux.hellug.gr και το igloo.linux.gr, τα μηχανήματα του συλλόγου), τότε ξεκινάμε και εγκαθιστούμε όλα τα services, πολλά extra-libs,
φτιάχνουμε όλα τα scripts για startup-shutdown, ίσως ακόμα και να πρέπει να φτιάξουμε (επιτέλους;) και κάποιο inetd.conf για να ξεκινάμε τον inetd (ανάλογα με
τις απαιτήσεις πάλι), σίγουρα κάποιο cron, θα αυτοματοποιήσουμε κάποιες εργασίες\... Πολλή δουλειά.\
Τέλος, μπορεί να θέλουμε να φτιάξουμε ένα **πλήρες development μηχάνημα**, το οποίο όπως το εννοώ εγώ είναι ένας συνδυασμός της πρώτης και τελευταίας από τις
προαναφερθείσες περιπτώσεις. Δηλαδή πολλούς servers (που θα «σηκώνουμε» κατ\' επιλογή όποιον/όποιους χρειαζόμαστε για να κάνουμε τους ελέγχους μας) και τα
X-windows με τα αντίστοιχα προγράμματα για ppp, internet, writing-tools κλπ, ότι δίνει δηλαδή ένα distribution. (τόση δουλειά για να ξαναφτάσουμε εκεί που
ξεκινήσαμε!!! :-)
Εγώ εδώ θα ασχοληθώ με τις δύο τελευταίες περιπτώσεις, μια και είναι αυτές ακριβώς με τις οποίες ασχολήθηκα.
### [2. Κοινός server]{#s2}
Εφόσον δεν χρησιμοποιούμε κάποιο standard package management software (π.χ. rpm) πρέπει να έχουμε κάποιο τρόπο, να «κρατάμε» κάπου ένα κατάλογο με το αρχεία
βάλαμε και σε ποιο σημείο. Εγώ χρησιμοποίησα το installwatch για αυτό το λόγο (και τώρα ετοιμάζομαι μα γράψω ένα απλό uninstall script που να παίρνει σαν input
τα logs του installwatch) και θα πρότεινα, για να μην βρεθείτε πιο χαμένοι από ότι ξεκινήσατε, να χρησιμοποιήσετε κι εσείς κάποιο τέτοιο πακέτο.\
Οι servers που εγκατέστησα (όχι ότι έχει και σημασία αφού όπως είπαμε ο καθένας βάζει ότι τον εξυπηρετεί) είναι οι apache, mysql, qmail, bind, sshd, ενώ και
ένας nfs server μου φάνηκε χρήσιμος κάποια στιγμή (για να κάνω «βαριά» compiles στο άλλο, γρήγορο μηχάνημα που έχω\... το πως και γιατί στο περίπου, μπορείτε να
το βρείτε στο πρώτο-πρώτο τεύχος του magaz που ο Φώτης Γεωργάτος χρησιμοποίησε το ίδιο τρικ για να κάνει compile τον πυρήνα σε ένα μηχάνημα). Φυσικά εγκατέστησα
και ένα cron, και μια που το παραδοσιακό cron είναι αρκετά παλιό, εγκατέστησα το fcron. Προτίμησα το qmail αντί για το sendmail για λόγους ασφαλείας και επειδή
το qmail μου καλύπτει τις ανάγκες μου.\
Τα σημαντικά (για μένα) κομμάτια είναι τα εξής:
- Έβαλα ολόκληρα τα πακέτα σε δικά τους ξεχωριστά directory (π.χ. o apache μπήκε στο /usr/local/apache). Αυτό ήταν εύκολο για ορισμένα πακέτα (apache, inn)
και πιο δύσκολο για άλλα (mysql) ενώ για κάποια ακόμα (π.χ. ssh) δεν είχε νόημα.
- Έφτιαξα (η άλλαξα όσα υπήρχαν έτοιμα) τα startup - shutdown scripts τα οποία μπήκαν στο /etc/init.d και φτιάχτηκαν τα αντίστοιχα links στο /etc/rc.d.
\
Αν έχουμε ένα παράλληλο μηχάνημα με τις ίδιες ρυθμίσεις μπορούμε να κάνουμε αυτό που προτείνουν πολλοί security experts, να μην αφήσουμε δηλαδή compiler(s) στο
μηχάνημα και να αφαιρέσουμε όλα τα sources. Ένα tripwire ή ένα md5sum που το βάζουμε να \"τρέχει\" κάθε βράδυ και να μας στέλνει με mail τα αποτελέσματα για να
τα συγκρίνουμε με τα αρχικά, μας βοηθάει και μας δημιουργεί λίγο την ψευδαίσθηση ότι το μηχανάκι μας είναι ασφαλές. Εμείς πάντως κάναμε ότι έπρεπε, από αυτή τη
μεριά (γιατί υπάρχει πάντα και το θέμα του administration της βάσης, τα τυχόν cgi scripts που τρέχουν κλπ).
### [3. Development μηχάνημα]{#s3}
Αυτό το οποίο χρειάζομαι πραγματικά να έχω είναι ένα development μηχάνημα, το οποίο θα χρησιμοποιώ ως εξής:
- Στήνω όλα τα services όπως στον server. Ένα ακριβές αντίγραφο του server. Ελλείψη τρίτου μηχανήματος, το κάνω αυτό στο βασικό μου μηχάνημα.
- Περνάω επάνω ότι extra προγράμματα χρειάζομαι, όπως X-Windows, mail-client, browser, editors κλπ για να μπορώ να το δουλέψω χωρίς κανένα πρόβλημα. Τα βασικά
στα βασικά τους σημεία (π.x. τα X-Windows στο /usr/X11R6) και τα μη βασικά εκεί που θέλω (π.χ. όλα τα γραφικά προγράμματα στο /opt και όλα τα προγράμματα
κονσόλας στο /opt/local).
- Θυμάστε που είπα προηγουμένως ότι όλα τα services τα έβαλα σε δικά τους directory; Ε, όλα τα directories ήταν και στο ίδιο filesystem (/usr/local). Ένα
level 0 backup του filesystem σήμερα, και ένα differential όταν τελειώσω το development (της τυχόν εφαρμογής, ή τον έλεγχο της τυχόν νέας έκδοσης), με
καλύπτει κατά 99% για πλήρη μεταφορά στον server. Το 1% που αφήνω είναι για τυχόν περιπτώσεις που δεν μου έρχονται τώρα στο μυαλό.
- Μεταφέροντας το differential backup στον server, ξαναπαίρνω ένα level 0 backup και βρίσκομαι πάλι σε αυτό που μπορούμε να ονομάσουμε checkpoint.
Το εν λόγω μηχάνημα λοιπόν έχει περασμένα (εκτός από τα προγράμματα του server) και τα XFree86-4.01, gtk και glib (καθώς και gnome-libs και gnome-includes της
έκδοσης 1.2), και τα υπόλοιπα desktop tools (Staroffice, Netscape, Acrobat κλπ).
### [4. Μεταφορά]{#s4}
Ωραία τα φτιάξαμε αυτά και δουλέυουν. Τι κερδίσαμε; Το όλο νόημα ήταν στην αρχή να μπορούμε να το μεταφέρουμε από δω κι από κει, όποιο \"παρακλάδι\" από αυτά
που είπαμε στο τμήμα Forking θέλουμε, χωρίς πρόβλημα. E, αυτό είναι εύκολο\...
1. Κατ\' αρχάς υπάρχει η παραδοσιακή (και πολλές φορές καλύτερη) μέθοδος με το tar. Προσοχή λίγο στις παραμέτρους (συγκεκριμένα για τα permissions) και έχετε
ένα tar image του συστήματός σας. Αν στο νέο σύστημα boot-άρετε από μία ειδική δισκέτα (π.χ. tom\'s boot disk), κάνετε mount ένα CD που έχετε το εν λόγω
image, και κάνετε untar το image στον δίσκο, το μόνο που χρειάζεται να κάνετε μετά είναι ένα chroot στον νέο δίσκο, διόρθωμα αν χρειάζεται του /etc/fstab
και /etc/lilo.conf, τρέχουμε ένα lilo και reboot. Θεωρητικά όλα είναι έτοιμα. Για να πω την αλήθεια, όχι μόνο θεωρητικά. Αυτή τη μέθοδο χρησιμοποίησα για να
αντιγράψω το βασικό \"server\" μηχάνημα στο development.
2. Υπάρχει η λύση του cluclo (cluster cloning) αν το νέο μηχάνημα έχει δίκτυο. Διαβάστε το documentation καλά κάντε τα 3-4 βήματα που λέει, και είστε έτοιμοι.
3. Κάποιος μου είπε για κάποιο πρόγραμμα με όνομα ghost που κάνει κάτι τέτοιο, αλλά είναι λέει για Windows οπότε δεν μπόρεσα να το δοκιμάσω.
4. Υπάρχει και το αντίστοιχο (ίδιο;) πρόγραμμα open source για Linux. Λέγεται Partition Image και θα το βρείτε και αυτό στο Freshmeat. Από μία σύντομη ματιά
που έριξα στο documentation, κρίνω ότι μάλλον είναι ιδιαίτερα εύχρηστο και ευέλικτο.
5. Πάντα παίζει και η λύση του dd. Βάζουμε δηλαδή τον δίσκο του νέου μηχανήματος στο παλιό μηχάνημα, και αν ο δίσκος είναι ίδιος του κάνουμε ένα dd και
τελειώνει η υπόθεση, ενώ αν οι δίσκοι διαφέρουν, παίζουμε λίγο με τα partitions και κάνουμε dd το partition.
Όλες οι μέθοδοι που αναπτύξαμε πιο πάνω, είναι σαφώς πιο γρήγορες από μία εγκατάσταση από CD. Βέβαια έτσι κάνεις μόνο τυποποιημένες εγκαταστάσεις, αλλά μπορείς
να τις τροποποιήσεις πολύ εύκολα (μια που ξέρεις ακριβώς τι υπάρχει μέσα) και, βέβαια, πόσες φορές χρειάζεσαι μία διαφορετική εγκατάσταση απ\' ότι έκανες την
περασμένη φορά;
Αν δεν σας φτάνουν αυτοί οι τρόποι, βρείτε κάποιον μόνοι σας. Εξάλλου, αυτή είναι η ομορφιά του Linux.