Instalacja serwera baz danych PostgreSQL ze źródeł i pierwsze uruchomienie Kroki wstępne 1. Uruchamiamy wcześniej utworzoną maszynę wirtualną 2. Po uruchomieniu systemu ukaże się ekran logowania: 3. Logujemy się jako root 4. Po zalogowaniu znajdziemy się katalogu domowym użytkownika root ( znak zachęty wskazujący na katalog domowy: ~ ):
Pobieramy i wypakowujemy źrodła PostgreSQL 9.5.4 1. Aby pobrać źródła serwera baz danych, musimy najpierw odnaleźć link, który wskazuje na paczkę ze źrodłami 2. Odwiedzamy oficjalną stronę PostgreSQL: https://www.postgresql.org/ 3. Klikamy w odnośnik Download: 4. Dalej w sekcji Source Code - klikamy w odnośnik file browser:
5. Wersja 9.5.4: 6. Archiwum, które nas interesuje to postgresql-9.5.4.tar.gz:
7. Kopiujemy adres odnośnika i zapisujemy go w dowolnym miejscu, dowolnym edytorze. 8. W maszynie wirtualnej wywołujemy narzędzie wget służące do pobierania plików z sieci, jako argument podajemy adres do archiwum z kodem źródłowym, który przed chwilą zapisaliśmy: 9. Zatwierdzamy klawiszem Enter, czekamy aż plik się pobierze:
10. Do wypakowania archiwum posłuży narzędzie tar służące do obsługi archiwów typu tar - tarball. Jako pierwszy argument podajemy serię znaków (switchy): x - Extract - Wskazujemy, że narzędzie ma wypakować archiwum v - Verbose - Tryb "głośny" - wypisuje kolejne pliki, które są obecnie wypakowywane f - file - Służy do wskazania na urządzenie lub plik z archiwum z -- gzip - Archiwum z kompresją gzip (rozszerzenie naszego archiwum tar.gz wskazuje na kompresję gzip) Jako drugi argument podajemy nazwę archiwum ze źródłami PostgreSQL. Po wpisaniu kilku pierwszych znaków - np. post - możemy użyć klawisza Tab, który wywołuje autouzupełnianie 11. Po wypakowaniu archiwum, możemy przejść do katalogu postgresql-9.5.4 wywołując polecenie cd, jako argument
podajemy nazwę katalogu i zatwierdzamy klawiszem Enter. Kilka przykładów: cd ~ przejście do katalogu domowego cd../ przejście do katalogu nadrzędnego cd./katalog przejście do katalogu podrzędnego cd /etc/ przejście do konkretnie wskazanej ścieżki Przygotowania przed skompilowaniem kodu źródłowego 1. Zanim będziemy mogli skompilować kod źródłowy musimy zaopatrzyć nasz system w narzędzie deweloperskie, które posłużą do kompilacji oraz dodatkowe biblioteki i narzędzia (lub też ich źródła/nagłówki) - potrzebne do skompilowania bazy PostgreSQL 2. Aktualizujemy listę pakietów dostępnych w repozytoriach poleceniem apt-get update
3. Zainstalujemy pakiet build-essential wywołując polecenie apt-get install build-essential Pakiet build-essential to metapakiet, wraz z którym instalowane są podstawowe biblioteki i narzędzia potrzebne do kompilowania programów. Informacje na temat pakietu build-essential: https://packages.debian.org/pl/jessie/build-essential
Wpisujemy y aby potwierdzić i naciskamy Enter aby rozpocząć instalowanie
4. Instalujemy pakiety niezbędne do kompilacji PostgreSQL: apt-get install libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt-dev libssl-dev Opis użycia powyższych bibliotek przez PostgreSQL jest dostępny pod adresem https://www.postgresql.org/docs/current/static/install-requirements.html Opisy konkretnych pakietów można znaleźć na stronie Debiana: libreadline-dev https://packages.debian.org/pl/jessie/libreadline-dev zlib1g-dev https://packages.debian.org/pl/jessie/zlib1g-dev flex https://packages.debian.org/pl/jessie/flex bison https://packages.debian.org/pl/jessie/bison
libxml2-dev https://packages.debian.org/pl/jessie/libxml2-dev libxslt-dev https://packages.debian.org/pl/jessie/libxslt-dev libssl-dev https://packages.debian.org/pl/jessie/libssl-dev 5. Po zatwierdzeniu polecenia ukaże nam się ekran podobny do poniższego: 6. Wpisujemy y, zatwierdzamy klawiszem Enter i czekamy na ukończenie instalacji Etap kompilacji 1. Uruchamiamy skrypt konfiguracyjny znajdujący się w katalogu postgresql-9.5.4:./configure
2. Przeprowadzamy kompilację kodu wywołując polecenie make
3. Czekamy aż kompilacja zostanie ukończona
Sprawdzanie poprawności kompilacji (test przed instalacją) 1. Testy musimy uruchomić jako zwykły użytkownik (nie zadziałają na koncie roota) 2. Dodajemy nowego użytkownika db_test wykonując polecenie adduser db_test Podajemy hasła i zatwierdzamy: Pozostałe pola możemy zostawić puste:
Potwierdzamy wpisując y i zatwierdzając klawiszem Enter. 3. Tworzymy katalog postgres w katalogu domowym użytkownika db_test: mkdir /home/db_test/postgres
4. Kopiujemy zawartość katalogu postgres-9.5.4 do /home/db_test/postgres: cp -r./* /home/db_test/postgres/ switch r oznacza kopiowanie rekursywne gwiazdka w ścieżce źródłowej to "wildcard" na dowolny plik/katalog 5. Zmieniamy właściciela katalogu /home/db_test/postgres na użytkownika db_test: chown -R db_test:db_test /home/db_test/postgres/ switch R oznacza zmianę uprawnień rekursywnie składnia: użytkownik:grupa - db_test:db_test
6. Przełączamy się na użytkownika db_test: su db_test 7. Przechodzimy do katalogu postgres znajdującego się w katalogu domowych użytkownika db_test: cd ~/postgres
8. Ponownie uruchamiamy skrypt konfiguracyjny aby ustalić ścieżki na obecnego użytkownika:./configure 9. Uruchamiamy testy poleceniem make check i czekamy na potwierdzenie poprawności naszej kompilacji:
Instalacja 1. Wracamy na konto roota. Wylogowanie z obecnie używanego konta można wywołać skrótem klawiszowym Ctrl+D. 2. Przechodzimy do katalogu /home/db_test/postgres poleceniem: cd /home/db_test/postgres 3. Instalujemy kompilację poleceniem make install
Kroki po instalacji 1. Dodajemy nowe konto - użytkownika serwera baz danych: adduser db_user 2. Przełączamy się na konto użytkownika db_user: su db_user
3. Przechodzimy do katalogu domowego użytkownika: cd ~ 4. Edytujemy plik.bashrc: nano.bashrc
5. Aby użytkownik mógł swobodnie korzystać z programów zawartych w PostgreSQL, w jego profilu musi znaleźć się odwołanie do ścieżki, w której się one znajdują. Do edytowanego pliku musimy dodać na samym końcu linie: PATH=/usr/local/pgsql/bin:$PATH export PATH
Zapisujemy zmiany w pliku poprzez kombinację Ctrl+O i potwierdzamy klawiszem Enter. Wychodzimy z edytora kombinacją Ctrl+X. 6. Wylogowujemy się z konta skrótem Ctrl+D i ponownie logujemy poleceniem: su db_user
7. Sprawdzamy czy ścieżki dodane w punkcie 5. zostały zainicjowane: echo $PATH Kroki administracyjne 1. Wracamy na konto roota skrótem Ctrl+D 2. Zmieniamy właściciela katalogu /usr/local/pgsql na użytkownika db_user: chown db_user /usr/local/pgsql/
3. Logujemy się ponownie na konto użytkownika db_user: su db_user 4. Wracamy do katalogu domowego: cd ~
5. Tworzymy klaster baz danych: initdb -D /usr/local/pgsql/data/
6. Uruchamiamy serwer: pg_ctl -D /usr/local/pgsql/data -l logfile start 7. Sprawdzamy czy serwer się uruchomił podglądajać plik z logiem: cat logfile
Oraz sprawdzając czy serwer postgres znajduje się na liście działających procesów: ps -a grep postgres 8. Próbujemy zalogować się do interaktywnego terminalu PostgreSQL: psql Dostaniemy błąd o braku bazy danych o nazwie db_user.
9. Tworzymy bazę danych db_user: createdb db_user 10. Ponownie próbujemy zalogować się do interaktywnego terminalu PostgreSQL: psql Tym razem udało się:
11. Podstawowa instalacja i uruchomienie zostało wykonane poprawnie :)