Pkg_dry, phase 2

Tags:
Add comments

Petit à petit, mon apt(8) wanabee prend forme. Hier j’ai passé deux étapes (ou pratiquement): actions sur plusieurs packages passés en paramètre et première approche de la fonction d’autoremove.

Pour la première, la finalité est évidente :

[~/src/pkg_dry] ./pkg_dry -i mc zsh lighttpd
nothing to upgrade.
6 packages to be installed: libslang-1.4.9nb7 glib2-2.18.3nb1 unzip-5.52nb4 mc-4.6.1nb4 zsh-4.2.7nb1 lighttpd-1.4.20
proceed ? [y/N]

Pour la seconde, si la finalité semble tout aussi évidente, la mise en oeuvre l’est beaucoup moins. Pour le moment, l’autoremove est une action volontaire, exemple :

[~/src/pkg_dry] ./pkg_dry -r mc zsh lighttpd
3 packages to delete: mc-4.6.1nb4 zsh-4.2.7nb1 lighttpd-1.4.20
proceed ? [y/N] y
removing mc-4.6.1nb4...
Executing `/bin/rmdir /usr/pkg/man/sr/man8 2>/dev/null || true'
Executing `/bin/rmdir /usr/pkg/man/sr/man1 2>/dev/null || true'
Executing `/bin/rmdir /usr/pkg/man/sr 2>/dev/null || true'
Executing `/bin/rmdir /usr/pkg/man/it/man1 2>/dev/null || true'
Executing `/bin/rmdir /usr/pkg/man/it 2>/dev/null || true'
Executing `/bin/rmdir /usr/pkg/man/hu/man1 2>/dev/null || true'
Executing `/bin/rmdir /usr/pkg/man/hu 2>/dev/null || true'
Executing `/bin/rmdir /usr/pkg/share/mc 2>/dev/null || true'
removing zsh-4.2.7nb1...
zsh-4.2.7nb1: removing /usr/pkg/bin/zsh from /etc/shells
removing lighttpd-1.4.20...
processing local summary...
updating database: 100%
[~/src/pkg_dry] ./pkg_dry -m
in order to remove packages from the autoremove list, flag those with the -k modifier.

3 packages to be autoremoved: libslang-1.4.9nb7 glib2-2.18.3nb1 unzip-5.52nb4
proceed ? [y/N]

Ici, après avoir effacé -entre autres- mc, pkg_dry -m propose d’effacer les dépendances orphelines de premier niveau. Il faudra un peu plus reflexion pour correctement proposer un autoremove recursif et en faire une action par défaut.
Un autre problème concerne les packages installés autrement que via pkg_dry. Pour contourner le problème, j’ai ajouté un flag, -k, permettant à un package enregistré d’être en état non autoremovable. Par defaut, un package volontairement installé avec pkg_dry est non autoremovable.

Il reste encore un peu de travail sur cet aspect.

Les testeurs sont toujours bienvenus, principalement sur la version du CVS (voir post précedent) vu que cette dernière est maintenant assez éloignée de la milestone de la semaine dernière.

One Response to “Pkg_dry, phase 2”

  1. crashdump Says:

    Excellent boulot, c’est vraiment une des rares choses qui – a mon goût – manque sur les BSD.

Leave a Reply

WP Theme & Icons based on GlossyBlue by N.Design Studio
Banner from www.trynthlas.com
Entries RSS Comments RSS Log in