Skip to content

Commit 9b7ab47

Browse files
committed
update 04-git-server module files
1 parent 863305c commit 9b7ab47

File tree

9 files changed

+39
-55
lines changed

9 files changed

+39
-55
lines changed

book/04-git-server/sections/generating-ssh-key.asc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
Για να παρέχετε δημόσιο κλειδί, όλοι οι χρήστες στο σύστημά σας πρέπει να δημιουργήσουν ένα, αν δεν έχουν ήδη.
77
Η διαδικασία είναι παρόμοια σε όλα τα λειτουργικά συστήματα.
88
Πρώτα πρέπει να ελέγξετε ότι δεν έχετε ήδη κλειδί.
9-
Η προεπιλεγμένη θέση στην οποία αποθηκεύονται τα κλειδιά SSH ενός χρήστη είναι ο κατάλογος `~/.ssh`.
9+
Η προεπιλεγμένη θέση στην οποία αποθηκεύονται τα κλειδιά SSH ενός χρήστη είναι ο κατάλογος `~/.ssh`.
1010
Μπορείτε εύκολα να ελέγξετε αν έχετε ήδη κλειδί πηγαίνοντας σε αυτόν τον κατάλογο και βλέποντας τα περιεχόμενά του:
1111

1212
[source,console]
@@ -23,7 +23,7 @@ config id_dsa.pub
2323

2424
[source,console]
2525
----
26-
ssh-keygen -o
26+
$ ssh-keygen -o
2727
Generating public/private rsa key pair.
2828
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
2929
Created directory '/home/schacon/.ssh'.

book/04-git-server/sections/git-daemon.asc

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
(((αποθετήρια εξυπηρέτησης, πρωτόκολλο git)))
44
(((serving repositories, git protocol)))
5-
Στη συνέχεια θα εγκαταστήσΟυμε έναν δαίμονα που θα εξυπηρετεί αποθετήρια μέσω του πρωτοκόλλου "`Git`".
5+
Στη συνέχεια θα εγκαταστήσουμε έναν δαίμονα που θα εξυπηρετεί αποθετήρια μέσω του πρωτοκόλλου "`Git`".
66
Αυτή είναι μια συνήθης επιλογή για γρήγορη και χωρίς ταυτοποίηση πρόσβαση στα δεδομένα σας στο Git.
77
Να θυμάστε πως δεδομένου ότι πρόκειται για μια υπηρεσία χωρίς ταυτοποίηση, οτιδήποτε παρέχεται πάνω από αυτό το πρωτόκολλο είναι δημόσιο εντός του δικτύου του.
88

@@ -14,7 +14,7 @@
1414

1515
[source,console]
1616
----
17-
git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
17+
$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
1818
----
1919

2020
Ο διακόπτης `--reuseaddr` επιτρέπει στον διακομιστή να επανεκκινήσει χωρίς να αναμένει αποσύνδεση των παλαιών συνδέσεων, ο διακόπτης `--base-path` επιτρέπει την κλωνοποίηση έργων χωρίς να καθορίζεται ολόκληρη τη διαδρομή και η διαδρομή στο τέλος λέει στον δαίμονα Git πού να αναζητήσει αποθετήρια προς εξαγωγή.
@@ -54,8 +54,6 @@ WantedBy=multi-user.target
5454

5555
Σε άλλα συστήματα, ίσως θελήσετε να χρησιμοποιήσετε το `xinetd`, ένα script στο σύστημά σας `sysvinit` ή κάτι άλλο -- με την προϋπόθεση ότι μπορείτε δαιμονοποιήσετε αυτή την εντολή και να την παρακολουθείτε με κάποιον τρόπο.
5656

57-
Σε άλλα συστήματα, ίσως θελήσετε να χρησιμοποιήσετε το `xinetd`, ένα script στο σύστημά σας `sysvinit` ή κάτι άλλο -- εφόσον μπορείτε να δαιμονοποιήσετε αυτή την εντολή και να την παρακολουθείτε.
58-
5957
Στη συνέχεια, πρέπει να ενημερώσετε το Git ποια αποθετήρια επιτρέπουν την πρόσβαση σε διακομιστές Git χωρίς ταυτοποίηση.
6058
Μπορείτε να το κάνετε σε κάθε αποθετήριο δημιουργώντας ένα αρχείο που ονομάζεται `git-daemon-export-ok`.
6159

@@ -66,5 +64,3 @@ $ touch git-daemon-export-ok
6664
----
6765

6866
Η παρουσία αυτού του αρχείου λέει στο Git ότι επιτρέπεται να εξυπηρετήσει αυτό το έργο χωρίς ταυτοποίηση.
69-
70-

book/04-git-server/sections/git-on-a-server.asc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ $ cp -Rf my_project/.git my_project.git
3838
==== Τοποθέτηση του γυμνού αποθετηρίου σε έναν διακομιστή
3939

4040
Τώρα που έχετε ένα γυμνό αντίγραφο του αποθετηρίου σας, το μόνο που χρειάζεται να κάνετε είναι να το βάλετε σε έναν διακομιστή και να ρυθμίσετε τα πρωτόκολλά σας.
41-
Ας υποθέσουμε ότι έχετε δημιουργήσει έναν διακομιστή που ονομάζεται `git.example.com` στον οποίο έχετε πρόσβαση μέσω SSH και θέλετε να αποθηκεύσετε όλα τα αποθετήρια Git στον κατάλογο `/opt/git`.
41+
Ας υποθέσουμε ότι έχετε δημιουργήσει έναν διακομιστή που ονομάζεται `git.example.com` στον οποίο έχετε πρόσβαση μέσω SSH και θέλετε να αποθηκεύσετε όλα τα αποθετήρια Git στον κατάλογο `/srv/git`.
4242
Υποθέτοντας ότι το `/opt/git` υπάρχει σε αυτόν τον διακομιστή, μπορείτε να ρυθμίσετε το νέο αποθετήριό σας αντιγράφοντας το γυμνό αποθετήριο:
4343

4444
[source,console]
4545
----
4646
$ scp -r my_project.git [email protected]:/srv/git
4747
----
4848

49-
Σε αυτό το σημείο, άλλοι χρήστες που έχουν πρόσβαση SSH στον ίδιο διακομιστή ο οποίος έχει πρόσβαση ανάγνωσης στον κατάλογο `/opt/git` μπορούν να κλωνοποιήσουν τον αποθετήριό σας τρέχοντας
49+
Σε αυτό το σημείο, άλλοι χρήστες που έχουν πρόσβαση SSH στον ίδιο διακομιστή ο οποίος έχει πρόσβαση ανάγνωσης στον κατάλογο `/srv/git` μπορούν να κλωνοποιήσουν τον αποθετήριό σας τρέχοντας
5050

5151
[source,console]
5252
----
@@ -55,7 +55,8 @@ $ git clone [email protected]:/srv/git/my_project.git
5555

5656
Αν ένας χρήστης συνδεθεί με SSH σε έναΝ διακομιστή και έχει δικαίωμα εγγραφής στον κατάλογο `/srv/git/my_project.git`, θα έχει αυτόματα δικαίωμα ώθησης.
5757

58-
Το Git θα προσθέσει αυτόματα δικαιώματα εγγραφής σε ομάδες σε ένα αποθετήριο σωστά εάν εκτελέσετε την εντολή `git init` με την επιλογή `--shared`. (((εντολές git, init, bare)))
58+
Το Git θα προσθέσει αυτόματα δικαιώματα εγγραφής σε ομάδες σε ένα αποθετήριο σωστά εάν εκτελέσετε την εντολή `git init` με την επιλογή `--shared`.
59+
Σημειώστε πως τρέχοντας αυτή την εντολή, δεν θα καταστρέψετε καμία υποβολή, αναφορά, κτλ. στην όλη διαδικασία. (((εντολές git, init, bare)))
5960

6061
[source,console]
6162
----
@@ -91,7 +92,7 @@ $ git init --bare --shared
9192

9293
Υπάρχουν μερικοί τρόποι με τους οποίους μπορείτε να δώσετε πρόσβαση σε όλους στην ομάδα σας.
9394
Ο πρώτος είναι να δημιουργήσετε λογαριασμούς για όλους, κάτι που είναι απλό, αλλά μπορεί να είναι κουραστικό.
94-
Μπορεί να μην θέλετε να τρέξετε το `adduser` και να ορίσετε προσωρινούς κωδικούς πρόσβασης για κάθε χρήστη.
95+
Μπορεί να μην θέλετε να τρέξετε το `adduser` (ή το εναλλακτικό `useradd`) και να ορίσετε προσωρινούς κωδικούς πρόσβασης για κάθε χρήστη.
9596

9697
Μια δεύτερη μέθοδος είναι να δημιουργήσετε έναν μοναδικό χρήστη 'git' στο μηχάνημα, να ζητήσετε από κάθε χρήστη που θα έχει πρόσβαση εγγραφής να σας στείλει ένα δημόσιο κλειδί SSH και να προσθέσετε αυτό το κλειδί στο αρχείο `~/.ssh/authorized_keys` του νέου χρήστη 'git'.
9798
Σε αυτό το σημείο, όλοι θα μπορούν να έχουν πρόσβαση σε αυτό το μηχάνημα μέσω του χρήστη 'git'.

book/04-git-server/sections/gitlab.asc

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
Αν ψάχνετε για έναν πιο σύγχρονο διακομιστή Git με πολλές λειτουργικότητες, υπάρχουν μερικές λύσεις ανοιχτού κώδικα που μπορείτε να εγκαταστήσετε αντ' αυτού.
66
Καθώς το GitLab είναι μία από τις πιο δημοφιλείς, θα δούμε την εγκατάσταση και χρήση του ως παράδειγμα.
77
Η εγκατάσταση του GitLab είναι λίγο πιο περίπλοκη από αυτή του GitWeb και πιθανότα απαιτεί περισσότερη συντήρηση, αλλά είναι μια επιλογή με πολύ περισσότερα χαρακτηριστικά.
8-
Το GitLab είναι λίγο πιο πολύπλοκο από το GitWeb και ενδεχομένως απαιτεί περισσότερη συντήρηση, αλλά είναι μία πολύ πιο ολοκληρωμένη λύση όσον αφορά στα διαθέσιμες λειτουργικότητες.
98

109
==== Εγκατάσταση
1110

@@ -20,13 +19,14 @@
2019
* Από πηγαίο κώδικα.
2120
* Προμηθευτές cloud όπως οι AWS, Google Cloud Platform, Azure, OpenShift και Digital Ocean.
2221

23-
Για περισσότερες πληροφορίες διαβάστε το https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md[αρχείο readme του GitLab Community Edition (CE)^].
22+
Για περισσότερες πληροφορίες διαβάστε το https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md[GitLab Community Edition (CE) readme^].
2423

2524
==== Διαχείριση
2625

2726
Η διεπαφή διαχείρισης του GitLab είναι προσπελάσιμη μέσα από το web.
28-
Απλά οδηγείτε το πρόγραμμα περιήγησής σας στο hostname ή τη διεύθυνση IP στην οποία είναι εγκατεστημένο το GitLab και συνδεθείτε ως χρήστης admin.
29-
Το προεπιλεγμένο όνομα χρήστη είναι `[email protected]` και ο προεπιλεγμένος κωδικός πρόσβασης είναι `5iveL!Fe` (που πρέπει να αλλάξετε αμέσως).
27+
Απλά οδηγείτε το πρόγραμμα περιήγησής σας στο hostname ή τη διεύθυνση IP στην οποία είναι εγκατεστημένο το GitLab και συνδεθείτε ως χρήστης `root`.
28+
Ο κωδικός βασίζεται στον τύπο εγκατάστασης αλλά από προεπιλογή, ο Omnibus GitLab αυτόαματα δημιουργεί κωδικό και τον αποθηκεύει στο /etc/gitlab/initial_root_password για τουλάχιστον 24 ώρες.
29+
Ακουλουθήστε το εγχειρίδιο και περισσότερες πληροφορίες.
3030
Μόλις συνδεθείτε, κάνετε κλικ στο εικονίδιο "`Admin area`" στο επάνω δεξιά μενού.
3131

3232
[[rgitlab_menu]]
@@ -55,7 +55,7 @@ image::images/gitlab-users.png[Η οθόνη διαχείρισης χρηστώ
5555
===== Ομάδες
5656

5757
Μια ομάδα (group) στο GitLab είναι μια συλλογή έργων μαζί με δεδομένα σχετικά με τον τρόπο με τον οποίο οι χρήστες έχουν πρόσβαση σε αυτά τα έργα.
58-
Κάθε ομάδα έχει ένα ονοματοχώρο έργου (ακριβώς όπως και οι χρήστες), οπότε αν η ομάδα +training+ έχει ένα έργο +materials+, η διεύθυνση URL του θα είναι http://server/training/materials[].
58+
Κάθε ομάδα έχει ένα ονοματοχώρο έργου (ακριβώς όπως και οι χρήστες), οπότε αν η ομάδα +training+ έχει ένα έργο +materials+, η διεύθυνση URL του θα είναι `http://server/training/materials`.
5959

6060
[[rgitlab_groups]]
6161
.Οθόνη διαχείρισης ομάδων του GitLab.
@@ -74,7 +74,7 @@ image::images/gitlab-groups.png[Οθόνη διαχείρισης ομάδων
7474
Κάθε έργο έχει επίσης ένα επίπεδο ορατότητας, το οποίο ελέγχει ποιος έχει πρόσβαση στη σελίδα και το αποθετήριο αυτού του έργου.
7575
Εάν ένα έργο είναι _Private_ (ιδιωτικό), ο κάτοχος του έργου πρέπει να παρέχει ρητά πρόσβαση σε συγκεκριμένους χρήστες.
7676
Ένα _Internal_ (εσωτερικό) έργο είναι ορατό σε οποιονδήποτε συνδεδεμένο χρήστη και ένα _Public_ (δημόσιο) έργο είναι ορατό σε οποιονδήποτε.
77-
Σημειώστε ότι το επίπεδο ορατότητας του έργου ελέγχει τόσο την πρόσβαση "`git fetch`", όσο και την πρόσβαση στη διαδικτυακή διεπαφή χρήστη (web UI) για αυτό το έργο.
77+
Σημειώστε ότι το επίπεδο ορατότητας του έργου ελέγχει τόσο την πρόσβαση `git fetch`, όσο και την πρόσβαση στη διαδικτυακή διεπαφή χρήστη (web UI) για αυτό το έργο.
7878

7979
===== Άγκιστρα
8080

@@ -119,7 +119,6 @@ $ git clone https://server/namespace/project.git
119119
Ένας άλλος, πιο ελεγχόμενος τρόπος συνεργασίας είναι με τη χρήση αιτήσεων συγχώνευσης (merge requests).
120120
Αυτή η δυνατότητα επιτρέπει σε κάθε χρήστη που μπορεί να δει ένα έργο να συνεισφέρει σε αυτό με ελεγχόμενο τρόπο.
121121
Οι χρήστες με άμεση πρόσβαση μπορούν απλά να δημιουργήσουν έναν κλάδο, να ωθήσουν υποβολές σε αυτόν και να θέσουν ένα αίτημα συγχώνευσης από τον κλάδο τους στον κλάδο `master` ή σε οποιονδήποτε άλλο κλάδο.
122-
123122
Οι χρήστες που δεν έχουν δικαίωμα ώθησης σε ένα αποθετήριο μπορούν να το αποσχίσουν (fork) (δηλ. να δημιουργήσουν το δικό τους αντίγραφο), να ωθούν υποβολές σε _αυτό_ το αντίγραφο και να κάνουν αίτημα συγχώνευσης από το αντίγραφό τους στο κύριο έργο.
124123
Αυτό το μοντέλο επιτρέπει στον κάτοχο να έχει τον πλήρη έλεγχο του τι πηγαίνει στο αποθετήριο και πότε, καθώς επιτρέπει συνεισφορές και από μη αξιόπιστους χρήστες.
125124

book/04-git-server/sections/gitweb.asc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Τώρα που έχετε βασική πρόσβαση ανάγνωσης/εγγραφής και μόνο-για-ανάγνωση στο έργο σας, ίσως θελήσετε να δημιουργήσετε ένα απλό οπτικοκοποιητή (visualizer) ιστού.
55
Το Git συνοδεύεται από ένα script CGI που ονομάζεται GitWeb και χρησιμοποιείται μερικές φορές για αυτό τον σκοπό.
66

7-
[[rgitweb]]
7+
[[r_gitweb]]
88
.Η διεπαφή χρήστη του GitWeb.
99
image::images/git-instaweb.png[Η διεπαφή χρήστη του GitWeb.]
1010

@@ -30,15 +30,15 @@ $ git instaweb --httpd=webrick --stop
3030
----
3131

3232
Εάν θέλετε να τρέχετε συνεχώς τη διεπαφή ιστού σε έναν διακομιστή για την ομάδα σας ή για ένα έργο ανοιχτού κώδικα που φιλοξενείτε, θα πρέπει να ρυθμίσετε το script CGI να προσφέρεται από τον συνηθισμένο web server σας.
33-
Ορισμένες διανομές Linux έχουν ένα πακέτο `gitweb` που μπορείτε να εγκαταστήσετε με `apt` ή `yum`, επομένως ίσως είναι καλό να δοκιμάσετε αυτό πρώτα.
33+
Ορισμένες διανομές Linux έχουν ένα πακέτο `gitweb` που μπορείτε να εγκαταστήσετε με `apt` ή `dnf`, επομένως ίσως είναι καλό να δοκιμάσετε αυτό πρώτα.
3434
Θα σς δείξουμε τη χειροκίνητη εγκατάσταση του GitWeb πολύ συνοπτικά.
3535
Πρώτα πρέπει να πάρετε τον πηγαίο κώδικα του Git, με τον οποίο έρχεται το GitWeb, και να δημιουργήσετε το προσαρμοσμένο script CGI:
3636

3737
[source,console]
3838
----
39-
$ git clone git://git.kernel.org/pub/scm/git/git.git
39+
$ git clone https://git.kernel.org/pub/scm/git/git.git
4040
$ cd git/
41-
$ make GITWEB_PROJECTROOT="/opt/git" prefix=/usr gitweb
41+
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
4242
SUBDIR gitweb
4343
SUBDIR ../
4444
make[2]: `GIT-VERSION-FILE' is up to date.
@@ -56,7 +56,7 @@ $ sudo cp -Rf gitweb /var/www/
5656
ServerName gitserver
5757
DocumentRoot /var/www/gitweb
5858
<Directory /var/www/gitweb>
59-
Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
59+
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
6060
AllowOverride All
6161
order allow,deny
6262
Allow from all

0 commit comments

Comments
 (0)