README
7.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
Instrukcja instalacji systemu zarządzania plikami.
W poniższej instrukcji zakładamy, że czytelnik posiada podstawową
wiedzę na temat administracji serwera svn. Zakładamy, że
po stronie serwera zainstalowane są następujące narzędzia:
* subversion
* python (2.6 lub 2.7)
* pysvn
GUI ułatwiające pobieranie i wysyłanie zaanotowanych plików
zbudowane jest na bazie:
* python
* wxPython
* wxGlade
Przygotowana została binarna wersja GUI pod system Windows,
dzięki czemu użytkownicy systemu nie muszą posiadać
zainstalowanych powyższych narzedzi.
------------------------------------------------------------------
Razem z instrukcją README administrator systemu powinien otrzymać:
* Moduł dfs -- implementację systemu zarządzania plikami,
* Katalog scripts -- zestaw skryptów ułatwiających tworzenie i
zarządzanie systemem,
* Moduł gui -- implementację GUI dla użytkowników systemu.
* Katalog z przykładową konfiguracją serwera
(pliki $SERVER.cfg oraz $USERS.cfg),
* Katalog z przykładową konfiguracją klienta GUI (plik $GUI.cfg).
Ponadto, administrator powinien wygenerować klucze szyfrujące
połączenie klient-serwer -- pliki key.pem i cert.pem.
Odpowiednie informacje na temat generowania kluczy można znaleźć
pod adresem:
http://docs.python.org/dev/library/ssl.html#certificates
==================================================================
1) Zakładanie nowego repozytorium.
Na serwerze, w katalogu, w którym ma znajdować się repozytorium,
należy wykonać komendę:
$ svnadmin create $REPO.PATH
W katalogu konfiguracyjnym repozytorium ($REPO.PATH/conf/) należy
zmodyfikować dwa pliki:
i) svnserve.conf
...
### and "none". The sample settings below are the defaults.
anon-access = none
auth-access = write
### The password-db option controls the location of the password
...
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
...
ii) passwd
W pliku passwd należy wpisać login i hasło, które wykorzystywane
będą po stronie serwera do zatwierdzania (commit-owania) zmian
w repozytorium, np.:
...
machine = 95mnf83m-SDT%@vf
...
Ten sam login i hasło należy podać w konfiguracji serwera systemu
zarządzania plikami, o czym w punkcie 2). W pliku passwd można
podać również hasła dla innych użytkowników repozytorium -- więcej
na ten temat można znaleźć w dokumentacji subversion.
Hasła użytkowników systemu (anotatorów) również uzupełniane są w
konfiguracji systemu zarządzania plikami opisanej w 2).
------------------------------------------------------------------
Na serwerze, w innym katalogu niż zostało założone repozytorium,
należy utworzyć kopię roboczą repozytorium, z której korzystać
będzie system zarządzania plikami. W tym celu należy wpisać:
$ svn co file://$REPO.PATH $COPY.PATH
Pobrano wersję 0.
Gdzie $REPO.PATH to ścieżka repozytorium, a $COPY.PATH to
docelowy katalog kopii roboczej.
UWAGA: Zamiast ścieżki postaci file://$REPO.PATH, można również
podać adres w postaci svn://$REPO.ADDR -- adres, który jest
dostępny dla użytkowników repozytorium pracujących poza
serwerem. Ponadto, kopię roboczą można założyć na innym
serwerze niż repozytorium. Kopia robocza musi jednak znajdować
się na tej samej maszynie, na której będzie później uruchamiany
serwer systemu zarządzania plikami. Wadą tego rozwiązania
może być wolniejsze działanie systemu.
Pustą kopię roboczą należy na wstępie wypełnić strukturą katalogów
dla systemu zarządzania plikami. Służy do tego skrypt
fill_empty_repo.sh znajdujący się w katalogu scripts dostarczonym
razem z tą instrukcją. Skrypt wywołuje się w następujący sposób:
$ ./fill_empty_repo.sh $COPY.PATH
Struktura katalogów powinna wyglądać następująco:
$COPY.PATH/
new <- katalog z nowymi plikami
annotation/ <- wyniki anotacji plików
A
B
adjudication <- wyniki super-anotacji plików
db.xml <- baza danych z bierzącymi informacjami
dotyczącymi anotacji
Na koniec należy watwierdzić zmiany wykonane w kopii roboczej:
$ svn add $COPY.PATH/*
$ svn commit --username=machine --password=95mnf83m-SDT%@vf -m "struktura"
UWAGA: W katalogach annotation/A, annotation/B oraz adjudication
znajdują się wysłane przez anotatorów na serwer pliki. Nie oznacza
to jednak, że anotacja tych plików przez ich posiadaczy zakończyła
się. Taką informację można uzyskać na podstawie bazy danych
(pliki, których anotacja/super-anotacja zakończyła się, będą
uzupełnione o element <checkinDate> w bazie danych).
==================================================================
2) Konfiguracja systemu zarządzania plikami.
Konfiguracja systemu odbywa się w trzech plikach:
* $SERVER.cfg
* $USERS.cfg
* $PASSWD
Razem z instrukcją i implementacją serwera powinny zostać
dostarczone również przykładowe pliki konfiguracyjne, w których
można znaleźć dokładniejsze informacje na temat konfiguracji
serwera.
i) $SERVER.cfg
Plik $SERVER.cfg jest głównym plikiem konfiguracyjnym i jedynym
wczytywanym bezpośrednio przez serwer systemu (znajdują się
w nim również ścieżki do pozostałych dwóch plików konfiguracyjnych
-- $USERS.cfg i $PASSWD).
ii) $USERS.cfg
Plik zawiera informacje o uprawnieniach do super-anotacji oraz
o limitach pobierania plików.
ii) $PASSWD
W pliku znajdują się hasła określone dla użytkowników systemu
(anotatorów). Poszczególne linie tego pliku mają postać:
login = hasło
==================================================================
3) Używanie serwera systemu zarzadznania plikami.
Do uruchamiania serwera służy narzędzie server.py w module dfs.
Serwer uruchamia się następującą komendą:
$ python server.py $SERVER.cfg
Ewentualne błędy będą wypisywane na standardowe wyjście.
------------------------------------------------------------------
Karmienie systemu nowymi plikami przeznaczonymi do anotacji.
Do tego celu służy skrypt add_files.py w katalogu scripts.
$ python add_files.py $SERVER.cfg PATH1 PATH2 ...
gdzie PATH1, PATH2, ... to ścieżki do plików, które mają zostać
dodane do repozytorium. Zmiany nie są automatycznie commit-owane,
więc trzeba użyć komendy svn commit do ich zatwierdzenia:
UWAGA: Dodawanie plików, jak również jakiekolwiek prace
administracyje w repozytorium systemu powinny być przeprowadzane
przy wyłączonym serwerze server.py. Serwer można w sposób
bezpieczny wyłączyć wysyłając sygnał SIGINT (np. Control-C)
(Sygnał zostanie zignorowany, jeśli odbywa się komunikacja
z serwerem).
==================================================================
4) Graficzny interfejs systemu zarządzania plikami.
Implementacja GUI znajduje się w module gui dostarczonym
razem z instrukcją. GUI przeznaczone jest dla użytkowników
systemu, czyli anotatorów.
------------------------------------------------------------------
Konfiguracja GUI znajduje się w katalogu gui/data w pliku
global.cfg. W tym samym katalogu powinien znajdować się
wygenerowany przez administratora klucz publiczny (cert.pem).
Dokładniejsze informacje na temat konfiguracji znajdują się w
przykładowym pliku konfiguracyjnym gui/data/global.cfg.
------------------------------------------------------------------
GUI uruchamia się komendą:
$ python manager.py