Forzare l’hostname in sendmail

Premessa: dopo mesi di inattività, torno a scrivere sul mio blog, con un articolo breve ma molto tecnico.

Se usate Linux (Fedora o CentOS) e sendmail e la vostra macchina non ha un nome registrato in un DNS pubblico, avrete grosse difficoltà a spedire e-mail da quella macchina. Questo perché i server SMTP pubblici generalmente rifiutano e-mail spedite da server con nomi di dominio non validi. La soluzione è istruire sendmail a presentarsi con un nome valido. Scegliete quindi un nome di dominio valido (che deve essere quindi registrato in un DNS pubblico) e aggiungete la seguente riga nei file /etc/mail/sendmail.mc e /etc/mail/submit.mc:

define(`confDOMAIN_NAME', `miodominio.it')dnl

Effettuate quindi il restart del servizio sendmail:

service sendmail restart

Il restart del servizio si occuperà anche di rigenerare i rispettivi sendmail.cf e submit.cf, purché abbiate installato il modulo sendmail-cf.

Come leggere gli allegati winmail.dat

Se usate Thunderbird per leggere la posta, vi sarà capitato di ricevere e-mail con allegato il file winmail.dat. L’allegato in questione è nel formato proprietario Microsoft TNEF e non è gestito da thunderbird (almeno nella versione per Linux). Per estrarne il contenuto potete usare il comando tnef,  disponibile nel pacchetto omonimo sia per Ubuntu che per Fedora. Ecco come fare.

Da Thunderbird salvate l’allegato winmail.dat sul vostro disco.

Per visualizzare il contenuto dell’allegato:

tnef --list winmail.dat

Per estrarre il contenuto:

tnef winmail.dat

Da Fedora 8 a Fedora 9

installdvdBreve resoconto dell’aggiornamento di un sistema Linux da Fedora 8 a Fedora 9.

Dopo aver verificato che il backup notturno della mia home directory sia stato eseguito con successo, apro la pagina del mio blog relativa al precedente aggiornamento da Fedora 7 a Fedora 8 ed inizio.

Ore 09:51. disabilito i driver nvidia proprietari:

su -c 'nvidia-config-display disable'

Ore 09:53. Infilo il dvd di Fedora 9 nel lettore e riavvio.

Ore 09:56. Inizio aggiornamento, 1022 pacchetti da installare o aggiornare.

Ore 10:57. Installazione completata, si riavvia.

Ore 11:10. Grossi problemi. Manca la libreria libnss3.so e non si riesce fare neppure login. Per fortuna posso ancora fare login in modalità testo dopo aver premuto Ctrl-Alt-F1.

Ore 11:24. Dopo ricerche con google scopro che non sono stati installati due pacchetti fondamentali. Rimetto il dvd e faccio un boot in modalità Rescue.

Ore 12:30. Resistendo alla tentazione di installare tutto da zero, scopro la causa il problema: due package di Fedora 9 non sono stati aggiornati perché quelli della 8 già presenti erano più recenti. In modalità rescue monto il dvd ed installo i due package, in questo modo:

mount -t iso9660 /dev/sr0 /mnt
cd /mnt/Packages
rpm --root=/mnt/sysimage -Uvh --oldpackage nss-3.11.99.5-2.fc9.i386.rpm
rpm --root=/mnt/sysimage -Uvh --oldpackage nspr-4.7.0.99.2-2.fc9.i386.rpm

Ore 12:30. Riavvio in modalità normale. Ora, finalmente, posso fare login.

Ore 12:40. Installo l’rpm per i repository di livna, pulisco la cache di yum e aggiorno sia yum che yumex:

su -c 'rpm -Uvh http://rpm.livna.org/livna-release-9.rpm'
su -c 'yum clean all'
su -c 'yum install yum yumex'

 

Ore 12:44. Aggiorno kernel e driver nvidia. Altro riavvio.

Ore 12:54. Inizio lo scaricamento e l’installazione di tutti gli aggiornamenti, oltre 800 pacchetti.

Ore 14:16. Installati tutti gli aggiornamenti. Ancora un riavvio.

Ore 16:30. Maledetto PostgreSQL! Fedora 9 ha la versione 8.3 mentre Fedora 8 aveva la 8.2, non esiste alcun aggiornamento automatico e mi sono dimenticato di fare il dump dei miei database prima di iniziare l’aggiornamento. Porc!!

Conclusione: ogni aggiornamento di Fedora è foriero di problemi. Ora dovrò cercare il modo di recuperare i dati del database PostgreSQL.

VMware Workstation 6.0.2 su Fedora 7 con kernel 2.6.24

Con la versione 2.6.24 del kernel Linux di Fedora 8, VMware Workstation 6.0.2 non si compila più. Si risolve eseguendo le seguenti istruzioni, rispondendo yes a tutte le domande dello script runme.pl. Rispondendo yes anche all’ultima domanda, si esegue anche lo script standard di configurazione di vmware.

cd mytmp
curl -O http://vmkernelnewbies.googlegroups.com/web/vmware-any-any-update-116.tgz?gda=fZs6S04AAAAGlSSxO40Vbd18uKHVQhojJSnNBcPO-aLEmW1Djo0zpmG1qiJ7UbTIup-M2XPURDSGXdvV5n_wsDUmPsx7kjwlI6ntQuOhZp5frm-yOmhQvw
tar -zxvf vmware-any-any-update-116.tar.gz
cd vmware-any-any-update116
su -c ./runme.pl root

Da Fedora 7 a Fedora 8

installdvdBreve resoconto dell’aggiornamento di un sistema Linux da Fedora 7 a Fedora 8.

Un precedente tentativo di aggiornamento con la versione ufficiale di Fedora 8 era fallito, a causa di bug di anaconda, così ho scaricato e masterizzato un dvd di Fedora 8 aggiornato, in particolare il Fedora Unity F8 20080204 Re-Spin.

Ovviamente ho un backup di tutta la home directory, nel caso qualcosa andasse storto.

Ore 08:45. Disabilito i driver nvidia nativi:

su -c nvidia-config-display disable

Ore 08:46. Infilo il dvd nel lettore ed eseguo il reboot.

Ore 08:47. Inizio l’aggiornamento, tutto come previsto.

Ore 10:01. Aggiornamento terminato, reboot del sistema.

Ore 10:11. Installo l’rpm per i repository di livna, pulisco la cache di yum e aggiorno sia yum che yumex:

su -c rpm -Uvh http://rpm.livna.org/livna-release-8.rpm
su -c yum clean all
su -c yum install yum yumex

Ore 10:12. Con yumex aggiorno il kernel e i driver nvidia.

Ore 10:22. Kernel aggiornato, nuovo reboot.

Ore 10.25. Fedora 8 in funzione senza problemi apparenti. Più tardi procederò all’aggiornamento degli oltre 400 pacchetti aggiornati.

Ore 15:10. Installati tutti gli aggiornamenti. Faccio un nuovo reboot, anche se non servirebbe.

Ore 15:18. Disabilito nuovamente l’autohinting anche per i font DejaVu, che era stato abilitato con l’aggiornamento del package freetype-freeworld:

su -c rm /etc/fonts/conf.d/99-DejaVu-autohinter-only.conf

Ore 15:19. Aggiornamento terminato, non mi resta che leggermi le Note di rilascio.

Rinominare molti file con Linux

Mi capita spesso di dover cambiare nome ad un gruppo di file. E’ il caso delle foto scaricate dalla fotocamera, il cui nome tipico è IMG_1234.JPG. Ciò che voglio ottenere è un nome tutto in minuscolo e voglio anche cambiare la prima parte da IMG a 2008. Ecco come fare su Fedora 7:

rename .JPG .jpg *.JPG
rename IMG_ 2008_ IMG_*

Ecco invece come fare su Ubuntu 7.10:

rename 's/.JPG/.jpg/' *.JPG
rename 's/IMG_/2008_/' IMG_*

Come potete notare le due distribuzioni hanno comandi rename differenti. Fedora 7 ha quello tradizionale scritto in C, Ubuntu ha una versione implementata in Perl. La versione tradizionale è più semplice da usare, mentre la versione in Perl permette l’uso di espressioni regolari ed è quindi più potente.

Subdole differenze tra rpm e dpkg

dpkg, il gestore dei pacchetti di Ubuntu, è simile a rpm, il gestore di Fedora, con qualche differenza. Oggi una di queste mi ha fatto penare.

Se per un qualunque motivo rimuovo un file di configurazione, con rpm (o yum) è sufficiente reinstallare il pacchetto per riavere il file di configurazione, almeno nella forma non modificata.

Con dpkg (o apt-get) non è sufficiente. Prima devo rimuovere il pacchetto con il comando purge, poi devo reinstallarlo. La semplice rimozione e installazione o l’installazione con -l’opzione –reinstall non installano i file di configurazione mancanti.