Bonjour à tous,
ce sujet est pour les Plugin utilisant NodeJS
Sur Smart depuis un petit moment le https://deb.nodesource.com/ n’as plus de dependance pour l’Odroid en arm64 a ce que j’ai pu voir.
Nous avons monté un Repo pour ce genre de problème sur Smart.
Mais nous avons pu constaté que certain dev ne l’utilise pas @lunarok, nous aimerions faire en sorte que tout les dev l’utilise et mettre en place la meilleur des solutions (viable dans l’avenir).
Donc si il y a un souci avec nos repo etc, merci de me dire ce qu’il faut faire et nous le ferons pour n’utiliser que lui sur les smart pour nodeJS deb-multimedia mais il peux en avoir d’autre.
Merci à vous.
Il y a plusieurs soucis avec les dépots sur Smart.
1 - si le dépot jeedom est bien signé ainsi que les paquets, le --force-yes est inutile. Pas question d’installer un paquet avec cette option car en cas de connexion à une source non sure, le paquet peut être falsifié et corrompre le système distant.
Pour ce point j’ajouterais même que déployer des paquets de cette facon de la part d’une société vous rendrait responsable en cas d’alteration du système de l’utilisateur.
2 - aujourd’hui il y a un soucis autre sur les derniers à remonter le point, les dépendances vont meme pas jusqu’au apt-get install. Le sources.list doit etre juste incorrect :
W: Failed to fetch http://security.debian.org/dists/jessie/updates/InRelease Unable to find expected entry ‹ main/binary-arm64/Packages › in Release file (Wrong sources.list entry or malformed file)
W: Failed to fetch http://www.deb-multimedia.org/dists/jessie/InRelease Unable to find expected entry ‹ main/binary-arm64/Packages › in Release file (Wrong sources.list entry or malformed file)
Ca, ce n’est pas en faisant un --forvce-yes qu’on peut s’en débarasser mais en déployant un sources.list correct (c’est marqué dans le log : Wrong sources.list entry or malformed file)
Ah oui et au passage, j’utilise le nodejs disponible pour le système, point. Donc avant de faire de la calomnie, il serait bon de regarder comment marche un dépot debian et le script qu’on incrémine.
Explication du fonctionnement :
- si je suis sur Pi1, j’installe un depot particulier, sinon le dépot officiel.
- ensuite apt-get va prendre le paquet nodejs en respectant les méchanismes du sources.list et des « poids » si il y en a. Sans présence de poids, si plusieurs dépots proposent un meme paquet, il prendra la version la plus récente si on ne lui donne pas de version en argument.
Donc par exemple ici, il va aller chercher le nodejs le plus récent qu’il trouve. Si il n’en a pas il n’installer pas. Si le dépot officiel nodejs est vide, 0 impact. Si il y en a un dans le dépot jeedom et un dans le depot debian il prend le plus récent. Etc …
Mais encore une fois, les erreurs actuelles sont relatives a des lignes mal écrites dans le sources.list. Rien à voir avec le script de dépendances de mes plugins.
Donc si je comprend bien :
si je fais sudo apt-get install -y nodejs
sur une smart (comme peux le faire ton script) ça ne doit pas fonctionner ? pourtant il fonctionne bien sur une smart toute neuve sous (stretch ou jessie).
Je vais regarder notre source.list et notre repo pour faire toute les modifications qu’il faut au mieux !
Je n’ai rien calomnié sur ton code ou autre ! dans mes propos il faut pas croire que je veux être méchant en vers toi ou autre… je suis la pour trouver la meilleur solution et je l’ai marquer des lors de mon premier message.
Je constat juste par ticket que tes plugins n’arrive pas a installer nodeJS sur smart, cela viens peut-être de nos repos on va remédier a ce que tu a cité, mais certain autre plugins fonctionne très bien en utilisant juste un apt-get install -y nodejs (bon ok il utilise un if [ -f /media/boot/multiboot/meson64_odroidc2.dtb.linux ]; then
ceci n’est pas la pour être calomnieux ou autre en vers toi loin de la ! mais pour trouver ensemble les meilleurs solutions.
On va ce pencher sur le Repo pour faire au mieux en tout cas.
Si si mon script marche si un nodejs 8 est présent dans votre répo.
En gros :
- stretch propose une version X
- le depot nodejs aucun
- le depot jeedom nodejs 8
Mon script prendra la version du depot jeedom (à la condition que tout soit signé)
Mais là les dernières erreurs vues sont sur le apt.sources qui contient la ligne stretch et deb-multimedia)
pourtant il y a bien une 8.X sur le repo : http://repo.jeedom.com/odroid/pool/main/n/nodejs/
Je regarde plus en detail.
Nous allons mettre en place la signature du repo et verifier son bon comportement. je reviens vers toi une fois fait 
Mais là, déjà il y a des erreurs dans le source.list sur les 2 lignes données en erreur plus haut.
Donc il arrive même pas à l’installation car son référentiel est foireux.
tu peux tester ça :
sudo wget --quiet -O - http://repo.jeedom.com/odroid/conf/jeedom.gpg.key | sudo apt-key add -
sudo rm -rf /etc/apt/sources.list.d/jeedom.list*
sudo apt-add-repository "deb http://repo.jeedom.com/odroid/ stable main"
ça devrait le remettre d’aplomb si oui, on le mettra dans la prochaine Maj du core (Stable)
pour faire quoi ? le problème actuelle c’est /etc/apt/sources.list qui est mal formaté
faut corriger ca déjà
après le dépot spécifique à la smart il faudrait le traiter directement de votre côté (de toute facon faudra aussi le faire pour corriger le sources.list)
Salut,
j’avais moi aussi le problème que tu décris @Lunarok, a savoir les
W: Failed to fetch http://security.debian.org/dists/jessie/updates/InRelease Unable to find expected entry ‘main/binary-arm64/Packages’ in Release file (Wrong sources.list entry or malformed file)
W: Failed to fetch http://www.deb-multimedia.org/dists/jessie/InRelease Unable to find expected entry ‘main/binary-arm64/Packages’ in Release file (Wrong sources.list entry or malformed file)
qui empêchait l’installation de nodejs pour mes plugins.
En appliquant la correction proposé par Alexandre, ça résout le problème. En effet, ce n’est pas le fichier /etc/apt/sources.list directement qui n’est pas correct mais un fichier dans /etc/apt/sources.list.d/ (je ne suis pas spécialiste mais les fichiers *.list de ce dossier sont également pris en compte).
Je confirme également qu’en faisant ça, pas besoin de -force.
Par contre Alexandre, effectivement je penses que ça devrait être a l’équipe Jeedom de mettre en place cette correction et pas dans les n plugin qui doivent installé nodejs (autant faire la correction une seul fois plutôt que n fois). J’avais fait un poste sur ce sujet mais j’avais fini par faire la correction dans mon plugin pour une question de reactivité.
A+
Merci pour ton retour @DavZero Bien sur l’équipe mettra cela dans le core, je voulais juste savoir si cela fonctionné. nous n’avons pas fait encore de modification du repo, (beaucoup de taf cette semaine de notre coté, je vous tien au courant)