Upgrade da Debian Jessie a Stretch: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 33: Line 33:
* Aggiornare ad ultimi rilasci
* Aggiornare ad ultimi rilasci
  sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get clean
  sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get clean
* Se rimane bloccato su "Waiting for headers":
<pre>
sudo apt-get clean
cd /var/lib/apt
sudo mv lists lists.old
sudo mkdir -p lists/partial
sudo apt-get clean
sudo apt-get update
</pre>


==Pulizia Pacchetti==
==Pulizia Pacchetti==
Line 101: Line 111:
=Upgrade=
=Upgrade=
==Sistemazione fonti apt==
==Sistemazione fonti apt==
* Cambiare jessie in stretch in sources.lists
* La lista delle sorgenti deve essere a:
 
* Sostituire "jessie" con "'''stretch'''" in /etc/apt/sources.list
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list
 
* La lista delle sorgenti dovrebbe essere simile a:


  sudoedit /etc/apt/sources.list
  sudoedit /etc/apt/sources.list


<pre>
<pre>
deb http://ftp.it.debian.org/debian stretch main contrib non-free
deb [trusted=yes] http://archive.debian.org/debian     stretch         main contrib non-free
deb http://ftp.it.debian.org/debian stretch-updates main contrib non-free
deb http://security.debian.org stretch/updates main contrib non-free
</pre>
</pre>


Line 162: Line 165:
==Aggiornamento base==
==Aggiornamento base==


* Se zabbix è presente, aggiornare prima il release file:ù
* Se zabbix è presente, aggiornare prima il release file:
  if (dpkg -l zabbix-release > /dev/null 2>&1) ; then apt-get install zabbix-release; fi
  if (dpkg -l zabbix-release > /dev/null 2>&1) ; then apt-get install zabbix-release; apt-get update; apt-get install zabbix-agent; fi


* Durante gli aggiornamenti, prendere nota dei files di configurazione, e sostituirli con la nuova versione premendo '''Y'''
* Durante gli aggiornamenti, prendere nota dei files di configurazione, e sostituirli con la nuova versione premendo '''Y'''
Line 364: Line 367:
* Sistemare le permission della cache template:
* Sistemare le permission della cache template:
  cd /usr/share/postfixadmin
  cd /usr/share/postfixadmin
mkdir -p templates_c/
  chmod g+w templates_c/
  chmod g+w templates_c/
  chown :www-data templates_c
  chown :www-data templates_c


* Accedere alla pagina di setup per fare upgrade del DB (nons erve proseguire nel setup) https://myserver.example.priv/postfixadmin/setup.php
* Accedere alla pagina di setup per fare upgrade del DB (non serve proseguire nel setup) https://myserver.example.priv/postfixadmin/setup.php


==Php==
==Php==
Line 411: Line 415:


  sudo systemctl restart smb.service
  sudo systemctl restart smb.service
* Se si usa bind come DNS, occorre aggiornare le librerie da caricare:
sudoedit /var/lib/samba/private/named.conf
    # For BIND 9.9.x
    # database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so";
    # For BIND 9.10.x
    database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_10.so";
* Se il server Samba è un DOMAIN CONTROLLER AD, potrebbe essere necessario disabilitare i vecchi servizi:
systemctl mask winbind.service
systemctl mask smbd.service
systemctl mask nmbd.service
==Squid==
* Il pacchetto squid3 è stato sostituito da squid
* Sostiruire tutte le ricorrenze e spostare i files da
/etc/squid3 -> /etc/squid
/var/log/squid3 -> /var/log/squid
/var/spool/squid3 -> /var/spool/squid


==Systemd==
==Systemd==

Latest revision as of 11:40, 29 March 2024

NOTE IMPORTANTI

  • Se non è presente una regola corretta con il mac address in
/etc/udev/rules.d/70-persistent-net.rules
prima di eseguire l'aggiornamento, l'interfaccia di rete assumerà un nuovo nome, e non ci riuscirà più a collegare.
È molto importante verificare il file in questione, è forttemente consigliato eseguire subito al conversione come indicato in Upgrade da Debian Stretch a Buster#Cambiamento nomi interfacce ethernet
  • Attenzione a PHP: rimuovere dopo l'upgrade tutti i vecchi pacchetti php5, assicurandosi di installare i corrispondenti con php7
  • Assicurarsi che il modulo php7.0 sia attivato in apache
  • MYSQL è stato sostituito da MARIADB: verificare che parta al boot.


Preparazione

  • Avviare screen
  • Registrare la sessione:
script -t 2>~/upgrade-stretch.time -a ~/upgrade-stretch.script

Backup del Sistema

Come sempre ...

  • Fare una copia di comodo locale della etc:
sudo mkdir -p /files; sudo tar --exclude=.svn  --exclude=.git -cvf /files/etc-jessie.tar /etc
  • Fermare cfengine o puppet, se attivi
sudo systemctl stop cfengine2
sudo systemctl stop puppet
sudo puppet agent --disable

Aggiornamento Jessie

  • Aggiornare ad ultimi rilasci
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get clean
  • Se rimane bloccato su "Waiting for headers":
sudo apt-get clean
cd /var/lib/apt
sudo mv lists lists.old
sudo mkdir -p lists/partial
sudo apt-get clean
sudo apt-get update 

Pulizia Pacchetti

  • Rimuovere manualmente i pacchetti non più necessari
  • Rimuovere i pacchetti che non hanno dipendenze necessarie:
if [ ! -e /usr/bin/deborphan ]; then sudo apt-get install deborphan; fi
if [ -z "$(deborphan)" ]; \
  then \
      echo "Nothing to Remove"; \
  else \
     sudo apt-get remove --purge $(deborphan)
fi
sudo apt-get --purge  autoremove
  • Nel caso l'autoremove voglia rimuovere pacchetti che in realtà si vogliono tenere, marcarli come installati manualemente
sudo apt-mark unmarkauto packagename
  • Ripetere
sudo apt-get --purge  autoremove
  • Rimuovere le configurazione dei pacchetti disinstallati:
 if [ -z "$(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' ')" ]; \
  then \
      echo "Nothing to Purge"; \
  else \
      sudo dpkg --purge $(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' '); \
fi
  • Rimuovere eventuali vecchie configurazioni:
cd /etc
sudo etckeeper commit -m "Pre remove dpkg old"
sudo git rm $(sudo find . -name \*.dpkg-dist)
sudo git rm $(sudo find . -name \*.dpkg-old)
sudo git rm $(sudo find . -name \*.dpkg-new)
sudo git rm $(sudo find . -name \*.ucf-old)
sudo git rm $(sudo find . -name \*.ucf-new)
sudo rm $(sudo find . -name \*.dpkg-dist)
sudo rm $(sudo find . -name \*.dpkg-old)
sudo rm $(sudo find . -name \*.dpkg-new)
sudo rm $(sudo find . -name \*.ucf-old)
sudo rm $(sudo find . -name \*.ucf-new)
sudo etckeeper commit -m "Removed dpkg old"
  • Verificare se ci sono pacchetti in hold o marcati per la rimozione. Se ci sono holds, disabilitarli:
sudo dpkg --audit
sudo aptitude search "~ahold" 
sudo dpkg --get-selections | grep 'hold$'
  • To unset the “hold” state:
echo package_name install | sudo dpkg --set-selections

Upgrade

Sistemazione fonti apt

  • La lista delle sorgenti deve essere a:
sudoedit /etc/apt/sources.list
deb [trusted=yes] http://archive.debian.org/debian      stretch         main contrib non-free
  • Sostituire, se presenti, le sorgenti backports con
deb     http://mirrors.kernel.org/debian stretch-backports main contrib
deb-src http://mirrors.kernel.org/debian stretch-backports main contrib


  • Se sono presenti fonti agguntive, verificare se è necessario aggiornarle (virtualbox, per webmin, rimane ancora valido sarge)
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list.d/*
tail -n+1 /etc/apt/sources.list.d/*

Scaricamento pacchetti

  • Aggiornare le nuove fonti APT:
sudo apt-get update
  • Scaricare i pacchetti necessari:
sudo apt-get dist-upgrade -d


Aggiornamento APT

sudo apt-get install apt

Aggiornamento Kernel

  • Installare i firmware non free per ogni hardware che li necessita :
sudo apt-get install firmware-linux firmware-linux-nonfree firmware-realtek
  • Identificare i kernel installati
dpkg -l "linux-image*" | grep ^ii
  • Identificare il kernel in uso
uname -r
  • Installare la versione più recente nel caso di kernel standard, oppure quello adeguato:
sudo apt-get install linux-image-amd64
oppure:
sudo apt-get install linux-image-686-pae
  • Assicurarsi che grub si installi correttamente. In particolare se la root è su un volume RAID, installarlo su ogni DISCO fisico:
sudo grub-install --recheck /dev/sda;  sudo grub-install --recheck /dev/sdb;

Aggiornamento base

  • Se zabbix è presente, aggiornare prima il release file:
if (dpkg -l zabbix-release > /dev/null 2>&1) ; then apt-get install zabbix-release; apt-get update; apt-get install zabbix-agent; fi
  • Durante gli aggiornamenti, prendere nota dei files di configurazione, e sostituirli con la nuova versione premendo Y
  • Aggiornare i pacchetti che non richiedono rimozioni, oppure proseguire con i singoli:
sudo apt-get upgrade

Aggiornamento restanti pacchetti

  • Aggiornare gli altri pacchetti:
sudo apt-get dist-upgrade
  • Se rimangono dei pacchetti held back, aggiornarli usando ancora
sudo apt-get dist-upgrade

oppure

sudo apt-get -f install package

oppure, VERIFICANDO le eventuali rimozioni proposte

sudo apt-get dist-upgrade


Sistemazione files di configurazione

  • Fare il merge dei vecchi settaggi nei nuovi files di configurazione
sudo vimdiff /etc/cfgfile.dpkg.old /etc/cfgfile
  • Rilanciare dist-upgrade per terminare configurazione
 sudo apt-get dist-upgrade

Preparazione al riavvio

  • Rimuovere i pacchetti non necessari
sudo apt-get autoremove --purge
  • Rimuovere i pacchetti che non hanno dipendenze necessarie:
if [ ! -e /usr/bin/deborphan ]; then sudo apt-get install deborphan; fi
if [ -z "$(deborphan)" ]; \
  then \
      echo "Nothing to Remove"; \
  else \
     sudo apt-get remove --purge $(deborphan)
fi


  • Ora è installato systemd, quindi il riavvio va fatto con
sudo systemctl reboot
  • Testare il tutto dopo il riavvio
  • Rimuovere i vecchi pacchetti:
sudo apt-get remove --purge $(dpkg -l | grep deb8 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep deb7 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep deb6 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep jessie | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep wheezy | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep squeeze | tr -s ' '| cut -f 2 --delimiter=' ')
  • Rimuovere le configurazione dei pacchetti disinstallati:
if [ -z "$(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' ')" ]; \
 then \
     echo "Nothing to Purge"; \
 else \
     sudo dpkg --purge $(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' '); \
fi

Note per pacchetti specifici

  • VEDI NOTE IMPORTANTI ALL'INIZIO

Bind

  • Su un server SLAVE, se ci sono view, in cui si include due volte un file di configurazione che contiene zone slave, bind non parte, con l'errore:
Writeable file already in use
  • Occorre rimuovere la doppia include, perchè questo è sempre statu un errore.

Riferimenti

dovecot

  • Il protocollo SSLv2 è totalmente deprecato. Quindi se lo si è escluso nel file di configurazione, bisogna rimuoverlo, perchè non ha riferimento:
vi /etc/dovecot/conf.d/10-ssl.conf
ssl_protocols = !SSLv3
  • Abilitare la dovecot socket se si usa lmtp:
systemctl enable dovecot.socket
systemctl restart dovecot.socket
systemctl status dovecot.socket
systemctl restart dovecot.service
systemctl status dovecot.service

Riferimenti

  • [Solved - Dovecot: Invalid ssl_protocols setting: Unknown protocol / Networking, Server, and Protection / Arch Linux Forums]

isc-dhcp-server

  • Bisogna specificare le interfacce di default specificando quale protocollo usare. Se non si usa IPv6, occorre forzare la sola modalità v4:
sudoedit /etc/default/isc-dhcp-server
INTERFACESv4="eth0"
sudo killall dhcpd && sudo rm /var/run/dhcpd.pid
sudo systemctl restart isc-dhcp-server.service
sudo systemctl status isc-dhcp-server.service  -l

monitoring-plugins-basic

  • Se non si usa sudo per i check nrpe, ricordarsi di impostare setuid sui check, ad esempio:
sudo chmod +s /usr/lib/nagios/plugins/check_ide_smart
sudo -u nagios /usr/lib/nagios/plugins/check_ide_smart /dev/sda

mysql

  • Mysql è stato sostituito da Mariadb. Verificare che i servizi partano.

nrpe

  • Il plugin chec_nrpe di stretch v3 non è compatibile con quello v2 di jessie. PEr farlo funzionare, occorre disabilitare ssl.
  • Lato stretch, usare il plugin check_nre con l'opzione '-n'
/usr/lib/nagios/plugins/check_nrpe -n -H 1.2.3.4 -c my-check
  • Lato Jessie, assicurarsi di eseguire il server NRPE con SSL disabilitato:
vi /etc/default/nagios-nrpe-server
NRPE_OPTS="-n"
systemctl restart nagios-nrpe-server.service

Riferimenti

Openvpn

  • Aggiornare la CRL con scadenza corretta, o se non la si usa, commentare la riga con
crl-verify
  • Rimuovere il parametro deprecato:
tls-remote

Owncloud

  • Migrare a php7
  • Se è impostato, rimuovere ils ettaggio php-apcu:
cd /var/www/owncloud
vi config/config.php
#'memcache.local' => '\\OC\\Memcache\\APC',
  • Lanciare upgrade:
sudo -u www-data ./occ upgrade
  • Impostare il nuvo cronjob:
vi /etc/cron.d/owncloud
*/15  *  *  *  * www-data	cd /var/www/owncloud/ && /usr/bin/php occ system:cron 


Riferimenti

  • If you’re using System cron to trigger background job execution, there is a new occ command (occ system:cron) which executes the background jobs. To make use of it, you have to change the entry in crontab. Instead of executing cron.php (e.g., /usr/bin/php -f /path/to/your/owncloud/cron.php), cron should use occ system:cron (e.g., sudo -u www-data php occ system:cron). As a fallback, cron.php will continue to work with Server 10.3 but will be removed in a later version.
Release Notes :: ownCloud Documentation

Postfix

 Starting with postfix 3.0, Debian's custom dynamically loadable module
 support has been replaced with a new upstream implementation.  To support
 this change, some files in /etc/postfix required updates.  If prompted
 during install to accept or reject changes, take care not to reject changes
 due to the new configuration.  Failure to do so may lead to a non-working
 system.
 Starting with Debian 9, Codename Stretch, postfix is shipped with a systemd
 unit file for native systemd integration (the old sysv init script is also
 provided for non-systemd deployments).  Manipulation of Postfix instances
 using the new unit files is described in README.Debian.

Postfixadmin

  • Modificare la tipologia di database mysql per suipportare php7:
 vi  /etc/postfixadmin/dbconfig.inc.php
$dbtype='mysqli';
  • Sistemare le permission della cache template:
cd /usr/share/postfixadmin
mkdir -p templates_c/
chmod g+w templates_c/
chown :www-data templates_c

Php

  • Occorre migrare tutto a php7
  • Utilizzare questo script che installa i corrispondenti pacchetti php7 e rimuove i php5:
#!/bin/bash
PHP5=$(dpkg -l | grep php5 | grep '^ii' | tr -s ' ' | cut -f 2 --delimiter=' ')

for PKG in $PHP5
do
        echo Checking $PKG
        PHP7=$(echo $PKG | sed -e 's/php5/php7.0/g')
        echo Checking $PHP7

        if (dpkg -l $PHP7 > /dev/null 2>&1)
        then
                echo $PHP7 is installed, removing $PKG
                apt-get remove --purge $PKG
        else
                echo $PHP7 is not installed. Installing it.
                if (apt-get install $PHP7)
                then
                        echo $PHP7 installed, removing $PKG
                        apt-get remove --purge $PKG
                fi
        fi
        echo "---------------------------------------------------------------------------"
done
a2enmod php7.0
systemctl restart apache2

samba

  • ATTENZIONE: I DOMAIN CONTROLLER WINDOWS 2000 NON RIESCONO PIÙ A CONTATTARE IL PDC SAMBA
  • Di default è disabilitata l'autenticazione ntlm: questo impedisce ai client precedenti a seven (windows xp e windows 2000), di accedere. Per far accedere WINDOWS XP:
sudoedit /etc/samba/smb.conf
ntlm auth = yes
sudo systemctl restart smb.service
  • Se si usa bind come DNS, occorre aggiornare le librerie da caricare:
sudoedit /var/lib/samba/private/named.conf
   # For BIND 9.9.x
   # database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so";
   # For BIND 9.10.x
   database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_10.so";
  • Se il server Samba è un DOMAIN CONTROLLER AD, potrebbe essere necessario disabilitare i vecchi servizi:
systemctl mask winbind.service 
systemctl mask smbd.service 
systemctl mask nmbd.service

Squid

  • Il pacchetto squid3 è stato sostituito da squid
  • Sostiruire tutte le ricorrenze e spostare i files da
/etc/squid3 -> /etc/squid
/var/log/squid3 -> /var/log/squid
/var/spool/squid3 -> /var/spool/squid

Systemd

  • non funziona più
/etc/rc.local
  • Se ci sono vecchi script init.d, cercare di convertirli in unit systemd, altrimenti assicurarsi che vadano in rc2.d/ - rc5.d/

Riferimenti

  • systemd (231-1) unstable; urgency=low
  This version drops support for running /etc/rcS.d SysV init scripts.
  These are prone to cause dependency loops, and almost all Debian packages
  with rcS scripts now ship a native systemd service. If you have custom or
  third-party rcS scripts you need to convert them or change them to run
  in rc2.d/ - rc5.d/; see this page for details:
  https://wiki.debian.org/Teams/pkg-systemd/rcSMigration