[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Comment vérifier qu’un hôte debian est apte (!) à exécuter tout logiciel fourni ?



Le besoin est beaucoup plus simple que ça. 

Le programme en C (ou autre) est livré compilé pour les deux architectures possibles x86_64 et aarch64. C’est essentiellement du contrôle de flot autour de fonctions/commandes disponibles après installation (automatisée) via apt. 

Le problème rencontré est que l’utilisateur ne veut aucune intervention extérieure et n’est pas compétent pour configurer parfaitement un hôte debian afin d’exécuter tout logiciel fourni. 
Je dois donc travailler à tâtons. 

Typiquement, on commence par supprimer la référence au CDROM d’installation dans  /etc/apt/sources.list .
Etc. 

Cf. https://www.linuxtechi.com/things-to-do-after-installing-debian-11/
Cf. https://averagelinuxuser.com/debian-11-after-install/

La question est donc : 
quelle est la liste la plus complète possible des tâches à effectuer sur un hôte debian tout neuf pour qu’il puisse exécuter tout programme compilé (exploitant en l’occurrence libc : super classique, toujours installé, sauf erreur…). 

PS : Je suis d’ailleurs étonné que l’installateur debian  ne propose pas de prendre ces décisions pour parachever l’installation. 
Comment remonter ce besoin à l’équipe debian ?
merci. 


Le 18 mai 2023 à 08:04, Basile Starynkevitch <basile@starynkevitch.net> a écrit :


On 5/17/23 21:58, RogerT wrote:
Ce n’est pas un peu démesuré ?
Je ne connais pas Ansible en pratique.
Peut-être est-ce très simple…

Il me semble qu’il s’agit juste de lister toutes les tâches que l’on fait tous quand on crée un hôte de zéro.
C’est tellement habituel qu’on ne sait plus exactement tout ce qu’on fait.
Il y a aussi ce système debian qui permet d’automatiser l’installation d’un hôte.
Ex : https://debian-handbook.info/browse/fr-FR/stable/sect.automated-installation.html



Le 17 mai 2023 à 13:52, Sébastien Dinot <sebastien.dinot@free.fr> a écrit :

Bonjour,

RogerT a écrit :
Existe-t-il un outil en CLI pour tester que l’hôte mis à disposition
par l’utilisateur est correctement configuré ?

De nos jours, j'aurais tendance à répondre « Ansible » :

https://www.ansible.com/



Si j'ai bien compris la question, c'est théoriquement impossible de manière statique. A cause du théorème de Rice:

https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_de_Rice

et en lien avec le problème de l'arrêt: https://fr.wikipedia.org/wiki/Probl%C3%A8me_de_l%27arr%C3%AAt

Et en pratique, ça demeure souvent impossible parce qu'un (ou le) logiciel fourni (considéré) peut:

embarquer un interprète comme Lua http://www.lua.org/ ou RefPerSys http://refpersys.org/ ou GNU guile https://www.gnu.org/software/guile/ ou Python https://python.org/ et https://docs.python.org/3/extending/index.html


générer du code ou des scripts (l'exemple classique c'est GNU emacs ou PostGreSQL) qui dépendent des données futures de ce logiciel en utilisant https://gcc.gnu.org/onlinedocs/jit/ ou https://asmjit.com/

utiliser et charger des greffons fourni par l'utilisateur (et qui peuvent manquer à l'installation), (voir par exemple https://arxiv.org/pdf/1109.0779.pdf et https://gcc.gnu.org/onlinedocs/gccint/Plugins.html ...) - ce que savent faire GNU emacs, firefox, geany, des variantes de vim, etc...

générer à l'exécution, en fonction des données, du code temporaire (qui aurait besoin d'autres logiciels installés) dans un greffon chargé par https://man7.org/linux/man-pages/man3/dlopen.3.html

générer à l'exécution, en fonction des données, du code machine utilisant d'autres logiciels. Les exemples connus sont http://sbcl.org/ ou le logiciel CAIA de Jacques Pitrat (voir https://fr.wikipedia.org/wiki/Jacques_Pitrat ou le code C -autogénéré- en https://github.com/bstarynk/caia-pitrat ; Jacques Pitrat a écrit plusieurs livres expliquant cette approche, disponibles à la bibliothèque MIR de l'université Paris 6 Jussieu. Voir aussi les exposés en https://afia.asso.fr/journee-hommage-j-pitrat/


Il me semble donc qu'il faut restreindre la question posée, et dans le cas particulier où le logiciel fourni est codé en C, envisager (c'est complexe et demande des efforts et du temps) d'en analyser le code source avec l'outil Frama-C disponible en https://frama-c.com/

C'est l'une des raisons pour laquelle le packaging Debian demeure un art difficile.


Librement


--
Basile Starynkevitch                  <basile@starynkevitch.net>
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/


Reply to: