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
D
DistSys
Text distribution system for manual annotation tasks.
public