Changement de version ARDUINO sous UBUNTU

Salut à tous

Je viens de changer de version d'IDE ARDUINO sur mon PC.
Sous LINUX UBUNTU 16.04, j'utilise UNITY.
Je passe de 1.6.9 à 1.8.5.

La recette qui semblerait évidente :

  • supprimer l'icône ARDUINO du lanceur
  • lancer l'IDE ARDUINO en ligne de commande
  • cliquer avec le bouton droit sur la nouvelle icône et choisir "conserver dans le lanceur"

Eh bien non, la prochaine fois que vous cliquerez sur l'icône ARDUINO, il lancera l'ancienne version !!!
C'est ce qui se passe à condition bien sûr de ne pas avoir mis à la poubelle votre ancienne version. Sinon, il ne se passe rien.

Ce qu'il faut faire :
Éditez votre fichier .local/share/applications/arduino-arduinoide.desktop

[Desktop Entry]
Type=Application
Name=Arduino IDE
GenericName=Arduino IDE
Comment=Open-source electronics prototyping platform
Exec=/home/riton/arduino-1.6.9/arduino
Icon=arduino-arduinoide
Terminal=false
Categories=Development;IDE;Electronics;
MimeType=text/x-arduino
Keywords=embedded electronics;electronics;avr;microcontroller;
StartupWMClass=processing-app-Base

Remplacez la version :

[Desktop Entry]
Type=Application
Name=Arduino IDE
GenericName=Arduino IDE
Comment=Open-source electronics prototyping platform
Exec=/home/riton/arduino-1.8.5/arduino
Icon=arduino-arduinoide
Terminal=false
Categories=Development;IDE;Electronics;
MimeType=text/x-arduino
Keywords=embedded electronics;electronics;avr;microcontroller;
StartupWMClass=processing-app-Base

J'enfonce certainement les portes ouvertes pour les initiés, mais imaginez un instant le perplexité du débutant.

@+ et bonnes bidouilles sous LINUX.

Ce n'est ni un problème Linux, ni un problème Ubuntu, ni même de choix d'interface graphique

C'est un fonctionnement qui me semble normal : ce n'est pas l'application qui crée le lanceur sur le bureau.
Il ne manquerait plus que les applications fassent ce qu'elle veulent ! Le patron c'est le gestionnaire du PC.
Le lanceur a été créé avec une version du programme, si on installe une autre version il faut bien lui dire que le chemin vers l'application a changé ou créer un nouveau lanceur à coté du premier.

Surtout que l'IDE arduino n'est plus empaquetée par Debian depuis de très nombreuses années, la version arduino ne s'installe pas dans /usr et ne respecte pas les règles Debian.

Note que tu as fais la modif directement dans le fichier du lanceur mais que la modif est faisable directement en mode graphique, enfin c'est comme cela avec KDE.

Je ne refuse pas par principe le mode graphique,dès fois c'est plus simple en console, d'autres fois c'est plus simple en graphique.
Et pour le cas présent où il faut juste changer un lien c'est plus simple en graphique.

Note que tu as fais la modif directement dans le fichier du lanceur mais que la modif est faisable directement en mode graphique, enfin c'est comme cela avec KDE.

Comme je l'ai expliqué, j'utilise UNITY, pas KDE.

Sous UNITY, aucun nouveau lanceur n'est créé. Le lanceur précédent est utilisé mais le chemin de l'application n'est pas modifié dans le fichier du lanceur.

@+

J'insiste et persiste : AMHA c'est normal.
Kde ou Unity il ne doit pas y avoir de grosses différences de principe : les lanceurs sur le bureau il faut les créer soi-même et c'est normal.

Pour que le changement de version soit automatiquement répercutée sur le lanceur (et cela peut poser problème) il faudrait que l'IDE arduino soit téléchargée à partir des dépots officiels et donc satisfasse aux règles Debian. Elle aurait alors accès à un certain nombre de privilèges.

A partir du moment où l'IDE ne fait pas (plus) partie des dépots officiels, le fonctionnement que tu as remarqué me parrait normal et permet de faire appel facilement à des versions différentes du logiciel.

Sans faire de grosses recherches, dans le répertoire racine qui contient l'IDE on trouve un script install.sh qui permet de créér une entrée dans le menu.

Oui mais jamais je n'autoriserai un logiciel non empaqueté par Debian à avoir ce type de privilèges.
C'est une source d'em****des quand il faut désinstaller et sauf à être installé sur un PC multiutilisateurs je n'en vois pas l'intérêt.

Un logiciel comme l'IDE qui embarque des versions différentes de GCC, avr-gcc et avrdude et autres utilitaire Atmel de celles présentes dans /usr s'installe aux risques et périls de l'utilisateur.

NB : la version 1.0.5 est toujours maintenue et peut être installée.
Elle est toujours cohérente avec l'ensemble des bibliothèques logiciels présentes dans /usr dont les dernières versions de GCC, avr_gcc et utilitaires Atmel.

Clairement pour avoir un lanceur sur le bureau je préfère prendre, une seule fois, un peu de temps pour apprendre à créer un lanceur avec l'interface graphique que j'ai choisi plutôt que de faire confiance à un "machin".

Pour que le changement de version soit automatiquement répercutée sur le lanceur (et cela peut poser problème) il faudrait que l'IDE arduino soit téléchargée à partir des dépots officiels et donc satisfasse aux règles Debian. Elle aurait alors accès à un certain nombre de privilèges.

J'ai effectivement installé mon IDE à partir des paquets officiels la première fois.

Je suis vite passé à une version 1.6.9 car qui pourrait se contenter à l'heure actuelle d'une version 1.0.5 ?
Je pense qu'à l'époque j'ai modifié également le lanceur à la main.

Évidemment la 1.6.9 s'installe en dehors du système APT, c'est clair.

Pas la peine de m'expliquer APT. Étant développeur LINUX moi-même il est évident que la création d'un paquet DEBIAN fait partie de mes connaissances de base.

Le paquet DEBIAN ARDUINO produit un lanceur nommé /usr/share/app-install/desktop/arduino:arduino.desktop
Ce lanceur est correct.

L'autre moyen est de lancer l'IDE à la main et de conserver l'icône dans la barre de lancement.
Cette opération produit un lanceur non valide .local/share/applications/processing-app-base.desktop
Le lanceur /usr/share/app-install/desktop/arduino:arduino.desktop n'est pas utilisé.

Avec une application classique, la conservation du lanceur se passe bien.
Exemple : vlc
Lancer vlc par le launcher ou par le shell.
Conserver dans la barre de lancement.
Tout se passe bien.
Remarque: le lanceur se trouve ici : /usr/share/app-install/desktop/vlc:vlc.desktop

@+

fdufnews:
Sans faire de grosses recherches, dans le répertoire racine qui contient l'IDE on trouve un script install.sh qui permet de créér une entrée dans le menu.

Tout à fait. Ce script produit un lanceur accessible par le "launcher".
C'est d'ailleurs ce que je ferai à l'avenir.
J'avais simplement pris l'habitude de lancer arduino par le shell et de le conserver ensuite dans la barre par un click droit.
A ne pas faire donc.

Oui mais jamais je n'autoriserai un logiciel non empaqueté par Debian à avoir ce type de privilèges.

Le script install.sh n'a pas besoin de privilèges particuliers. Il n'effectue aucun accès aux répertoires système.

@+

perso, je prend le zip, le décompresse dans mon home avec un autre répertoire.
je copie un lanceur et modifie le chemin.
comme ca, j'ai 5 versions différentes d'IDE sur mon bureau, chacune indépendante avec leur GCC perso.

Effectivement, cela fonctionne aussi.
Et pour les librairies, tu crées un lien symbolique sur le répertoire libraries ?

@+

Pas la peine de m'expliquer APT. Étant développeur LINUX moi-même il est évident que la création d'un paquet DEBIAN fait partie de mes connaissances de base.

Je sais bien, tu n'étais pas directement concerné, mais ici il y a des membres qui sont tentés par passer à linux j'ai répondu en pensant à eux.

perso, je prend le zip, le décompresse dans mon home avec un autre répertoire.
je copie un lanceur et modifie le chemin.

Exact c'est le plus simple, perso je ne conserve qu'un lanceur : les autres versions sont quand même facilement accessibles sans pour autant encombrer le bureau, enfin c'est mon choix.

hbachetti:
Effectivement, cela fonctionne aussi.
Et pour les librairies, tu crées un lien symbolique sur le répertoire libraries ?

Je ne comprend pas bien.
Le répertoire Arduino est commun à toutes les versions.

Du temps de la guerre intestine entre LCC et ORG, et les versions respectives et incompatibles 1.6.x et 1.7.x, je passais par un script intermédiaire pour lancer l'IDE. J'avais deux répertoire distincts arduino_lcc et arduino_org.
Example utilisation de 1.6.x :
Au démarrage le script renommais arduino_lcc en Arduino puis lançait l'IDE, à la sortie du programme IDE il renommais Arduino en arduino_lcc
et lycée de Versailles pour la 1.7.x.

Maintenant avec une seule architecture d'IDE ce n'est plus la peine sauf si on veut des réglages différents.

chaque version de mes IDE a son propre répertoire de lib, ca évite les conflits entre versions.