Ce matin, j’ai voulu lire un DVD avec mplayer, et je me suis heurté à l’erreur suivante:

libdvdread: Encrypted DVD support unavailable.

Quand on utilise rpmfusion, l’une des contraintes est le choix des mainteneurs du projet
à ne pas distribuer libdvdcss. Le seul choix possible est donc d’utiliser un dépot tierce
pour cela. Il y a plusieurs solutions à cela, et mon choix a été porté par l’utilisation
du dépot livna:

# rpm -ivh http://rpm.livna.org/livna-release.rpm
Récupération de http://rpm.livna.org/livna-release.rpm
attention: /var/tmp/rpm-tmp.5Oqkd9: Entête V4 DSA/SHA1 Signature, key ID a109b1ec: NOKEY
Préparation...              ########################################### [100%]
   1:livna-release          ########################################### [100%]

Puis, on met à jour le cache et on installe la libdvdcss:

# yum clean all && yum update
[...]

# yum search libdvdcss
libdvdcss.x86_64 : Library for transparent DVD device access with on-the-fly CSS decryption

# yum install libdvdcss
[...]

Et voilà, le dvd pourra etre lu. Ouf.

Une autre solution aurait été d’utiliser atrpms au lieu de rpmfusion/livna. Chacun y trouvera son compte. Pour ma part, utilisant rpmfusion et n’ayant pas le temps de tout mettre à jour, je suis resté sur cette solution.

Suite à un changement de disque dur, j’ai réinstallé mon macbookpro il y a quelques temps. Malheureusement, je ne disposais pas du DVD de Snow Leopard, mais uniquement d’une image (téléchargé précedemment grâce à un compte ADC). Je n’avais comme support qu’une clef usb (8 Go), mais la manipulation marche également avec un ipod ou une partition tierce sur le disque dur. Changeant de disque dur, j’ai suivi la voie simple, la clef Usb.

Voici la démarche à suivre:
- Utiliser le Disk Utility. Formatter l’intégralité de la clef usb en HFS Journalisé. Si elle ne l’est pas, elle ne sera pas bootable.
- Utiliser l’onglet « Restore », préciser la source (l’image) et la destination (la partition crée sur la clef usb). Il faut que la checkbox « Effacer la destination » soit cochée. Lancer la restauration, ce qui peut être un peu long.
Hint: Si la restauration ne fonctionne pas, et j’ai eu le cas – Messages du type « unable ton scan (invalid argument) », ou encore « The source image needs to be imagescanned before it can be restored » -, l’astuce est de tenter de soit juste renommer le .dmg en .iso (ce qui est idiot, mais peut marcher dans certains cas, surtout pour bypasser le contrôle du Disk Utility), ou sinon d’utiliser la commande hdiutil:

$ hdiutil convert /path/to/input.dmg -format UDTO -o /path/to/output.iso

- Une fois le volume restauré, il devrait se monter automatiquement, signe de la réussite de cette première étape.

Il ne reste plus qu’à rebooter la machine, et spécifiquement sur ce volume, ce qui est possible en gardant la touche Option (Alt) appuyé dès le début du boot. Cela devrait permettre de sélectionner sur quel disque booter. La clef usb devrait apparaître et permettre l’installation de Mac OS X ! Vous pouvez aussi aller dans “Démarrage” dans les Préférences Systèmes et choisir la partition à booter.

Cette procédure a été testée avec Leopard en 2007 avec un ipod 3G et plus récemment avec Snow Leopard avec une clef usb.

Quand une base Postgresql prend trop de place, il est temps de faire place. Et si bien que parfois, un DELETE massif d’une table entière et d’un VACUUM FULL derrière ne suffisent plus. Du coup, j’ai découvert cet après midi quelques manipulations pour voir en détail un peu plus comment faire de la place.

Par exemple, j’ai fais un simple « DELETE * FROM obj; », suivi d’un VACUUM. Bien qu’ayant gagné 300 Mo, je vois quand même que ma table, même vide, prend encore pas mal de place:

engineProd=# SELECT COUNT(*) FROM obj;
 COUNT
-------
     0
(1 ROW)

engineProd=# SELECT pg_size_pretty(pg_total_relation_size('obj'));
 pg_size_pretty
----------------
 85 MB
(1 ROW)

Il est possible dans Postgresql de monitorer très précisement la place utilisée par les tables et leurs index: Il s’agit d’utiliser les tables internes, et en particulier pg_class:

engineProd=# SELECT relname, relpages FROM pg_class WHERE relpages > 1000 ORDER BY relpages DESC;
           relname           | relpages
-----------------------------+----------
 obj_hash_index              |     4322
 obj_action_created_at_index |     1586
 obj_created_at_index        |     1527
 obj_st_to_index             |     1262
 obj_st_from_index           |     1248
 obj_status_index            |     1224
 obj_pkey                    |     1223

Le trick est de réindexer (avec REINDEX) la table après:

engineProd=# REINDEX TABLE obj;
REINDEX

Et le résultat est nettement plus appréciable:

engineProd=# SELECT pg_size_pretty(pg_total_relation_size('obj'));
 pg_size_pretty
----------------
 88 kB
(1 ROW)

Noter qu’il y a une page un peu plus technique à propos de tout cela dans le manuel de Postgresql.

Juste pour le garder quelque part, voici la procédure simple pour faire un backup puis un import d’une base complète postgresql:

Export:

// dump de la base "db" appartenant à "dbUser"
$ pg_dump -Ft -O -U dbUser db | gzip -c - > /tmp/mydump.tar.gz

Import:

// création de la base et import:
$ createdb newdb -E UTF-8 -O dbUser
$ zcat /tmp/mydump.tar.gz | pg_restore -Ft -O -U dbUser -d newdb

Note: Je préfère utilise le format « tar », car généralement, un tar+gz pèse moins lourd qu’un export custom de ce que j’ai pu manipuler. Mais chacun se fera son avis en utilisant le flag -Ft (tar) ou -Fc (custom).
Note 2: On ne peut que faire des mises à jour vers des bases de version égales ou plus récentes… et j’ai appris cela en essayant d’importer en vain mon dump pgsql 8.4 sur une base 8.3 …

Après Chrome, les packages dont j’avais besoin et qui ne se trouvent pas dans les dépôts officiels ce sont de mplayer. Heureusement, des bienfaiteurs les packagent également et les mettent à disposition sur les dépôts rpmfusion.org. La méthode à suivre est donc:

$ rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm  
$ rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Puis mplayer sera disponible:

$ yum install mplayer
[...]