System aktualizacji

Skrócenie procesu aktualizacji

Od wersji 1.1.0 Aktualizator umożliwia uaktualnienie dowolnej wersji do najnowszej w jednym kroku!

Aktualizacja systemu dLibra

Aktualizacja systemu dLibra w ogólności polega na skopiowaniu do katalogów Serwera i Aplikacji Czytelnika nowych wersji plików. W przypadku poważniejszych zmian konieczna może być też edycja niektórych plików konfiguracyjnych. Trzeba oczywiście wiedzieć które pliki zostały zmienione oraz gdzie je przekopiować.  Aby uniknąć potencjalnych błędów związanych z błędnym kopiowaniem plików, zdecydowaliśmy w możliwie najszerszym zakresie zautomatyzować ten proces. W tym celu stworzony został Aktualizator systemu dLibra. Jest to niewielka aplikacja, która pozwala przyśpieszyć proces aktualizacji. W niniejszym dokumencie przedstawione zostaną ogólne zagadanienia związane z instalacją i działaniem Aktualizatora, oraz to jak wygląda aktualizacja przeprowadzana przy użyciu tego narzędzia.

Proszę nie uruchamiać Aktualizatora zanim nie zapoznają się Państwo z poniższą dokumentacją.

Instalacja Aktualizatora

Aby zainstalować Aktualizator systemu dLibra należy pobrać archiwum w wybranym formacie: dlibra-jnlp-updater.zip lub  dlibra-jnlp-updater.tar.gz. Umieścić jego zawartość w dowolnie wybranej lokalizacji na komputerze na którym zainstalowana jest dLibra.

Aktualizator jest aplikacją Javową wykorzystującą protokół JNLP. Przy pierwszym uruchomieniu, na dysk zostaną ściągnięte wszystkie wymagane biblioteki, każde kolejne uruchomienie spowoduje ściągnięcie już tylko ewentualnych zmian (poprawek) w Aktualizatorze, a nie całej aplikacji.

Po rozpakowaniu (a przed pierwszym uruchomieniem) w katalogu Aktualizatora powinny znajdować się następujące pliki:

jnlp-updater.bat
jnlp-updater.sh

Skrypty uruchamiające Aktualizator dla systemów Windows i Linux. W przypadku systemów Linuxowych należy pamiętać o wywołaniu polecenia chmod +x jnlp-updater.sh przed uruchomieniem skryptu.

netx.jar
NETX-LICENSE.TXT

Minimalistyczna implementacja protokołu JNLP pozwalająca na wykorzystanie tego protokołu niezależnie od Java Web Start firmy Sun Microsystems.

updater.properties

Konfiguracja aktualizatora (por. rozdział "Przed aktualizacją").

Przed aktualizacją

Informacje o nowych wydaniach systemu dLibra znajudją się tutaj.

W chwili gdy nowa wersja jest publikowana w repozytorium aktualizacji (patrz "Repozytorium oprogramowania dLibra") jest również uaktualniany kanał RSS. Po opublikowaniu nowej wersji systemu dLibra możemy rozpocząć proces aktualizacji. W tym celu należy uzupełnić wartości parametrów w pliku updater.properties oraz założyć konto w repozytorium oprogramowania dLibra. Proszę pamiętać, że wszystkie ścieżki do plików/katalogów powinny być zapisane przy użyciu "/" niezależnie od używanego systemu operacyjnego.

Plik updater.properties zawiera następujące parametry konfiguracyjne:

general.serverHomeDirectory -  katalog w którym zainstalowany jest serwer dLibry

general.webappHomeDirectory -  katalog w którym zainstalowana jest Aplikacja Czytelnika systemu dLibra.

general.target

Aktualizator może realizować dwa cele aktualizacji : server lub webapp. Tryb serwer uruchamia aktualizacje serwera (por. Aktualizacja Serwera) natomiast tryb webapp to aktualizacja Aplikacji Czytelnika (por. Aktualizacja Aplikacji Czytelnika).

webdav.url - Adres do Repozytorium oprogramowania dLibra

webdav.username i webdav.password  - Nazwa użytkownika i hasło pozwalające na dostęp do repozytorium oprogramowania dLibra.

Przed przeprowadzeniem właściwego procesu aktualizacji należy najpierw wykonać kopie zapasową obecnie zainstalowanej wersji systemu.

Zaleca się aby w pierwszej kolejności przeprowadzić aktualizacje serwera dLibry, a następnie zakualizować Aplikację Czytelnika.

System umożliwia aktualizację w ramach tej samej tzw. małej wersji, a także pomiędzy małymi wersjami. Na małą wersję składają się dwie pierwsze liczby numeru wersji. przykładowo małą wersją dla 6.1.0 jest 6.1. Aktualizacja w ramach małej wersji następuje automatycznie. Jeżeli chcemy zaktualizować system do innej małej wersji, np z 6.1 do 6.2, musimy przekazać do Aktualizatora parametr z żądaną wersją. Jeżeli dostępne są nowe wersje z samej oraz innej małej wersji to także musimy podać, którą wersję chcemy zainstalować.

Do wymuszenia aktualizacji do określonej wersji służy parametr updater.requestedVersion. Przykładowo, jeżeli posiadamy wersję 6.1.0 i chcemy uaktualnić system do wersji 6.2.0, to w pliku updater.properties umieszczamy następujący wpis:

updater.requestedVersion=6.2.0

Należy pamiętać, aby po aktualizacji usunąć ten wpis z pliku.

Proces aktualizacji pozwala na uaktualnienie pomiędzy dowolnymi wersjami, o ile oczywiście jest taka możliwość. W przypadku automatycznej aktualizacji w ramach tej samej małej wersji każdorazowe wywołanie Aktualizatora powoduje uaktualnienie do najnowszej wersji. Przykładowo: mając zainstalowaną wersję 6.0.11,  po jednym wywołaniu Aktualizatora serwer dLibry zostanie uaktualniony do najnowszej wersji, np 6.0.24.

Aktualizacja serwera dLibry

Proces aktualizacji serwera dLibry przebiega następująco:

  1.   Wykonać kopie zapasową obecnie zainstalowanej wersji serwera
  2.   Zakończyć działanie serwera dLibry (i serwera Tomcat)
  3.   W pliku updater.properties ustawić general.serverHomeDirectory oraz general.target na wartość server.
  4.   Wywołać skrypt uruchamiający Aktualizator odpowiedni dla zainstalowanego systemu operacyjnego

Po wywołaniu skryptu startowego rozpocznie się procesu aktualizacji. Jeżeli jest to pierwsze uruchomienie Aktualizator ściągnie najpierw "sam siebie", a następnie rozpocznie właściwy proces aktualizacji. Sam proces aktualizacji przebiega następująco:

  1.   Aktualizator ustala parametry serwera (Informacje te są pobierane głównie z bazy danych. Aktualizator korzysta z informacji branych z pliku database.properties serwera) :
    1. Które usługi są zainstalowane?
    2. Czy serwer działa?
    3. Jaka jest aktualnie zainstalowana wersja dLibry?  
  2. Czy w repozytorium są dostępne nowsze wersje?
    1. Jeżeli nie, kończy to pracę Aktualizatora.
  3. Aktualizator łączy się z repozytorium oprogramowania dLibra, gdzie znajdują się aktualizacje i ściąga stamtąd pliki niezbędne do przeprowadzenia aktualizacji.
  4. Sprawdzany jest stan serwera dLibry:
    1.  Jeżeli serwer dLibry jest uruchomiony, aktualizator będzie czekał, aż zostanie wyłączony.
    2. Jeżeli jest wyłączony przejdzie do kolejnego kroku aktualizacji.
  5. Usuwane są stare pliki, a na ich miejsce kopiowane nowe.
  6. Jeżeli zmiany w plikach wymagają interwencji osoby przeprowadzającej aktualizacje informacja o tym zostanie wypisana na konsole.
    1. dla każdego takiego pliku:
      1. stworzona zostanie kopia starego pliku z rozszerzeniem "fromVersion_x_x_x_" (gdzie x_x_x_ ) to stara wersja dLibry np. pages.xml.fromVersion_5_0_1_
      2. stary plik zostanie zastąpiony nowym
  7. Usuwane są pliki Aktualizacji ściągnięte do katalogu tymczasowego.
  8. Na koniec aktualizacji serwera wyświetlana jest informacja o tym, jakie pozostałe usługi serwera oraz Aplikacje Czytelnika trzeba jeszcze zaktualizować (w przypadku gdy serwer dLibry jest zainstalowany na więcej niż jednym komputerze proces aktualizacji trzeba powtórzyć dla każdej z nich).

Po zakończeniu działania Aktualizatora należy przejrzeć pliki, które zostały wskazane przez Aktualizator jako wymagające interwencji osoby przeprowadzającej aktualizacje. Gdy serwer został już uaktualniony do najnowszej wersji możemy przejść do Aktualizacji Aplikacji Czytelnika.

Aktualizacja Aplikacji Czytelnika systemu dLibra

Proces aktualizacji Aplikacji Czytelnika przebiega podobnie jak omówiona w poprzednim rozdziale aktualizacja serwera dLibry.

  1. Wykonać kopie zapasową obecnie zainstalowanej wersji Aplikacji Czytelnika.
  2. Wyłączyć Tomcata (o ile nie został jeszcze wyłączony)
  3. W pliku updater.properties ustawić general.webappHomeDirectory oraz general.target na wartość webapp.
  4. Wywołać skrypt uruchamiający Aktualizator odpowiedni dla zainstalowanego systemu operacyjnego

Proces aktualizacji przeprowadzany dla Aplikacji Czytelnika ma bardzo podobny przebieg z pominięciem pewnych kroków charakterystycznych dla serwera. Po zakończeniu procesu aktualizacji dla Serwera i Aplikacji Czytelnika możemy uruchomić system dLibra.

Aktualizacja Aplikacji Redaktora i Administratora

Po aktualizacji Aplikacji Czytelnika, wszystkie instalacje Aplikacji Redaktora i Administratora automatycznie zaktualizują się przy następnym uruchomieniu.

Najczęściej zadawane pytania

Co zrobić w przypadku gdy serwer dLibry działa na dwóch maszynach?

Jeżeli serwer dLibry działa na kilku serwerach, aktualizator należy zainstalować na każdym z komputerów, a sam proces aktualizacji powtórzyć dla każdej instancji serwera. Analogicznie należy postąpić w przypadku gdy aplikacja czytelnika jest zainstalowana na innej maszynie niż serwer dLibry.

updater.properties : parametry opcjonalne

server.checkRunning - Jeżeli parametr ten ma wartość false (domyślna wartość to true), aktualizator pominie etap sprawdzania, czy serwer jest uruchomiony. Ustawienie tej wartości na false może być pomocne, gdy chcemy zaktualizować kopie plików aplikacji czytelnika i serwera. Nie ma wtedy potrzeby wyłączania żadnego z elementów systemu dLibra, a po pomyślnym zakończeniu aktualizacji można zamienić stary plik na nowy.

delete.downloaded.patch - Domyślne zachowanie aktualizatora dla tego parametru reprezentuje wartość true. Oznacza ona, że aktualizator przed zakończeniem działania usunie tymczasowe pliki aktualizacji ściągnięte z repozytorium oprogramowania dLibra. Jeżeli chcemy zachować ściągniętą aktualizację, należy ustawić wartość false. Niezależnie od ustawienia tego parametru, katalog, do którego są sciągnięte aktualizacje, zostanie wyczyszczony przy kolejnym uruchomieniu aktualizatora.

general.tempDirectoryPath - Aktualizator domyślnie ściąga pliki do katalogu dLibraUpdater jest on tworzony w lokalizacji którą wskazuje zmienna systemowa java.io.tmp (jest to zmienna wirtualnej maszyny javy). W przypadku systemów linuxowych przważnie katalog ten odpowiada wartości zmiennej $TEMP. Aby zmodyfikować katalog, do którego zapisywane są aktualizacje, należy w pliku updater.properties dodać klucz general.tempDirectoryPath, a jako wartość podać żądany katalog.

  • No labels