Aller au contenu

« Réunion du 28-01-2025 » et « Compiler Freetube pour Ubuntu 22.04 et 24.04 » : différence entre les pages

De OSWiki
(Différence entre les pages)
 
 
Ligne 1 : Ligne 1 :
= Avertissement =
= Préambule =
{{Avertissement_résumé|fond=pink |bord=red |message = Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux [http://opensimulator.org/wiki/Office_hours réunions du mardi] ou  sur [http://opensimulator.org/wiki/IRC le canal IRC]. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉}}
* Ce tutoriel décrit la compilation du logiciel [https://freetubeapp.io/ '''Freetube'''].
= Modules =
* Le système d'exploitation utilisé est Ubuntu 22.04 LTS, mais le tutoriel peut être adapté à d'autres distributions Linux, ainsi qu'à Windows ou macOS.
== Module d'arbres==
=== Problème posé ===
* Cuga Rajal n'arrive pas à planter des arbres sur une région en utilisant [http://opensimulator.org/wiki/Trees_Module '''le module d'arbres d'OpenSim'''].


=== Discussion ===
= Sources =
* Vincent Sylvester pense que passer par un script LSL est plus judicieux.  
* Documentation Freetube : [https://docs.freetubeapp.io/development/building-from-source ''' Building From Source''' ]
* 🏗️
* Dépôt Git de Freetube : [https://github.com/FreeTubeApp/FreeTube '''GitHub - FreeTubeApp''']


= Informations=
= Pré-requis =
== IA et GPU ==
Assurez-vous d'avoir installé les éléments suivants :
=== Puces ===
== Git ==
* Les participants à la réunion ont parlé de la publication du nouveau modèle d'IA  opensource '''Deepseek''' [https://fr.wikipedia.org/wiki/DeepSeek] au courant de la semaine. Cela a provoqué l'effondrement des cations '''Nvidia'''[https://fr.wikipedia.org/wiki/Nvidia] producteur en autre de processeurs graphiques ([[Lexique_des_réunions#GPU |'''GPU''']]).
Pour installer Git utiliser les commandes suivantes dans un terminal :
* Aux USA des droits de douane très élevés seront imposés aux fabricants (Nvidia, Apple, Intel ..) de puces (GPU, CPU) qui ont des usines à l'étranger.
sudo apt update
* Toutefois, les prix des GPU resteraient élevés. Les tarifs douaniers vont faire exploser les prix aux États-Unis.
  sudo apt install git
* D'après Vincent Sylvester, [https://fr.wikipedia.org/wiki/Advanced_Micro_Devices '''AMD'''] serait rès bien pour le moment.


=== ChaGPT et Deepseek===
== build-essential, npm  ==
* Personne ne semble avoir testé Deepseek.
* Le paquet '''build-essential''' sur les systèmes basés sur Debian, comme Ubuntu, est un méta-paquet qui regroupe un ensemble d'outils et de bibliothèques nécessaires pour compiler des logiciels à partir de leur code source.
* Andrew Hellershanks n'a pas encore trouvé d'utilité à ChatGPT jusuq'à présent et certainement pas pour le code.  
* '''npm '''(Node Package Manager) est le gestionnaire de paquets par défaut pour Node.js, permettant aux développeurs d'installer, de gérer et de partager des bibliothèques et des dépendances JavaScript.
* Les participants semblent très dubitatifs en ce qui concerne ChatGPT.


== Cartes vidéos ==
Pour installer build-essential et npm, exécutez :
=== Question ===
  sudo apt install build-essential npm
* Motoko Karu demande aux personnes présentes quelle carte vidéo elles utilisent. Il a l'intension de mettre à jour son matériel et il envisage d'utiliser une carte '''Radeon™ RX 7800 XT''' (AMD). Il pense que c'est le meilleur rapport qualité/prix.


=== Réponses ===
== Installer nvm ==
* Actuellement Motoko Karu utilise une carte Nvidia '''GeForce GTX 950.'''
nvm est un outil très utile pour gérer les versions de Node.js et npm.
* Cuga Rajal utilise '''Apple Silicon,''' donc il aurait 32 cœurs de GPU.
* Kayaker Magic utilise une carte '''Nvidia GTX 1070'''.  
* Andrew Hellershanks utilise une carte '''Geforce GTX 1050''' et un processeur AMD FX(tm)-8320 à huit cœurs. Il préfère AMD car il y a un meilleur support sous Linux. Il est passé à Nvidia parce qu'il voulait utiliser [https://fr.wikipedia.org/wiki/Cg_(langage) '''Cg''']]
* Ubit Umarov utilise une carte vidéo '''GeForce RTX 3070 Ti'''


== Attribution d'objets ou de terres à un groupe==
Avant de commencer, je tiens à préciser que sur mon ordinateur, nvm (Node Version Manager) était déjà installé. Je ne me souviens pas de l'avoir installé manuellement, il est donc possible qu'il ait été installé par un autre outil ou script ou d'un environnement de développement.
=== Question ===
* Gavin Hird demande s'il est possible d'attribuer des objets ou des terres à un groupe dans OpenSimulator. Il aimerait également connaître la façon d'activer cette option.


=== Réponses ===
Cependant, pour ceux qui n'ont pas nvm installé ou qui souhaitent l'installer, [https://fr.unixlinux.online/ku/1001036436.html '''voici la méthode recommandée''']] :
* Oui on peut attribuer des objets et des terrains à un groupe dans OpenSim. Mais, c'est assez dangereux et on peut facilement perdre le contrôle sur un objet.
* Il est possible d'affecter des objets ou un terrain à un groupe. Les permissions du groupe déterminent alors qui peut  interagir ou éditer l'objet ou la parcelle.  
{{NDLR|fond=white |bord=green|message = <br>
'''Attribuer un objet à un groupe dans Firestorm''' :  
* Dans l''''éditeur''' d'objets , onglet '''"Général"''',
* Cliquer sur la petite clé à droite de Groupe et '''sélectionner un groupe'''
* Cocher la case '''Partager'''.


'''Attribuer une parcelle à un groupe dans Firestorm''' :
# '''Télécharger et installer''' nvm. Exécutez la commande suivante :
* Depuis le menu '''"Monde"''' ouvrir le fenêtre '''"À propos du terrain"'''
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
* À droite de Groupe, '''choisir un groupe''',
# '''Chargez l'environnement'''  
}}
source ~/.bashrc
=== Problème de cache ===
# Après avoir installé nvm, '''vérifier''' si les lignes suivantes ont été ajoutées à votre fichier de configuration de shell ( ~/.bashrc ou ~/.zshrc) :
* D'après Vincent Sylvester les permissions de groupe peuvent être un peu difficiles à gérer parce que le cache ne fonctionne pas tout à fait correctement. Il faudrait redémarrer si on modifie les rôles et leurs permissions.  
<pre>
* 🏗️
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
</pre>
* '''Si ces lignes sont présentes''' : Cela signifie que nvm est correctement configuré pour être chargé automatiquement à chaque fois que vous ouvrez un nouveau terminal.
* '''Si ces lignes ne sont pas présentes''' : Vous pouvez les ajouter manuellement à la fin de votre fichier de configuration de shell. Rechargez l'environnement.


== Heighmap==
== Node.js ==
* Cuga Rajal a trouvé un outil [https://manticorp.github.io/unrealheightmap/ '''Unrealheigmap'''] très utile pour créer une [[Lexique_des_réunions#Heightmap|'''heighmap''']] à partir de cartes réelles.  
* [https://nodejs.org/fr '''Node.js'''] est un environnement d'exécution JavaScript côté serveur qui permet d'exécuter du code JavaScript en dehors d'un navigateur, facilitant le développement d'applications web et de serveurs.
* Ce générateur de heighmap a été créé  pour Unity mais fonctionne très bien pour OpenSim.  
* Il est recommandé d'utiliser [https://nodejs.org/fr/about/previous-release '''une version LTS '''] (version avec un nom de code ).
* Il exporte en png, 16 bit. Donc 256 mètres de haut maximumLa plupart des chargeurs ne lisent que des valeurs entières, seul r32 est à pleine échelle.
* Ce tutoriel a été écrit le 22 février 2025 et, à cette date les sources de Freetube ne compile pas avec une version inférieure à v22.14.0. Il semble qu'il faille utilisez la version LTS de Node.js la plus récente.  
* Mais il est probablement possible d'ajuster les valeurs dans GIMP.
=== Commandes utiles ===
* Si cet outil peut exporter en 32bit virgule flottante, Vincent Sylvester a un chargeur de tiff qui lira jusqu'à 4096 mètres. Plus d'informations à propos des chargeurs : [[Réunion_du_23-07-2024#Chargeur_de_terrain_Tiff | '''Réunion du 23 juillet 2024''']] et [[Réunion_du_30-07-2024#Heightmap | '''Réunion du 30 juillet 2024''']]
* Listez les versions installée de Node.js  avec la commande
nvm ls
* Pour trouver la version active de node.js :
  node -v
* Installer une version LTS de Node.js (ici la version 22.04 LTS)
nvm install 22
* Utiliser une version de Node.js (par exemple la version 22.04)
nvm use 22
* Définir la version 22.04 TLS comme version de Node.js utilisée par défaut :
nvm alias default 22


=Viewers=
== Installer Yarn ==
== Viewer Web Linden Lab==
* '''Yarn''' est un gestionnaire de paquets alternatif à npm, conçu pour être rapide et fiable, offrant des fonctionnalités telles que la mise en cache des paquets et la gestion des dépendances en parallèle.
*[https://community.secondlife.com/news/featured-news/browser-based-access-to-second-life-limited-testing-begins-today-r1559/ Accès à Second Life par navigateur : Des tests limités ont débuté]
* Pour cela il faut ajouter le dépôt Yarn
* Il semble que le viewer web de Linden Lab est meilleur que le viewer mobile. Mais, il manque encore beaucoup d'éléments d'interface utillisateur et de fenêtres.
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
* Une interface utilisateur basée sur [https://fr.wikipedia.org/wiki/Hypertext_Markup_Language '''HTML''' serait prévue.  
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
* C'est un accès qui doit coûter cher à Linden Lab qui doit sans doute espèrer obtenir plus de comptes payants avec l'option web. Les serveurs nécessaires à cette mise en œuvre doivent être très chers.
sudo apt update
* Maintenant on peut installer Yarn :
sudo apt install --no-install-recommends yarn
L'option --no-install-recommends est utilisée pour indiquer à apt de ne pas installer les paquets recommandés qui sont généralement installés par défaut avec le paquet principal.


= Source=
= Compiler Freetube =
http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2025-01-28
==  Cloner le dépôt FreeTube ==
* Placez vous dans le dossier de votre choix et lancez la commande :
git clone https://github.com/FreeTubeApp/FreeTube.git
* Cette commande télécharge le dossier FreeTube complet des sources du logiciel FreeTube.
 
== Modifier le script de construction ==
* Placez-vous dans le dossier Freetube :
cd Freetube
* Ouvrez le fichier `_scripts/build.js` dans un éditeur de texte (par exemple, `nano`) :
nano scripts/build.js
 
* Recherchez la ligne contenant `Platform.LINUX.createTarget` et modifiez-la pour supprimer les cibles que vous ne souhaitez pas construire.
* Dans Ubuntu, on utilise un fichier .deb pour installer FreeTube, donc ici, on ne conserve que deb dans la liste des fichiers générés. Adaptez cette ligne à ce que vous désirez faire. Il est à noter qu'il existe également une ligne pour macOS et une ligne pour Windows. Utilisez-les à bon escient.
  targets = Platform.LINUX.createTarget(['deb'], arch)
 
* Enregistrez et fermez le fichier (dans `nano`, appuyez sur `CTRL + X`, puis `Y`, puis `Entrée`).
 
==Compiler FreeTube ==
* Compilez FreeTube avec la commande suivante  (vous êtes dans le dossier Freetube ):
npm run build
* Si vous exécutez un système d'exploitation Linux 64 bits et que vous souhaitez créer des binaires pour l'architecture ARM64, vous pouvez utiliser la commande suivante :
npm run build:arm
Cette commande compile le projet pour l'architecture ARM64, ce qui est utile si vous prévoyez d'exécuter l'application sur des dispositifs basés sur ARM, comme les Raspberry Pi.
 
== Vérifier le dossier de construction ==
Après la compilation, un dossier `build/` sera créé dans le répertoire du projet. Vous pouvez y trouver le fichier .deb (ou cibles choisies dans le fichier build.js).
 
= Installer Freetube =
==Sauvegardes ==
* Tout d'abord, dans Freetube,  '''faites une sauvegarde''' de votre historique, vos abonnements et vos listes de lecture depuis Paramètres / Données / exporter vos abonnements, exporter l'historique et exporter des listes de lecture.
* Si vous avez installé Freetube avec un fichier deb, vous pouvez faire une sauvegarde du fichier de configuration de FreeTube. Depuis quelques versions il n'est plus supprimé pendant une mise à jour mais c'est plus sûr. Ce fichier est dans /home/<user>/.config/FreeTube. Vous pourrez supprimer cette sauvegarde quand le logiciel se sera lancé correctement. (Remplacez <user> par votre nom d'utilisateur)
cp -R /home/<user>/.config/Freetube  /home/<user>/.config/Freetube_old
== Faire de la place ==
* Désinstaller l'ancienne version que vous aviez installée avec une archive deb. (La version snap peut être conservée).
sudo apt remove freetube
 
== Installation ==
* Installez la nouvelle version de Freetube
<ul>
<li>'''En ligne de commande''' (remplacez <version> par la version du paquet deb)
<pre> sudo dpkg -i <chemin vers le fichier deb>/freetube_<version>_amd64.deb</pre>
</li>
<li> '''Méthode graphique''' : méthode que vous pouvez conseiller si vous partagez votre paquet deb avec quelqu'un d'autre.
<ul>
  <li> Faites un clique gauche sur le fichier deb (freetube_<version>_amd64.deb). </li>
  <li> Cliquez sur  "Ouvrir avec une autre application". </li>
  <li> Sélectionnez "Installation de l'application". </li>
</ul>
</li>
</ul>
 
Si des erreurs se sont glissées dans ce tutoriel, veuillez me le signaler sur [https://framapiaf.org/@acryline '''Mastodon''']. Merci !

Version du 22 février 2025 à 16:10

Préambule

  • Ce tutoriel décrit la compilation du logiciel Freetube.
  • Le système d'exploitation utilisé est Ubuntu 22.04 LTS, mais le tutoriel peut être adapté à d'autres distributions Linux, ainsi qu'à Windows ou macOS.

Sources

Pré-requis

Assurez-vous d'avoir installé les éléments suivants :

Git

Pour installer Git utiliser les commandes suivantes dans un terminal :

sudo apt update
sudo apt install git

build-essential, npm

  • Le paquet build-essential sur les systèmes basés sur Debian, comme Ubuntu, est un méta-paquet qui regroupe un ensemble d'outils et de bibliothèques nécessaires pour compiler des logiciels à partir de leur code source.
  • npm (Node Package Manager) est le gestionnaire de paquets par défaut pour Node.js, permettant aux développeurs d'installer, de gérer et de partager des bibliothèques et des dépendances JavaScript.

Pour installer build-essential et npm, exécutez :

sudo apt install build-essential  npm

Installer nvm

nvm est un outil très utile pour gérer les versions de Node.js et npm.

Avant de commencer, je tiens à préciser que sur mon ordinateur, nvm (Node Version Manager) était déjà installé. Je ne me souviens pas de l'avoir installé manuellement, il est donc possible qu'il ait été installé par un autre outil ou script ou d'un environnement de développement.

Cependant, pour ceux qui n'ont pas nvm installé ou qui souhaitent l'installer, voici la méthode recommandée] :

  1. Télécharger et installer nvm. Exécutez la commande suivante :
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  1. Chargez l'environnement
source ~/.bashrc
  1. Après avoir installé nvm, vérifier si les lignes suivantes ont été ajoutées à votre fichier de configuration de shell ( ~/.bashrc ou ~/.zshrc) :
 export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
  • Si ces lignes sont présentes : Cela signifie que nvm est correctement configuré pour être chargé automatiquement à chaque fois que vous ouvrez un nouveau terminal.
  • Si ces lignes ne sont pas présentes : Vous pouvez les ajouter manuellement à la fin de votre fichier de configuration de shell. Rechargez l'environnement.

Node.js

  • Node.js est un environnement d'exécution JavaScript côté serveur qui permet d'exécuter du code JavaScript en dehors d'un navigateur, facilitant le développement d'applications web et de serveurs.
  • Il est recommandé d'utiliser une version LTS (version avec un nom de code ).
  • Ce tutoriel a été écrit le 22 février 2025 et, à cette date les sources de Freetube ne compile pas avec une version inférieure à v22.14.0. Il semble qu'il faille utilisez la version LTS de Node.js la plus récente.

Commandes utiles

  • Listez les versions installée de Node.js avec la commande
nvm ls
  • Pour trouver la version active de node.js :
node -v
  • Installer une version LTS de Node.js (ici la version 22.04 LTS)
nvm install 22
  • Utiliser une version de Node.js (par exemple la version 22.04)
nvm use 22
  • Définir la version 22.04 TLS comme version de Node.js utilisée par défaut :
nvm alias default 22

Installer Yarn

  • Yarn est un gestionnaire de paquets alternatif à npm, conçu pour être rapide et fiable, offrant des fonctionnalités telles que la mise en cache des paquets et la gestion des dépendances en parallèle.
  • Pour cela il faut ajouter le dépôt Yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
  • Maintenant on peut installer Yarn :
sudo apt install --no-install-recommends yarn

L'option --no-install-recommends est utilisée pour indiquer à apt de ne pas installer les paquets recommandés qui sont généralement installés par défaut avec le paquet principal.

Compiler Freetube

Cloner le dépôt FreeTube

  • Placez vous dans le dossier de votre choix et lancez la commande :
git clone https://github.com/FreeTubeApp/FreeTube.git
  • Cette commande télécharge le dossier FreeTube complet des sources du logiciel FreeTube.

Modifier le script de construction

  • Placez-vous dans le dossier Freetube :
cd Freetube
  • Ouvrez le fichier `_scripts/build.js` dans un éditeur de texte (par exemple, `nano`) :
nano scripts/build.js
  • Recherchez la ligne contenant `Platform.LINUX.createTarget` et modifiez-la pour supprimer les cibles que vous ne souhaitez pas construire.
  • Dans Ubuntu, on utilise un fichier .deb pour installer FreeTube, donc ici, on ne conserve que deb dans la liste des fichiers générés. Adaptez cette ligne à ce que vous désirez faire. Il est à noter qu'il existe également une ligne pour macOS et une ligne pour Windows. Utilisez-les à bon escient.
 targets = Platform.LINUX.createTarget(['deb'], arch) 
  • Enregistrez et fermez le fichier (dans `nano`, appuyez sur `CTRL + X`, puis `Y`, puis `Entrée`).

Compiler FreeTube

  • Compilez FreeTube avec la commande suivante (vous êtes dans le dossier Freetube ):
npm run build
  • Si vous exécutez un système d'exploitation Linux 64 bits et que vous souhaitez créer des binaires pour l'architecture ARM64, vous pouvez utiliser la commande suivante :
npm run build:arm

Cette commande compile le projet pour l'architecture ARM64, ce qui est utile si vous prévoyez d'exécuter l'application sur des dispositifs basés sur ARM, comme les Raspberry Pi.

Vérifier le dossier de construction

Après la compilation, un dossier `build/` sera créé dans le répertoire du projet. Vous pouvez y trouver le fichier .deb (ou cibles choisies dans le fichier build.js).

Installer Freetube

Sauvegardes

  • Tout d'abord, dans Freetube, faites une sauvegarde de votre historique, vos abonnements et vos listes de lecture depuis Paramètres / Données / exporter vos abonnements, exporter l'historique et exporter des listes de lecture.
  • Si vous avez installé Freetube avec un fichier deb, vous pouvez faire une sauvegarde du fichier de configuration de FreeTube. Depuis quelques versions il n'est plus supprimé pendant une mise à jour mais c'est plus sûr. Ce fichier est dans /home/<user>/.config/FreeTube. Vous pourrez supprimer cette sauvegarde quand le logiciel se sera lancé correctement. (Remplacez <user> par votre nom d'utilisateur)
cp -R /home/<user>/.config/Freetube  /home/<user>/.config/Freetube_old 

Faire de la place

  • Désinstaller l'ancienne version que vous aviez installée avec une archive deb. (La version snap peut être conservée).
sudo apt remove freetube

Installation

  • Installez la nouvelle version de Freetube
  • En ligne de commande (remplacez <version> par la version du paquet deb)
     sudo dpkg -i <chemin vers le fichier deb>/freetube_<version>_amd64.deb
  • Méthode graphique : méthode que vous pouvez conseiller si vous partagez votre paquet deb avec quelqu'un d'autre.
    • Faites un clique gauche sur le fichier deb (freetube_<version>_amd64.deb).
    • Cliquez sur "Ouvrir avec une autre application".
    • Sélectionnez "Installation de l'application".

Si des erreurs se sont glissées dans ce tutoriel, veuillez me le signaler sur Mastodon. Merci !