Aktualizacja systemy Debian 9 Stretch do Debian 10 Buster

Debian 9 (Stretch) Debian 10 (Buster)
Domyślne PostgreSQL 10 11
PHP 7.0 7.3
Opcjonalne PostgreSQL 11 11
PHP 7.2 downgrade 7.2

Support dla Debian oraz PHP
Support dla Debian 10 https://wiki.debian.org/LTS/
Support dla PHP http://php.net/supported-versions.php

Poniższa instrukcja przedstawia sposób aktualizacji systemu operacyjnego Linux.

Przed przystąpieniem do prac BEZWZGLĘDNIE należy pamiętać o wykonaniu KOPI BEZPIECZEŃSTWA, całego systemu, bazy danych, katalogu /home/edokumenty.

1. Aktualizacja systemy w gałęzi Stretch, Debian 9

Zaczynamy od aktualizacji systemu w ramach gałęzi, której aktualnie się znajduje (tj. Stretch, Debian 9):

#apt-get update
#apt-get upgrade

Jeśli system nie był długo aktualizowany pewnie trzeba będzie uruchomić system ponownie ze względu na nowszą wersję jądra systemu.

#reboot

Przed aktualizacją dystrybucji wykonujemy kopię klików konfiguracyjnych

tar -pczf etc.tar.gz /etc 

2. Aktualizacja dystrybucji z Stretch na Buster, Debian 9 na Debian 10

Po aktualizacji systemu edytujemy plik /etc/apt/sources.list, zmieniamy dotychczasowe wpisy dla Stretch na Buster

deb http://httpredir.debian.org/debian buster main
deb http://httpredir.debian.org/debian buster-updates main
deb http://security.debian.org buster/updates main

Możemy również skorzystać z polecenia, który wykona zmiany

sed -i 's/stretch/buster/g' /etc/apt/sources.list

Sprawdź również do /etc/apt/sources.list.d/ czy nie posiadasz innych repozytoriów, które mogą wskazywać na Stretch. W naszym przypadku były trze dodatkowe listy dla:

sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/pgdg.list

deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main
sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/edokumenty.list
deb http://ftp.debian.org/debian buster-backports main
sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/php.list
deb https://packages.sury.org/php/ buster main

Następnym krokiem jest zaktualizowanie pakietów

apt-get update

oraz aktualizacja dystrybucji

apt-get dist-upgrade

W niektórych przypadkach aktualizacji dystrybucji systemu mogą pojawić się problemy z aktualizacją komponentów PHP. W tym przypadku należy usunąć link symboliczny do php.ini z /etc/php5/cli i przeniesienie php.ini z /etc/php5/apache2/. Po zakończonej aktualizacji i restarcie systemu ponownie tworzymy link symboliczny do php.ini. Wznowienie aktualizacji wykonujemy poleceniem

apt-get -f install

Po zakończonej aktualizacji wykonujemy restart systemu

reboot

3. Aktualizacja PostgreSQLa do wersji 10/11

Jeśli aktualizujemy Debiana z wersji 9 (Stretch) to prawdopodobnie będziemy już mieli zainstalowaną wersję PostgreSQL w wersji 10 lub 11. Jeśli jednak tak nie jest postępuje zgodnie z poniższa instrukcją.

Przystępujemy do aktualizacji PostgreSQLa do wersji 10/11. Po zainstalowaniu PostgreSQLa będą dostępne dwa klastry dla wersji 9.6/10 oraz wersji 10/11, odpowiednio na portach 5432 i 5433. Instalację przeprowadzamy za pomocą polecenia

Aktualizujemy dotyczący pakietów dla nowej wersji Debiana obecnie jest to buster

deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main
apt-get update
apt-get install postgresql-10

lub

apt-get install postgresql-11

Po zainstalowaniu PostgreSQL a przed odtworzeniem bazy należy pamiętać aby wgrać pliki tssearch_data dla wyszukiwarki.

wget http://support.edokumenty.eu/download/deployment/components/tsearch_data_polish_20120730.zip
unzip tsearch_data_polish_20120730.zip
cp tsearch_data_polish/* /usr/share/postgresql/[WERSJA_POSTGRESQL]/tsearch_data/

Po tych czynnościach możemy przystąpić do odtworzenia bazy danych

Możemy wykonać zrzut bazy z PostgreSQL na porcie 5432.

#su - postgres
$pg_dump -U edokumenty -f edokumenty_upgrade.sql edokumenty (polecenie zakłada że eDokumenty działają na bazie edokumenty i właścicielem bazy jest użytkownik edokumenty)

W nowym klastrze trzeba utworzyć użytkownika oraz bazę:

$createuser -p 5433   --no-superuser --no-createdb --no-createrole http
$createuser -p 5433   --no-superuser --no-createdb --no-createrole edokumenty
$createdb -p 5433 -E UTF8 edokumenty -O edokumenty

Następnie wrzucamy do serwera psql zrzut wykonany chwilę wcześniej:

$psql -p 5433 -U edokumenty -f edokumenty_upgrade.sql edokumenty

Następnym krokiem jest zatrzymanie PostgreSQL

/etc/init.d/postgresql stop

W pliku konfiguracyjnym zmieniamy porty dla PostgreSQL aby nowy działał na domyślnym porcie 5432 Starego PostgreSQL zmieniamy na 5433

vim /etc/postgresql/9.6/main/postgresql.conf 
port=5433

W konfiguracji nowego PostgreSQL zmieniamy na 5432

vim /etc/postgresql/10/main/postgresql.conf 
port=5432

W pliku konfiguracyjnym pg_hba.conf dla aktualnej wersji PostgreSQL dodajemy wpisy,

vim /etc/postgresql/10/main/pg_hba.conf

local edokumenty edokumenty md5
local edokumenty http       md5

Następnym krokiem jest uruchomienie PostgreSQL

/etc/init.d/postgresql start

Możemy również wykonać aktualizację clustra za pomocą poleceń opisanych w artykule Upgrade PostgreSQL