ArraKISS
μ | 📰 | | 📧 |

    Nettoyer son OpenBSD

    Voilà un bon bout de temps maintenant que j'ai OpenBSD d'installé sur mon ordinateur et serveur. Sachant qu'en plus, j'utiliser -current sur le pc portable, que je bidouille dessus, que je teste et fait des trucs pas toujours propres, un peu de nettoyage ne pourra pas faire de mal.

    pkg_check

    Tout d'abord, je lance

    pkg_check
    

    qui liste tout les vieux paquets, ceux qui ont des fichiers manquants ou des checksums bizarres, et répare tout ça proprement. Cet outil est vraiment ma-gni-fique !

    doas pkg_check
    Packing-list sanity: ok
    Direct dependencies: ok
    Reverse dependencies: ok
    Files from packages: ok
    --- femail-chroot-1.0p2 -------------------
    checksum for /var/www/bin/femail does not match
    --- py-setuptools-28.6.1p0v0 -------------------
    checksum for /usr/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/__about__.py does not match
    checksum for /usr/local/lib/python2.7/site-packages/setuptools/command/build_py.py does not match
    --- python-2.7.14 -------------------
    checksum for /usr/local/lib/python2.7/email/mime/__init__.pyc does not match
    

    Dans l'exemple ci-dessus, rien d'inquiétant. femail a été modifié à cause de permissions corrigées par moi, et les fichiers pythons ont été exécutés donc même chose.

    sysclean

    sysclean est un outil qui permet de détecter les fichiers obsolètes suite à des mises à jour
    J'installe le paquet sysclean et je le lance afin de vérifier les paquets “obsoletes" :

    sysclean -p
    

    Après une vérification, je vais virer ces derniers car n'en ai pas besoin. Pour tout faire d'un coup :

    pkg_delete $(sysclean -p | awk '{print $2}')
    

    Ensuite, je lance une vérification du système entier pour supprimer à la main les fichiers inutiles. Là, pas de commande automatique, c'est important de vérifier soigneusement, car des fichiers détectés sont simplement ceux que j'ai créé et j'en ai besoin. Attention, sysclean compare les fichiers présents avec ceux qu'il doit y avoir sur un système de base tout propre, et ne tient pas comptes de vos modifications ou ajouts de paquets.

    # sysclean
        /SHA256.sig
        /usr/X11R6/lib/libOSMesa.so.10.1
        /usr/X11R6/lib/libdrm.so.7.4
        /usr/X11R6/lib/libdrm_amdgpu.so.1.2
        /usr/X11R6/lib/libfreetype.so.28.0
        /usr/X11R6/lib/libgbm.so.0.1
        /usr/lib/libc.so.89.3
        /usr/lib/libc.so.89.3.a
        /usr/lib/libcrypto.so.41.1
        /usr/lib/libexpat.so.11.0
        /usr/lib/libobjc.so.6.0
        /usr/lib/libperl.so.18.0
        /usr/lib/libpthread.so.23.0
        /usr/lib/libssl.so.43.2
        /usr/lib/libtls.so.15.4
        /usr/lib/libutil.so.12.1
        /usr/lib/libobjc.a
        /usr/lib/libobjc_p.a
        /usr/lib/gcc-lib/amd64-unknown-openbsd6.1
        /usr/include/dev/wsfont/lucida16x29.h
        /usr/include/dev/wsfont/omron12x20.h
        /usr/include/dev/wsfont/qvss8x15.h
        /usr/include/dev/wsfont/vt220l8x10.h
        /usr/include/dev/wsfont/vt220l8x8.h
        /usr/include/g++/FlexLexer.h
        /usr/include/g++/amd64-unknown-openbsd6.1
        /usr/include/g++/std
        /usr/include/netinet/tcpip.h
        /usr/include/netinet6/tcpipv6.h
        /usr/include/sys/dkbad.h
        /usr/include/sys/kgdb.h
        /usr/include/sys/scanio.h
        /usr/libdata/perl5/amd64-openbsd/perllocal.pod
        /usr/libexec/locate.concatdb
        /usr/share/misc/ascii
        /usr/share/misc/operator
        ...
    

    pkg_delete

    Pour finir, on retire les dépendances inutiles :

    pkg_delete -a
    

    Et voilà :)
    On peut retourner travailler.