--Apple-Mail-CA136E32-DAA1-4572-9071-E18A924B9BA7
Content-Type: text/plain;
charset=utf-8
Content-Transfer-Encoding: quoted-printable
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 <[email protected]> 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 <[email protected]> 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 <[email protected]>
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/
--Apple-Mail-CA136E32-DAA1-4572-9071-E18A924B9BA7
Content-Type: text/html;
charset=utf-8
Content-Transfer-Encoding: quoted-printable
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr"></div><div dir="ltr">Le besoin est beaucoup plus simple que ça. </div><div dir="ltr"><br></div><div dir="ltr">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. </div><div dir="ltr"><br></div><
div dir="ltr">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. </div><div dir="ltr">Je dois donc
travailler à tâtons. </div><div dir="ltr"><br></div><div dir="ltr">Typiquement, on commence par supprimer la référence au CDROM d’installation dans <span style="font-family: Nunito; -webkit-text-size-adjust: 100%; background-color: rgb(
255, 255, 255);"> /etc/apt/sources.list .</span></div><div dir="ltr">Etc. </div><div dir="ltr"><br></div><div dir="ltr">Cf. <a href="
https://www.linuxtechi.com/things-to-do-after-installing-debian-11/">https://www.linuxtechi.com/things-to-
do-after-installing-debian-11/</a></div><div dir="ltr">Cf. <a href="
https://averagelinuxuser.com/debian-11-after-install/">https://averagelinuxuser.com/debian-11-after-install/</a></div><div dir="ltr"><br></div><div dir="ltr">La question est donc :&
nbsp;</div><div dir="ltr">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…). </div><div dir="ltr"><br></div><div dir="ltr">PS : Je suis d’ailleurs étonné que l’installateur debian ne propose pas de prendre ces décisions pour parachever l’installation. </div><div dir="ltr">Comment
remonter ce besoin à l’équipe debian ?</div><div dir="ltr">merci. </div><div dir="ltr"><br></div><div dir="ltr"><br><blockquote type="cite">Le 18 mai 2023 à 08:04, Basile Starynkevitch <
[email protected]> a écrit :<br><br></
blockquote></div><blockquote type="cite"><div dir="ltr"><span></span><br><span>On 5/17/23 21:58, RogerT wrote:</span><br><blockquote type="cite"><span>Ce n’est pas un peu démesuré ?</span><br></blockquote><blockquote type="cite"><span>Je ne
connais pas Ansible en pratique.</span><br></blockquote><blockquote type="cite"><span>Peut-être est-ce très simple…</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>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.</span><br></blockquote><blockquote type="cite"><span>C’est tellement habituel qu’on ne sait plus exactement tout ce qu’on fait.</span><br></blockquote><
blockquote type="cite"><span>Il y a aussi ce système debian qui permet d’automatiser l’installation d’un hôte.</span><br></blockquote><blockquote type="cite"><span>Ex :
https://debian-handbook.info/browse/fr-FR/stable/sect.automated-installation.
html</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><blockquote type="cite"><span>Le 17 mai
2023 à 13:52, Sébastien Dinot <
[email protected]> a écrit :</span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span></span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">
<span>Bonjour,</span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span></span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span>RogerT a écrit :</span><br></blockquote></blockquote><
blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><span>Existe-t-il un outil en CLI pour tester que l’hôte mis à disposition</span><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><
blockquote type="cite"><span>par l’utilisateur est correctement configuré ?</span><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span></span><br></blockquote></blockquote><blockquote type="cite"><blockquote
type="cite"><span>De nos jours, j'aurais tendance à répondre « Ansible » :</span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span></span><br></blockquote></blockquote><blockquote type="cite"><
blockquote type="cite"><span>
https://www.ansible.com/</span><br></blockquote></blockquote><span></span><br><span></span><br><span></span><br><span>Si j'ai bien compris la question, c'est théoriquement impossible de manière statique. A cause du théorè
me de Rice:</span><br><span></span><br><span>
https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_de_Rice</span><br><span></span><br><span>et en lien avec le problème de l'arrêt:
https://fr.wikipedia.org/wiki/Probl%C3%A8me_de_l%27arr%C3%AAt</span><br><span>
</span><br><span>Et en pratique, ça demeure souvent impossible parce qu'un (ou le) logiciel fourni (considéré) peut:</span><br><span></span><br><span>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</span><br><span></span><br><span></span><br><span>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/</span><br><span></span><br><span>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...</span><br><span></span><br><span>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</span><br><span></span><br><span>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/</span><br><span></
span><br><span></span><br><span>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/</span><br><span></span><br><span>C'est l'une des raisons pour laquelle le packaging Debian demeure un art difficile.</span><br><span></span><br><span></span><br><span>Librement</span><br><span></span><br>
<span></span><br><span>-- </span><br><span>Basile Starynkevitch <
[email protected]></span><br><span>(only mine opinions / les opinions sont
miennes uniquement)</span><br><span>92340 Bourg-la-Reine, France</span><br><span>web page: starynkevitch.net/Basile/</span><br><span></span><br></div></blockquote></body></html>
--Apple-Mail-CA136E32-DAA1-4572-9071-E18A924B9BA7--
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)