Upgrade di Debian da Wheezy a Jessie

From RVM Wiki
Revision as of 13:10, 8 January 2016 by Gabriele.vivinetto (talk | contribs) (Created page with "=Preparazione= * Avviare screen * Registrare la sessione: script -t 2>~/upgrade-jessie.time -a ~/upgrade-jessie.script ==Backup del Sistema== Come sempre ... * Fare una c...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Preparazione

  • Avviare screen
  • Registrare la sessione:
script -t 2>~/upgrade-jessie.time -a ~/upgrade-jessie.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.tar /etc
  • Fermare cfengine o puppet, se attivi
sudo invoke-rc.d cfengine2 stop
sudo invoke-rc.d puppet stop

Aggiornamento Wheezy

  • Aggiornare ad ultimi rilasci
sudo apt-get update
sudo apt-get dist-upgrade

Pulizia Pacchetti

  • Rimuovere i pacchetti non 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 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

  • Cambiare wheezy in jessie in sources.lists
  • Sostituire "wheezy" con "jessie" in /etc/apt/sources.list
sudo sed -i 's/wheezy/jessie/g' /etc/apt/sources.list
  • La lista delle sorgenti dovrebbe essere simile a:
sudoedit /etc/apt/sources.list
deb http://ftp.it.debian.org/debian	wheezy			main contrib non-free
deb http://ftp.it.debian.org/debian	wheezy-updates	main contrib non-free
deb	http://security.debian.org		wheezy/updates	main contrib non-free

#deb-src	http://ftp.it.debian.org/debian/	wheezy	main non-free contrib
#deb-src http://security.debian.org/ wheezy/updates main contrib non-free
#deb-src http://ftp.it.debian.org/debian wheezy-updates main contrib non-free
  • Sostituire, se presenti, le sorgenti backports con
deb     http://mirrors.kernel.org/debian wheezy-backports main contrib
deb-src http://mirrors.kernel.org/debian wheezy-backports main contrib


  • If you have listed the proposed-updates section in your /etc/apt/sources.list file, you should remove it from that file before attempting to upgrade your system. This is a precaution to reduce the likelihood of conflicts.
  • Se sono presenti fonti agguntive, verificare se è necessario aggiornarle (virtualbox, per webmin, rimane ancora valido sarge)
ls /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 apt-listchanges

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
  • Kernel flavor selection: Debian's 686 kernel configuration has been replaced by the 686-pae.
You can check whether your computer has PAE by running. If it does not (i.e. the command outputs no), you should install linux-image-486 and then remove linux-image-686 and/or linux-image-2.6-686 if they are currently installed.
grep -q '^flags.*\bpae\b' /proc/cpuinfo && echo sudo apt-get install linux-image-686 || echo sudo apt-get install linux-image-486


  • 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
  • Assicurarsi che grub si installi correttamente. In particolare se la root è su un volume RAID, installarlo su ogni DISCO fisico, non con sudo grub-install /dev/md0 ma con
sudo grub-install --recheck /dev/sda;  sudo grub-install --recheck /dev/sdb; 

Aggiornamento base

  • Aggiornare i pacchetti che non richiedono rimozioni, oppure proseguire con i singol:
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


Note per pacchetti specifici

Bind9

ATTENZIONE: se la risoluzione dei nomi dns in locale fallisce (esempio per domini .local) occorre rimuovere il valore

mdns4_minimal [NOTFOUND=return]

nel file

sudoedit /etc/nsswitch.conf
hosts:          files dns mdns4

Vsftpd

  • Attenzione: se è attivo il
chroot_local_user=YES
  • La home directory NON deve essere scrivibile, altrimenti il login darà un errore tipo:
500 OOPS: Vsftpd: Refusing to Run With Writable Root Inside Chroot (
  • Se non si vuole cambiare le permission dell ahome directory, occorre *installare il backport versione 3.x.x* ed abilitare l'opzione
allow_writeable_chroot=YES

Riferimenti

Samba

Se dopo la migrazione, si perdono TUTTI i gruppi windows, provare come segue

  • Verificare che il file attuale sia errato:
sudo tdbdump  /var/lib/samba/group_mapping.tdb


...
{
key(25) = "DN=@INDEX:GIDNUMBER:1064\00"
data(101) = "g\19\01&\01\00\00\00@INDEX:GIDNUMBER:1064\00@IDX\00\01\00\00\009\00\00\00rid=3129,domain=S-1-5-21-2127181584-2096053586-1845911597\00"
}
{
key(64) = "DN=@INDEX:MEMBER:S-1-5-21-2127181584-2096053586-1845911597-3186\00"
data(106) = "g\19\01&\01\00\00\00@INDEX:MEMBER:S-1-5-21-2127181584-2096053586-1845911597-3186\00@IDX\00\01\00\00\00\17\00\00\00rid=544,domain=S-1-5-32\00"
}
  • Invece questo è nel formato giusto:
{
key(57) = "UNIXGROUP/S-1-5-21-2127181584-2096053586-1845911597-1023\00"
data(18) = "\A0\04\00\00\02\00\00\00Database\00\00"
}
{
key(57) = "UNIXGROUP/S-1-5-21-2127181584-2096053586-1845911597-1217\00"
data(12) = "\01\04\00\00\02\00\00\00QA\00\00"
}
{
key(57) = "UNIXGROUP/S-1-5-21-2127181584-2096053586-1845911597-3127\00"
data(15) = "'\04\00\00\02\00\00\00QA_RO\00\00"
}
{
key(57) = "UNIXGROUP/S-1-5-21-2127181584-2096053586-1845911597-3121\00"
data(15) = "$\04\00\00\02\00\00\00SOP_R\00\00"
  • Infatti
sudo net groupmap list
[empty]
  • Ora, stoppiamo samba
sudo invoke-rc.d samba stop
  • Facciamo una copia
sudo cp -rv /var/lib/samba/* /tmp
  • Rimuoviamo il file errato:
sudo rm group_mapping.tdb
  • Rinominiamo quello da convertire:
sudo mv group_mapping.ldb.replaced group_mapping.ldb
  • Riavviamo samba
sudo invoke-rc.d samba start
  • Verifichiamo che il file sia stato convertito col nuovo nome:
ls /var/lib/samba/group_mapping.tdb
  • E verificare che il contenuto sia nel formato corretto:
sudo tdbdump /var/lib/samba/group_mapping.tdb
key(23) = "UNIXGROUP/S-1-5-32-551\00"
data(77) = "\02\00\00\00\05\00\00\00Backup Operators\00! Members can bypass file security to back up files\00"
}
{
key(23) = "UNIXGROUP/S-1-5-32-545\00"
data(49) = "d\00\00\00\05\00\00\00Users\00Ordinary users (Used for Auditing)\00"
}
{
key(57) = "UNIXGROUP/S-1-5-21-2127181584-2096053586-1845911597-1023\00"
data(18) = "\A0\04\00\00\02\00\00\00Database\00\00"
}
{
key(57) = "UNIXGROUP/S-1-5-21-2127181584-2096053586-1845911597-1217\00"
data(12) = "\01\04\00\00\02\00\00\00QA\00\00"
}
{
key(57) = "UNIXGROUP/S-1-5-21-2127181584-2096053586-1845911597-3127\00"
data(15) = "'\04\00\00\02\00\00\00QA_RO\00\00"
}
{
key(57) = "UNIXGROUP/S-1-5-21-2127181584-2096053586-1845911597-3121\00"
data(15) = "$\04\00\00\02\00\00\00SOP_R\00\00"
}

Dovrebbe ricreare un group_mapping.tdb con i gruppi

sudo net groupmap list

...
Domain Guests (S-1-5-21-2127181584-2096053586-1845911597-514) -> nogroup
Domain Admins (S-1-5-21-2127181584-2096053586-1845911597-512) -> root
Technician (S-1-5-21-2127181584-2096053586-1845911597-1048) -> Technician
Account Operators (S-1-5-32-548) -> sys
...

Riferimenti

  • [Samba group mapping... Ldb file?]
  • Answer : [Samba So no conversion from group_mapping.ldb to group_mapping.tdb?]

Rsyslog

  • Verificare che il logging funzioni, altrimenti occorre installare rsyslog al posto di syslog (questo accade se l'installazione è upgradata da woody)
sudo apt-get install rsyslog

Amanda

  • Amanda ora funziona con l'autenticazion bsdtcp di default
  • Occorre modificare la confgurazione inetd come segue:
sudoedit /etc/inetd.conf 
amanda  stream  tcp     nowait  backup  /usr/lib/amanda/amandad amandad -auth=bsdtcp amdump amindexd amidxtaped
  • Riavviare inetd:
sudo invoke-rc.d openbsd-inetd restart
  • Sul server testare la comunicazione
sudo -u backup amcheck DailySet1
  • Se il server è ancora Squeeze, occorre forzare l'autenticazione bsdtcp nel dumtype:
sudoedit /etc/amanda/DailySet1/amanda.conf 
...
define dumptype always-full {
    global
    auth "bsdtcp"
...
  • Applicare anche sul server le stesse modifiche ad inet.conf

Riferimenti

Dovecot

  • La configurazione è totalmente cambiata, e la precedente non è utilizzabile, ne migrabile.
  • Innanzitutto linkare i certificati ssl precedenti qui:
sudo ln -s  /etc/ssl/certs/dovecot.pem /etc/dovecot/dovecot.pem
sudo ln -s  /etc/ssl/private/dovecot.pem /etc/dovecot/private/dovecot.pem
  • Abilitare la plaintext auth:
cd /etc/dovecot/conf.d
sudoedit 10-auth.conf 
disable_plaintext_auth = no
  • Impostare la mailbox Maildir:
cd /etc/dovecot/conf.d
sudoedit 10-mail.conf 
mail_location = maildir:~/Maildir
  • Se si vuole anche mantenere la retrocompatibilità con courier-imap:
namespace inbox {
  prefix = INBOX.
  • Riavviare Dovecot
sudo invoke-rc.d dovecot restart

Riferimenti

Sudo

  • Aggiungere il proprio utente al gruppo sudo
sudo gpasswd -a mnt.vvngrl sudo
  • Attivare subito l'appartenenza al gruppo senza bisogno di riloggarsi
newgrp sudo
  • Verificare l'appartenenza
groups
sudo mnt.vvngrl
  • Copiare il sudoers originale in /tmp
sudo cp /etc/sudoers /tmp
  • Aprire una sessione di root per sicurezza in un'altra sessione screen
sudo -i
  • Sovrascrivere sudoers con la versione rilasciata
sudo cp /etc/sudoers.dpkg-dist /etc/sudoers
  • Verificare di avere i diritti di root:
sudo ls
  • Riportare le customizzazioni nel vecchio sudoers copiandole in
sudo visudo -f /etc/sudoers.d/10-custom

Suhosin PHP module

The php5-suhosin package has been removed. If your PHP configuration included the suhosin module, it will fail to load after the PHP upgrade. Run

sudo apt-get remove --purge php5-suhosin; sudo dpkg --purge php5-suhosin

to remove the leftover configuration or remove the file manually

sudo git rm /etc/php5/conf.d/suhosin.ini.

Temporary filesystems

In previous releases, temporary (tmpfs) filesystems were mounted on /lib/init/rw, /dev/shm/ and optionally on /var/lock and /var/run. /lib/init/rw has been removed, and the others have been moved under /run. /var/run and /var/lock were configured using RAMRUN and RAMLOCK in /etc/default/rcS. All these tmpfs filesystems are now configurable using /etc/default/tmpfs; the old settings are not migrated automatically. Old location New location Old setting New setting

	 	/etc/default/rcS	/etc/default/tmpfs

/lib/init/rw /run N/A N/A /var/run /run RAMRUN N/A /var/lock /run/lock RAMLOCK RAMLOCK /dev/shm /run/shm N/A RAMSHM N/A /tmp N/A RAMTMP

The migration of data to the new locations will occur automatically during the upgrade and will continue to be available at the old and new locations, with the exception of /lib/init/rw. No action is required on your part,

Request Tracker versions

If you have request-tracker3.8 installed on your squeeze system, note that this package has been removed from wheezy, to be replaced by request-tracker4. Some manual steps are required to upgrade between request-tracker3.8 and request-tracker4: please install request-tracker4 alongside your existing request-tracker3.8 installation and consult the installation/upgrade notes in /usr/share/doc/request-tracker4/README.Debian.gz (section: “Upgrading from request-tracker3.8 to request-tracker4”).

The same advice applies if you have request-tracker3.6 or older packages from previous Debian releases still in use; if this is the case it is recommended to upgrade step by step, following the appropriate upgrade documents.

Bootlogd changes

bootlogd has moved from sysvinit-utils to a separate bootlogd package. If you wish to continue using bootlogd, you need to install the bootlogd package. Note that the configuration file /etc/default/bootlogd and its option BOOTLOGD_ENABLE no longer exist; if you do not wish to run bootlogd, remove the bootlogd package.

Nagios Plugins

  • Disinstallare i seguenti pacchetti customizzati, perchè ora contenuti in nagios-plugins-contrib:
  • nagios-plugins-backuppc
  • nagios-plugins-rbl
sudo apt-get remove nagios-plugins-backuppc nagios-plugins-rbl
  • Installare il pacchetto corretto:
sudo apt-get install nagios-plugins-contrib
  • Installare le librerie perl per check_backuppc, altrimenti darà sempre OK
sudo apt-get install libclass-accessor-perl libconfig-tiny-perl libmath-calc-units-perl \
                     libnagios-plugin-perl libparams-validate-perl libsub-name-perl

Cyrus SASL SQL backends

Configuration of SQL engine backends for Cyrus SASL, as provided in the libsasl2-modules-sql package, has changed from database specific configuration (e.g. mysql) to the generic sql auxprop plugin.

Configuration files for applications using SASL have to be updated, for example:

auxprop_plugin: mysql

should be replaced by:

auxprop_plugin: sql
sql_engine: mysql

In addition, the SQL query (if used) needs to have %u replaced with %u@%r, because user and realm are now provided separatel

Mediawiki

  • Effettuare l'upgrade del DB:
cd /usr/share/mediawiki
php maintenance/update.php
  • Se all'accesso dà errori, rimuovere le eventuali estensioni custom da
/var/lib/mediawiki/extensions

Mysql

Se al riavvio mysql non parte, cercare la seguente stringa di errore:

sudo cat /var/log/syslog| grep lc-messages-dir
Jul 26 23:27:33 emip mysqld[3010]: 140726 23:27:33 [ERROR] /usr/sbin/mysqld: unknown variable 'lc-messages-dir=/usr/share/mysql'

Se è presente, rimuovere questa dichiarazione dal file di configurazione:

sudoedit /etc/mysql/my.cnf
lc-messages-dir=/usr/share/mysql

Vedi Re: MySQL upgrade from 5.1 to 5.5