[Edit: Lösung ausführlich in #16]
Hat diese Konstellation irgendwer am Laufen?
Ich habe auf einem User im eigenen Home eine 1.8.19 ausgepackt und mit dem install.sh ans laufen gebracht.
Schön einen Favoriten angelegt und schick.
Solange der eine User das nutzt ist das kein Problem.
Wenn jetzt aber ein zweiter Nutzer eine ebensolche Konfiguration fährt, also im lokalen Homeverzeichnis auspacken und mit dem install.sh konfigurieren, dann kann der erste User die IDE nicht mehr starten.
Dazu zwei Fragen:
War das in früheren Ubuntu-Versionen auch schon so?
Wer hat eine Mehrnutzerumgebung unter Ubuntu 20.04 (LTS) am laufen und kann mal kurz beschreiben wie das konfiguriert wurde?
Das anlegen eines portable-Ordners hilft im Übrigen nicht.
Da werden zwar dann die Preferences, Sketche und libs gespeichert, ändert aber am Verhalten nix.
Die Installation mittels sudo install aus den offiziellen Ubuntu-Quellen ist offensichtlich auch nicht geeignet, da veraltete IDE. Arduino › Wiki › ubuntuusers.de
Dort wird ebenfalls der Weg über das Download-Paket und install.sh vorgeschlagen und genau das funktioniert nur einmal...
OK, - dann ist man bei Ubuntu auch nicht besser als bei OpenSuse (meinem BS)...
Ich probierre gleich mal aus ob Dein Problem bei OpenSuse auch auftritt, - muss ich nur an einen anderen Rechner.
Kann User 1 die IDE wieder aufrufen wenn Du sie bei User 2 deinstallierst?
Wenn ja, dann versuch mal bei User 2 nicht über die install.h zu gehen sondern erstell' das Icon und die Einträge für den User manuell.
Die install.sh ruft die arduino-linux-setup.sh auf. Seit die drinn ist (seit 1.18.16 wenn ich mich richtig erinnere) musste ich bei der Installation auch immer "nachbessern".
Die arduino-linux-setup.sh setzt auch die Pfade, standard sind absolute Pfadangaben. Ich habe aber nicht erkannt wo diese Angaben überall hingeschrieben werden.
Ich unterstelle aber, dass das Installieren bei User 2 da einen systemweiten Eintrag überschreibt.
Test auf dem Zweitrechner:
Auf User 2 Arduino IDE 1.8.19 per install.sh installiert, - läuft
Nach User 1 gewechselt, - IDE Startet ganz normal
Auch auf diesem Rechner keine Einträge in /usr/local/bin/
Allerdings: ich habe die install.sh nicht mit root rechten ausgeführt, ich muss deshalb die UDEV rules und die Gruppenzugehörigkeit der User manuell setzen und den ModemManager manuell entfernen.
Und ich hab mal auch probiert.
Ich habs natürlich mit root-Rechten gemacht und da passiert was eigenartiges.
Wird install.sh aufgerufen wird das Ganze als globale Installation gehandhabt.
Wenn für user1 eingerichtet und für user2 noch nicht und ich rufe als angemeldeter user2 arduino auf der Konsole auf, kann ich damit ganz normal arbeiten, als wäre ich user1!
Wenn jetzt aber bei user1 das Verzeichnis portable anlege, gehts nicht mehr.
Grund ist:
user2@soelden:~$ arduino
Picked up JAVA_TOOL_OPTIONS:
Error reading preferences: Error reading the preferences file. Please delete (or move)
/home/user1/arduino-1.8.19/portable/preferences.txt and restart Arduino.
java.io.FileNotFoundException: /home/user1/arduino-1.8.19/portable/preferences.txt (Keine Berechtigung)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at processing.app.helpers.PreferencesMap.load(PreferencesMap.java:73)
at processing.app.PreferencesData.init(PreferencesData.java:76)
at processing.app.BaseNoGui.initParameters(BaseNoGui.java:834)
at processing.app.Base.<init>(Base.java:217)
at processing.app.Base.main(Base.java:150)
Ein Blick in die Rechte bei user1 gibt dann Aufschluß:
user1@soelden:~/arduino-1.8.19/portable$ ls -l
insgesamt 28764
drwxrwxr-x 3 user1 users 4096 Nov 17 17:32 cache
-rw-rw-r-- 1 user1 users 28866849 Nov 17 17:57 library_index.json
-rw-rw-r-- 1 user1 users 543 Nov 17 17:57 library_index.json.sig
-rw-rw-r-- 1 user1 users 562510 Nov 17 17:57 package_index.json
-rw-rw-r-- 1 user1 users 543 Nov 17 17:57 package_index.json.sig
-rw------- 1 user1 users 3388 Nov 18 10:10 preferences.txt
drwxrwxr-x 8 user1 users 4096 Nov 17 12:28 sketchbook
user1@soelden:~/arduino-1.8.19/portable$
Sobald die Berechtigungen für die preferences.txt erweitert werden, nimmt user2 auch von dort ganz normal an. Ist aber nicht Sinn der Sache.
Also das ganze nochmal zurück auf Anfang und nur mit Userrechten die install.sh ausführen. Das geht komplett schief:
user2@soelden:~/arduino-1.8.19$ sh install.sh
Adding desktop shortcut, menu item and file associations for Arduino IDE...touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
ln: Die symbolische Verknüpfung '/usr/local/bin/arduino' konnte nicht angelegt werden: Keine Berechtigung
Adding symlink failed. Hope that's OK. If not then rerun as root with sudo.
done!
Und er will wieder einen Symlink in /usr/local/bin anlegen.
Sehr mysteriös...
Hm, weshalb geht das bei Dir schief und bei mir nicht, - was machen wir unterschiedlich?
Ich mache (als User, alles "grafisch"): Download in einen Ordner entpacken, in den Ordner wechsel, Klick auf die install.sh. Ich bekomme ein Popup "was möchten Sie tun"? Ich wähle "ausführen".
IDE wird im User Verzeichnis installiert, keine Fehlermeldung, IDE lässt sich starten.
Ich habe noch mal in die install.sh geguckt... Wenn Dir so ein shell script was sagt (mir nicht wirklich...) sieh Dir mal die Zeilen 69 bis 75 an.
Dazu die Frage: Ist bei Ubuntu der Erste User nicht immer auch root?
Passt aber nicht zum Meckern wenn Du als User2 installieren willst...
Ich hab das jetzt auch mir einer 1.8.15 probiert. Ich hatte an meiner alten Wirkungsstätte ein 16.04 da habe ich mehrere Versionen parallel am laufen gehabt.
Mit der 20.04 habe ich mit der 1.8.15 die gleichen Probleme. Das scheint also ein Ubuntu-Problem zu sein, denn ulkigerweise versucht auch diese die Symlinks in usr/local/bin anzulegen.
Nein, das ist schon länger nicht mehr so. Beim Raspi funktioniert das noch so
Wenn ich als User mit root-Rechten arbeiten möchte, ist der einfache Weg über sudo.
Ich hab zumindest keine Idee mehr.
Vielleicht bekomme ich übers WE einen Text für's englishsprachige Forum gebaut, der das auf den Punkt bringt. Dann bleibt nur die Hoffnung, das sich damit auseinandersetzt....
Danke fürs mitmachen.
Achso: Wenn ich das grafisch mache, dreht sich die Eieruhr und das wars beim Aufruf der install.sh - Grund dürfte sein, das genau das selbe passiert wie beim Aufruf auf der Konsole. Das Skript ist bereits als Ausführbar gekennzeichnet.
ist das sh install.sh im Userkontext der richtige Weg, auch mit den Fehlermeldungen.
Mit einer frischen Installation und mehreren Benutzern ist das recht einfach. Für eine unbekannte bestehende Installation hier eine
Vorbereitung bestehender Installationen
Als erstes sollte ein Backup gemacht werden; mindestens von seinen Sketches und der preferences.txt
Wer bereits im Vornherein eine als portable-Installation eingerichtete IDE am laufen hatte, kopiert sich vorsichtshalber seinen portbale-Ordner weg.
Alle anderen finden im USER-Home einen Ordner Arduino. Der enthält standardmäßig die Sketche.
Zusätzlich gibt es einen (versteckten) Ordner .Arduino15, in dem die preferences.txt abgelegt ist.
Wenn das gesichert ist, geht es in den Arduino-Ordner und dort wird als erstes die uninstall.sh im sudo-Kontext ausgeführt:
user2@soelden:~/arduino-1.8.19$ sudo sh uninstall.sh
Removing desktop shortcut and menu item for Arduino IDE...
done!
user2@soelden:~/arduino-1.8.19$
Darauf folgend das nochmal im Userkontext:
user2@soelden:~/arduino-1.8.19$ sh uninstall.sh
Das insgesamt für jede bestehende Installation. Also ggfls. auch frühere Versionen genau so ruhig stellen. Später kommen die wieder zurück.
Vorbereitung bei Neuinstallation
Wenn noch nicht geschehen wird in jedem User-Home das Archiv von der Arduino-Homepage entpackt.
Nach dem entpacken gibt es einen Ordner arduino-1.8.19 (ggfls. in einem Ordner arduino-1.8.19-linux64 - bei einer 64bit Installation) Der kann ins root des Homeverzeichnis gelegt und, wer ggfls. mehrere IDE am laufen hat, umbenannt werden.
Ich empfehle die IDE als portable anzulegen! Dazu einfach einen Unterordner portable anlegen.
Das hat den Vorteil, das alle Sketches, libs und Einstellungen in diesen Ordner gehen und mit einem Kopiervorgang gesichert und verteilt werden können.
Wer das nicht macht, benutzt für die Einstellungen das (versteckte) Verzeichnis .Arduino15 und als (änderbare) Vorgabe das Verzeichnis Arduino für Sketches.
Jetzt wird die install.sh gestartet:
user2@soelden:~/arduino-1.8.19$ sh install.sh
Adding desktop shortcut, menu item and file associations for Arduino IDE...touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
[...]
touch: '/home/user2/.local/share/icons/hicolor/.xdg-icon-resource-dummy' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
ln: Die symbolische Verknüpfung '/usr/local/bin/arduino' konnte nicht angelegt werden: Keine Berechtigung
Adding symlink failed. Hope that's OK. If not then rerun as root with sudo.
done!
user2@soelden:~/arduino-1.8.19$
Die Meldungen können und müssen ignoriert werden.
Die symbolische Verknüpfung '/usr/local/bin/arduino' darf NICHT erstellt werden!
Anders als bei der Installation mit rootrechten wird kein Favorit angelegt.
Dafür ist auf dem Desktop jetzt ein Starter abgelegt:
Die Bezeichnung kann (bei mehreren Version muss) umbenannt werden.
Danach ist dem Starter die Erlaubnis zu geben, dies auch zu tun. (rechte Maustaste - Start erlauben)
Und dann bekommt der Starter auch ein vernünftiges Gesicht
Noch eine Ergänzung:
Die IDE läuft jetzt zwar für jeden User, aber er wird (unter OpenSuse ist es zumindest so) noch keine Sketche auf den Arduino hochladen.
Damit das auch funktioniert müssen die User der Gruppe "dealout" zugehören. Das noch erledigen, dann kann der User auch Sketche hochladen, - zumindest auf die AVRs.
Für andere Boards muss der User noch weiteren Gruppen angehören und für manche Boards benötigt es auch Einträge in den UDEV roules und der "Modemmanager" muss deinstalliert werden.
Erledigen soll das eigentlich das mit der IDE mitgelieferte shellscript "arduino-linux-setup.sh", welches aber definitif als root ausgeführt werde muss damit es die Udev roules schreiben kann.
Das Schreiben der UDEV roules war bei mir aber das EInzige was funktioniert hat, den Modemmanager löschen ließ die Paketverwaltung nicht zu und die Grupenzugehörigkeiten wurden auch nicht ergänzt...
Stimmt.
Ich hatte das mit der Neuinstallation nur einmal durchgespielt und danach das Image von gestern Abend zurückgespielt und dann eine Strategie für die vorhandenen Installationen erarbeitet.
Durch die dortige bereits ausgeführte install.sh im root-Kontext war die Grupenzuordnung schon gegeben.
Fazit: So richtig ausgegoren ist das noch nicht... Aber wenn man weiß wie es geht oder nachlesen kann, dann sollte das auch keine größere Hürde sein.