Problème de "node" / ARM / banana pi M64

J’avais pas pensé à ça. Pas con, effectivement, ce petit banana hybride n’est peut être pas approprié… Je vais quand même m’acharner un peu.

Après, si tu « compiles » Duniter, ça devrait fonctionner :

  • installation de Nodejs et de yarn
  • git clone https://git.duniter.org/nodes/typescript/duniter/ -b 1.6
  • yarn dans le dépôt pour installer les dépendances et compiler le C++ pour ton architecture
  • export DEV_MODE=yes
  • puis ./duniter.sh -h.

Tu es peut-être la première personne à essayer duniter sur cette architecture.

2 Likes

Yeees ! Merci Moul, je vais essayer ça tout de suite.

Bon, ça bloque au niveau de yarn. Quand je veux lancer yarn dans le dossier duniter préalablement décompressé, ça me dit que j’ai pas la permission, et si je mets un sudo, ça me dit qu’il faut une version de nodejs qui est pourtant installée !!!
je patauge dans la soupe…

J’ai réussi à lancer la compil, mais j’ai du réinstaller manuellement nodejs en plus de la version nvm et lancer yarn avec sudo, contrairement à ce qui est dit dans le tuto de duniter.org sur la compil manuelle.

Ça s’est installé, mais il y a plein d’erreurs et de saloperies qui ne marchent pas, des problèmes de dépendances en pagailles…

C’est pas dans la poche.

Après la compil, quand je lance ‘./duniter.sh -h’ il me répond :

Node.js is not embedded in this version of Duniter

Toujours ce putain de blem de node.

J’ai réussi néanmoins à lancer le bidule, mais il faut taper bin/ avant chaque commande duniter.

Ça marche. C’est pas propre, mais ça marche.

Merci à toi Moul pour tes précieux conseils.

Ok, résultat des courses :

Impossible pour l’instant d’installer durablement duniter sur arm64 : les dépendances ne sont pas toutes disponibles pour cet OS.
J’ai réussi à installer manuellement le script, mais il s’arrête dès qu’on coupe le SSH.

Il faut que t’essayes de le lancer avec le script duniter.sh qui comprend le daemon.
Lis le script, ça t’aidera à comprendre pourquoi ça plante.

J’ai lancé le script duniter.sh, et ça marche (en partie, j’ai pas de webstart et les configs sont limitées), après je peux lancer les commande en tapant bin/duniter au lieu de duniter. Mais dès que je coupe le terminal, le service s’arrête net et j’arrive pas à le lancer en fond de tâche, je sais pas pourquoi… L’OS me dit que ma structure (ARM64) ne permet pas l’installation de toutes les dépendances, donc j’insiste pas, j’ai pas les compétences. Et de toute façon la version 1.6.23 tourne sous banana armv7 ET sous raspberry, tout roule… ou presque.

La compilation manuelle devrait toujours marcher.

Si tu veux persévérer, je te conseille de :

  • ne jamais la réaliser en sudo (ce n’est pas utile, c’est dangereux et en plus ça fonctionne mal)
  • bien utiliser nvm et pas une installation system de node

Aussi en compilation manuelle c’est normal que tu n’aies pas duniter webstart et toutes les autres commandes “web” (Duniter UI), précisément car l’UI ne fait pas partie du cœur. Tu peux néanmoins facilement l’ajouter à l’aide d’un yarn add duniter-ui. Dès lors la commande webstart sera disponible.

À ta dispo si tu veux réessayer.

2 Likes

Je te remercie pour tes conseils. Je ne sais pas si ça vaut le coup, étant donné que j’ai un autre modèle de banana pi qui tourne en armv7. Là, en arm64 c’est la misère pour trouver tous les packages, tous n’étant pas accessibles pour cette architecture. J’ai l’impression que c’est un poil trop nouveau, faut attendre un peu.
Mais si tu m’affirmes qu’en compilant ça doit marcher sur n’importe quoi, ça peut valoir le coup de s’acharner, d’autant que j’aimerais transformer mon raspberry en media center (meilleure carte graphique) et celui-ci en noeud duniter (ça calcule plus vite). Par contre j’ai pas tout compris pour nvm. C’est proposé automatiquement pendant la compil ou il faut le spécifier en amont ?

Possible que ce soit trop nouveau, je ne connais pas cette archi et n’ai pas testé moi-même.

Mais oui la compilation devrait passer, si les outils de compilation sont compatibles.

Pour nvm, c’est une installation en amont. nvm est un installeur d’environnements NodeJS, il permer d’installer et utiliser une version précise sans polluer tout son système.

Ok, alors je vais retenter avec nvm sur la debian stretch que j’ai proprement réinstallée. Je te dirai ce que ça donne d’ici quelques jours… Merci encore à toi, komrad !

1 Like

J’ai retenté avec la version 1.6.25, une fois nvm et yarn installés, quand le lance yarn dans le dossier décompressé duniter, il me répond ça :

yarn
yarn install v1.9.4
[1/5] Validating package.json…
[2/5] Resolving packages…
[3/5] Fetching packages…
[4/5] Linking dependencies…
warning “ddos > response > bl@0.7.0” has unmet peer dependency “stream-browserify@*”.
error Could not write file “/home/attilax/Download/duniter-v1.6.25-cfc6c9d705d39078b8f15c361a4d72314d8dc46d/yarn-error.log”: “EACCES: permission denied, open ‘/home/attilax/Download/duniter-v1.6.25-cfc6c9d705d39078b8f15c361a4d72314d8dc46d/yarn-error.log’”
error An unexpected error occurred: “EACCES: permission denied, mkdir ‘/home/attilax/Download/duniter-v1.6.25-cfc6c9d705d39078b8f15c361a4d72314d8dc46d/node_modules’”.

Pourtant il est indiqué sur le tuto de ne pas lancer avec sudo ? Mais comment ne pas le faire vu ce “permission denied” ? Et j’ai installé avec nvm browserify, stream-browserify et stream-browserify@, ça change rien.

Avec sudo yarn il me dit ça :

Yarn requires Node.js 4.0 or higher to be installed.

Alors que nvm a installé la 8.9.1 ! Quand je tape node -v, ça me dit v8.9.1…

Nébuleux, isn’t it ?

J’ai l’impression que quand tu installes duniter (sûrement via un git clone…) tu le fais en sudo, parce qu’ensuite les commandes n’arrive pas à écrire dans les dossiers installés.

La gestion des permissions sous unix c’est tout un art, et quand on ne la maîtrise pas, alors faut éviter les sudo comme la peste. Et ne rien faire en root. Sauf si une commande le demande expressément.

Bref, si tu travailles en tant qu’utilisateur “toto”, alors tous tes fichiers Duniter installés doivent appartenir à “toto”. Si certains appartiennent à root, il faut les changer de propriétaire…

Hope it helps…

4 Likes

@vit a raison, tu as dû lancer yarn en sudo jadis et maintenant tu te prends des access denied à cause de ces actions passées.

Un remède ? Supprimer totalement le dossier /home/attilax/Download/duniter-v1.6.25-cfc6c9d705d39078b8f15c361a4d72314d8dc46d et recommencer la procédure, sans sudo. (tu n’as pas besoin de réinstaller NodeJS ni NVM)

1 Like

Yeeees, ça doit être ça ! Effectivement, je sudote comme un couillon… Je retente en suivant vos judicieux conseils et je vous dis.

Ça marche !!! La 1.6.25 !!! Sur Banana pi en ARM64 !!!

J’ai viré le dossier download que j’avais effectivement créé en sudo, comme un âne bâté que je suis. Très bonne leçon, @vit, ne pas abuser du sudo… C’est comme le champagne en fait, uniquement dans les grandes occasions. Sois béni pour ce précieux adage. Et parfait @cgeek ton conseil tout simple de virer directement le dossier créé en sudo et de recommencer sans. pas de bricolage, c’est propre, ma femme adorerait.

immense merci à vous sans qui je continuerais à patauger dans la choucroute.

My node is fucking running on its banana !

3 Likes

Dernier souci :

Ça fonctionne, la synchro a été effectuée, mais je dois lancer avec un “bin/” devant duniter, et le problème est que quand je ferme le terminal ssh, ça ferme le processus bin.
Comment lancer ce bin/duniter en fond de tâche pour que le processus continue même lorsque je ferme le terminal ?

Pour démarrer en mode démon, tu as 2 commandes :

  • bin/duniter start (démarre Duniter sans UI)
  • bin/duniter webstart (démarre Duniter avec UI, nécessite d’avoir installé celle-ci avec yarn add duniter-ui)