Upgrade da Squeeze a Wheezy
Preparazione
- Avviare screen
- Registrare la sessione:
script -t 2>~/upgrade-wheezystep.time -a ~/upgrade-wheezystep.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 /etc/init.d/puppet stop sudo puppet agent --disable
Aggiornamento Squeeze
- 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 squeeze in wheezy in sources.lists
- Sostituire "squeeze" con "wheezy" in /etc/apt/sources.list
sudo sed -i 's/squeeze/wheezy/g' /etc/apt/sources.list sudo rm -v /etc/apt/sources.list.d/squeeze* sudo sed -i 's/squeeze/wheezy/g' /etc/apt/sources.list.d/*
- 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
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