Forum général.cherche-logiciel outil générique de parcours d'arbre

Posté par . Licence CC by-sa
Tags : aucun
1
16
jan.
2018

Quelqu'un connaîtrait-il un outil/logiciel interactif (pas forcément graphique, un truc en ncurses ferait aussi l'affaire, voire serait mieux, en fait) qui permettrait d'afficher et parcourir un arbre, de sélectionner n noeuds ou feuilles et de générer une liste de ces objets?

Concrètement, je voudrais changer de distribs, parce que je me lasse (et plus qu'un peu) de Debian et Devuan, mais je n'ai pas forcément envie d'essayer leurs filles. Le problème, c'est que je me suis un peu trop entiché de l'UI interactive d'aptitude.
Pour tester de temps en temps void, je vois bien à quel point ça me gonfle de ne pas avoir d'outil de gestion de paquets conçu pour des humains (non, apt-*, dpkg, xbps, whatever ne sont pas conçus avec l'utilisation par l'homme en tête, ce qui n'empêche qu'ils sont très bien, puisqu'ils peuvent être scriptés, et justement…), qui soit accessoirement utilisable via une console (ça, vraiment, c'est un bonus).

Le fait d'avoir une liste de sections avec d'éventuelles sous-sections pouvant elles-même contenir une liste de noms de paquets, eux-même déclinés en plusieurs versions (que ce soit de «vrais» paquets ou des méta dont la version est en fait un paquet d'un nom différent n'est pas en soit important), avec chacune diverses propriétés (relations aux autres paquets, tags, descriptions, nom…) dans laquelle l'on puisse naviguer et sélectionner des éléments afin de déclencher dessus est juste super confortable.
Tout ça, c'est que qu'aptitude m'apporte, même si aptitude à d'autres fonctionnalités (dont certaines que j'aimerai supprimer, pour être franc, parce qu'elles apportent confusion, lenteur et nécessitent de refaire le travail si l'on oublie de les désactiver).

Si on y réfléchit bien, il s'agit d'un parcours interactif d'arbre, voire de graphe (si on pousse un peu le vice, on pourrait imaginer déplier des arbres à partir de dépendances, sans pour autant instancier plus d'objets… bref, je diverge). Au final, gérer des paquets, ce n'est que lister des noeuds à partir d'une source (un fichier généré par l'outil système qui liste les paquets disponibles, voire un script perso qui enlève les indésirables?) et générer un jeu de cibles sur lesquelles appliquer une action (installation, suppression, mise à jour… ce qui peut se faire de manière portable en envoyant la liste des paquets à l'outil du système dédié qui dépend de l'action souhaitée).

Ce genre de trucs se code pas trop mal, mais j'ai un peu la flemme je l'avoue, et je me dis qu'il n'est pas impossible qu'un tel outil existe déjà, qui serait potentiellement adaptable.

  • # Réponse

    Posté par . Évalué à -3 (+0/-4).

    Tu n'as qu'à tenter crux Linux ou arch Linux comme distribution.

  • # use the source luke

    Posté par . Évalué à 4 (+3/-1).

    Si on y réfléchit bien, il s'agit d'un parcours interactif d'arbre, voire de graphe (si on pousse un peu le vice, on pourrait imaginer déplier des arbres à partir de dépendances, sans pour autant instancier plus d'objets… bref, je diverge). Au final, gérer des paquets, ce n'est que lister des noeuds à partir d'une source (un fichier généré par l'outil système qui liste les paquets disponibles, voire un script perso qui enlève les indésirables?) et générer un jeu de cibles sur lesquelles appliquer une action (installation, suppression, mise à jour… ce qui peut se faire de manière portable en envoyant la liste des paquets à l'outil du système dédié qui dépend de l'action souhaitée).

    c'est clairement ce que fait aptitude/dpkg qui lit les paquets, leurs dependances, et construit l'arbre de dependances.
    ensuite tu choisis un paquet, il en deduit les dependances et te les propose

    Ce genre de trucs se code pas trop mal, mais j'ai un peu la flemme je l'avoue, et je me dis qu'il n'est pas impossible qu'un tel outil existe déjà, qui serait potentiellement adaptable.

    pourquoi ne pas aller voir le code source de dpkg/aptitude pour voir comment il fait ?
    c'est justement là la force du logiciel libre, avoir acces aux sources.

    • [^] # Re: use the source luke

      Posté par . Évalué à 3 (+1/-0).

      Désolé, j'ai pas vu cette réponse.

      pourquoi ne pas aller voir le code source de dpkg/aptitude pour voir comment il fait ?

      Sincèrement, j'ai essayé. Pas pour les mêmes raisons à l'époque, mais pour tenter d'enrayer sa lenteur phénoménale quand un paquet est calculé (à raison) cassé: au moindre mouvement, à première vue, il recalcule toutes les raisons de la cassure, et compte tenu du nombre de noeuds…

      De mémoire, dans le dépôt, il était déjà difficile de trouver le point d'entrée du binaire final (il semble y avoir eu 2 tentatives de portages, l'une vers GTK et l'autre vers Qt, dans la même branche de code.
      Pour dpkg, pas de problèmes la-dessus, mais je n'ai quand même pas retrouvé le point d'entrée.

      Ce genre d'expériences, tant niveau pro (au taf quoi) que amateur (rien à voir avec la qualité du code, mais le côté pour le fun) est justement ce qui me fait penser qu'un outil qui ne fasse qu'une chose est une bonne chose, et je me disais que, peut-être, il existait un outil qui se contente déjà de ne faire que permettre la navigation dans un arbre, moyennant un jeu de règles pas codées en dur. Avec un peu de bol, ce soft serait assez hackable pour être adapté à ce besoin.

      c'est justement là la force du logiciel libre, avoir acces aux sources.

      Ce n'est pas parce qu'on a accès aux sources qu'on peut y contribuer facilement.
      Aptitude est hyper complexe, ce n'est pas juste un outil de parcours d'arbre, il cherche aussi automatiquement des solutions, est capable de mettre à jour une base de données qui est coupée en plusieurs parties dont l'une n'est utilisée que par lui, les autres par d'autres composants systèmes.
      C'est d'ailleurs, j'imagine, la raison pour laquelle il est impossible de modifier les actions que l'on voudrait prévoir lorsque l'on fait une mise à jour de la DB ou que l'on télécharge des paquets destinés à être installés (non, on ne peut télécharger "dans le vent", tout comme on ne peut installer en étant utilisateur, alors que je ne suis pas persuadé que dpkg en est incapable. Je pense même que moyennant quelques hacks sans recompiler, dpkg peut installer en espace utilisateur!).

      Bon, je suppose que je vais essayer de code mon propre outil, en espérant ne pas trop en baver.

      • [^] # Re: use the source luke

        Posté par . Évalué à 2 (+1/-1).

        c'est sur que les codes sont peut-etre toufus,
        mais il doit bien y avoir une fonction qui gere ce cas là, et pas une reimplementation à chaque appel

        je me disais que, peut-être, il existait un outil qui se contente déjà de ne faire que permettre la navigation dans un arbre, moyennant un jeu de règles pas codées en dur. Avec un peu de bol, ce soft serait assez hackable pour être adapté à ce besoin.

        sinon on trouve des algo de classement d'objets en arbre, puis de parcours d'arbres dans tous les cours d'informatiques et de programmation
        il doit donc y avoir des exercices et des corrigés qui vont avec.

        ca peut etre un autre point de depart

        • [^] # Re: use the source luke

          Posté par . Évalué à 2 (+0/-0).

          sinon on trouve des algo de classement d'objets en arbre, puis de parcours d'arbres dans tous les cours d'informatiques et de programmation
          il doit donc y avoir des exercices et des corrigés qui vont avec.

          ca peut etre un autre point de depart

          Pas faux.
          Après, je t'avoue que je suis pas spécialement inquiet pour les algo ni le code en lui-même. Le truc qui m'emmerde, c'est plutôt de me taper une interface, même en ncurses. Si il y avais un p'tit soft qui faisait déjà le plus gros mais sans trop en faire (parce que sinon c'est plus rapide de partir from scratch), j'aurai juste pu sortir la hache, virer les bouts de code non utiles (à mon objectif) et l'adapter.
          Mais justement, à part aptitude, je ne connais aucun soft qui fasse à peu près ce que je veux, et le code d'aptitude est très complet, le parcours d'arbre est juste une fonctionnalité mineure dedans, limite (pas comme la résolution de conflits ou la gestion de dépôts debian).

          • [^] # Re: use the source luke

            Posté par . Évalué à 2 (+0/-0).

            dans les outils en ligne de commande, pour afficher des infos/naviguer dans les fichiers/dossiers

            tree permet d'afficher un arbre
            mc ou ranger permettent de naviguer en ncurse ou console texte dans une arborescence

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.