Kopiertes Programm läuft nicht

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Wie hier bereits ausführlich bequatscht wurde, kommt es auf das Dateisystem des Datenträgers an, worauf die Datei kopiert wurde. Wenn das ein _nicht_-Linux-Dateisystem ist wie FAT oder NTFS usw dann gehen Dateiattribute verloren. Nimmt man aber ein Linux-Dateisystem wie ext3, ext4 usw dann bleiben die Attribute bestehen.

    Am besten merkst du dir einfach:
    Du kopierst die Datei und stellst anschließend auf dem Ziel-System sicher dass die Datei Ausführrechte besitzt, was du mithilfe von "chmod +x DATEI" bewerkstelligst.
    Wenn die Ausführrechte fehlen dann funktioniert eine direkte Ausführung ala " ./datum " nämlich nicht.

    Das was Aro auf Seite#1 geschrieben hat ist daher unvollständig und so wie es da steht leider nicht richtig - sorry aber auch mit prellen von !!!! wird das nicht besser.


    Als nächstes gibt es 2 verschiedene Arten ein Programm zu kompilieren: shared- und static linked.
    Shared-Linked bedeutet das Libraries nicht in die entstehende Binary eingefügt werden und somit die Programm-Datei kleiner wäre. Es müssen dann aber die benötigten Libs auf dem System installiert sein.
    Static-Linked integriert die Libs in die Binary und wäre somit unabhängig der auf dem System installierten Libs. Das funktioniert aber nicht immer da manche Libs gewisse Abhängigkeiten haben, zB zu glibc...

    Vermutlich hast du auf dem 1.Pi eine shared-Binary erstellt und musst jetzt halt sicherstellen das die Libs auf dem 2.Pi installiert sind damit es funktioniert.

    Dein zuletzt gezeigtes Problem bzw Programm hat aber nur etwas mit den eXecute Rechten der Datei zu tun ;)
    Siehe dazu auch:
    https://wiki.ubuntuusers.de/Rechte/
    https://wiki.ubuntuusers.de/chmod/

  • Hallo,

    es ging doch darum die Anwendung zum laufen zu bringen und nicht um eine detailierte Anleitung, wie man laufende Anwendungen auswechselt.

    Aber um Substanz in die Diskussion zu bringen gibts jetzt eine Anleitung, die ich seit jahrzehnten unter Windows nutze und die unter Linux auf dem Raspi ganz genau so funktioniert :

    Das man eine laufende Anwendung nicht einfach so auswechseln kann ist schon klar. Aber wenn man sich ein bischen auskennt, ist das ganz leicht möglich !!!

    Es ist übehaupt kein Problem das sich eine laufende Anwendung selbst umbebennen kann. Und um jede sinnlose Diskusion zu unterbinden, muß man bei mehrfacher Nutzung erst prüfen, ob es bereits eine Datei mit dem neuen Namen gibt und diese dann vorher löschen löschen.
    Nach dem Umbenennen läuft das Programm anstandslos weiter es kann die aktualisierte Datei auf die Position und den alten Dateinamen der bisherigen Datei ohne Fehlermeldung kopieren, die aktualisierte Datei starten und sich selbst beenden.

    Das alte Programm muß ggf. geöffnete Dateien vor den Start der neuen Datei schließen, wenn es exklusiv darauf zugreift.


    Wenn ich etwas nicht kenne und jemand behauptet das er es selbst realisiert hat, dann frage ich höflich, wie geht das ?
    Automatisch zusammengefügt:
    Hallo hunter_spike,

    Deine Zeilen gehen runter wie Öl. Ich freue mich, das Du auf meinen Rat gehört hast und ich Dir somit helfen konnte.
    Offensichtlich haben sich hier ein paar Leute auf mich eingeschossen, die aus Prinzip alles anzweifeln was ich schreibe.

    Fast zwei volle Seiten mit Beiträgen, die mich anzweifeln und zum Schluß habe ich doch Recht gehabt. Das sollte ein gefällt mir Klick wert sein.

    Einmal editiert, zuletzt von Aro (5. März 2017 um 20:20)


  • ...
    Offensichtlich haben sich hier ein paar Leute auf mich eingeschossen, die aus Prinzip alles anzweifeln was ich schreibe.
    Fast zwei volle Seiten mit Beiträgen, die mich anzweifeln und zum Schluß habe ich doch Recht gehabt. Das sollte ein gefällt mir Klick wert sein.

    Angezweifelt wurde und wird nach wie vor Deine Aussage bezüglich der Dateiattribute,

    Zitat


    ...
    Wenn die Datei über den Stick übertragen wird, dann weis Windows z.B. , das es eine ausführbare Datei ist und geht richtig damit um.
    ...
    In Linux ist das nicht so! Das Dateiatribut ausführbare Datei geht verloren ...


    denn die ist trotzdem Unsinn und definitiv falsch (eine belastbare Quelle hast Du immer noch nicht geliefert).

    cu,
    -ds-


  • Deine Zeilen gehen runter wie Öl. Ich freue mich, das Du auf meinen Rat gehört hast und ich Dir somit helfen konnte.
    Offensichtlich haben sich hier ein paar Leute auf mich eingeschossen, die aus Prinzip alles anzweifeln was ich schreibe.

    Fast zwei volle Seiten mit Beiträgen, die mich anzweifeln und zum Schluß habe ich doch Recht gehabt. Das sollte ein gefällt mir Klick wert sein.

    Nur wenn du so Zeug weiter textest schieß ich mich auf dich ein :fies:

    Wir können uns gerne auf einem respektvollem Niveau darüber weiter unterhalten, ob das was du auf Seite#1 geschrieben hast so stimmt oder noch wichtige Details fehlen...

    Aber leider scheinst du nicht einsehen zu wollen dass das was du auf Seite#1 geschrieben hast so nicht stimmt.
    Leider erwähnst du mit keiner Silbe, das es gewisse Unterschiede zwischen Linux und Windows Dateisysteme gibt, aber erkennst die Erklärungsversuche mehrere(!!) User hier leider auch nicht an sondern argumentierst weiter dagegen. Nur deshalb wurden es 2 Seiten.

    Dich jetzt bestätigt zu fühlen weil der TE mithilfe von "chmod" sein Problem lösen konnte und so wie du dich am Ende von Beitrag#22 dazu äußerst, setzt dem ganzen noch die Krone auf. Auf die Weise sorgst Du Selbst dafür das andere sich auf dich einschießen.

  • Nunja, ich hatte das so verstanden, dass eine Linux Datei beim Kopieren unter Windows seine Attribute verliert, daher könnte ich das Ganze nachvollziehen.

    Aber mir ist auch ab und zu mal aufgefallen, dass von Windows zurück kopierte Dateien immer als ausführbar gekennzeichnet werden.

    Aber alles nur Hörensagen und nix, was hier wohl weiter hilft ....

    Ich wollte es nur erwähnen, das sowas nicht ganz unmöglich ist.

    ;) Gruß Outi :D
    Pis: 2x Pi B (Rente) / 1x Pi B+ (Rente) / 1x Pi 2 B (Rente) / 2x Pi 3 B (RaspberryMatic / Repetier Server) / 2x Pi Zero 1.2 (B. Lite) / 2x Pi Zero 1.3 (B. Lite) / 2x Pi Zero W 1.1 (B. Lite) / 1x Pi Zero 2 (mal so, mal so) / 1x Pi 3 B+ (Tests) / 1x Pi 4 B 4GB (BW Lite (Webserver)) / Pi 400 (BW) / 1x Pi 5 (BW) / 2x Pi Pico / 2x Pi Pico W
    Platinen: Sense HAT / HM-MOD-RPI-PCB / RPI-RF-MOD / PiFi DAC+ V2.0 / TV HAT / Pi 5 Kühler HAT
    Kameras: orig. Raspberry Pi Camera Module V1 & V3 / PS3 Eye

  • Hallo Leute ,

    jetzt reicht es mir. Ich wollte helfen und es hat ja auch genau so geklappt wie ich es geschrieben habe !

    Ich habe es absolut nicht nötig, das ich mich für meine Jahre lange Berufserfahrung so blöd anmachen lasse !

    Es tut mir leid für die, denen ich gerne noch hätte helfen können. Aber das tue ich mir nicht weiter an.

    Das wars - Schluß, Ende und Aus !

  • Als Newbie bin ich hier auf jede Hilfe angewiesen. Deswegen sollte ich mich etwas zurück halten... weiß ich.

    Aber könntet Ihr euch bitte woanders streiten???

    Aro hat mit seinem Tip mein Prog zum laufen bekommen. Ganz klar. Kann sein, das die Erklärung lückenhaft war.... das kann ich nicht entscheiden.

    Dreamshader und Co. haben mir bei anderen Problemen geholfen. Auch ganz klar.

    Aber warum Ihr jetzt meinen Thread zum Streiten benutzt, das kann ich nicht nachvollziehen.


  • Ich habe es absolut nicht nötig, das ich mich für meine Jahre lange Berufserfahrung so blöd anmachen lasse !

    Es tut mir leid für die, denen ich gerne noch hätte helfen können. Aber das tue ich mir nicht weiter an.

    Das wars - Schluß, Ende und Aus !

    Warum so aggressiv?

    Besteht keine Möglichkeit mit dir vernünftig zu reden?


    Ich wollte helfen und es hat ja auch genau so geklappt wie ich es geschrieben habe !

    Um das noch mal hervor zu holen was Du geschrieben hattest:


    Hallo,
    Du hast nichts verkehrt gemacht, sondern nur etwas vergessen.

    Nicht nur er.

    Wenn Du auf dem Raspi kompilierst, dann erhält die Datei durch den Compiler automatisch den Status ausführbares Programm.

    Das ist korrekt.

    Wenn die Datei über den Stick übertragen wird, dann weis Windows z.B. , das es eine ausführbare Datei ist und geht richtig damit um.

    Das ist falsch.

    Windows kann nichts mit auf/für Linux kompilierten C++ Binaries anfangen.

    Was Du hier vergisst ist das ein USB-Stick bzw allgemein Datenträger unterschiedliche Dateisysteme haben kann, was dir später zum Verhängnis wird:

    In Linux ist das nicht so! Das Dateiatribut ausführbare Datei geht verloren und muß extra gesetzt werden.

    Das ist nur bedingt richtig aber eigentlich falsch.

    Wenn das Dateisystem zB ext3 ist dann bleiben die Dateiattribute auf dem USB-Stick erhalten und gehen nicht verloren!

    Nur wenn das Dateisystem FAT, exFAT oder NTFS ist gehen die Dateiattribute verloren, da diese Dateiattribute Linux-Spezifisch sind.

    Wieso/Weshalb/Warum wurde in mehreren Beiträgen versucht zu erklären.


    Das ist also kein Unsinn sondern erprobte Technik - Und wer es nicht glaubt sollte es selbst ausprobieren anstatt meine Hilfe schlecht zu machen!

    Mit "chmod 777" hattest du zwar indirekt/zufällig Recht, mit allem anderen aber nicht.

    "chmod 777" funktioniert zwar, ist allerdings sehr bequem aber total übertrieben - ohne Erklärung kann das fatale Auswirkungen haben.

    Es wurde von mehreren Benutzern die Fehler von Dir versucht zu verbessern, aber anstatt darüber vernünftig zu diskutieren wirfst du mit "Gift und Galle" Pöbeleien um dich. :-/

    Keiner hat etwas gegen Hilfe. Wenn aber Falsche Aussagen gemacht werden, insbesondere gegenüber Anfängern die es dann falsch lernen, sollte es erlaubt sein diese zu korrigieren, oder etwa nicht?

    Wenn es 5 Benutzer anders sehen als du, haben diese 5 automatisch etwas gegen dich - aber nicht zufällig Recht? :s

  • hunter_spike:
    Es hat niemand irgendwo abgestritten, dass die von Aro vorgschlagene Lösung richtig ist ...
    Nur seine Erklärung ist Unsinn und schlicht und ergreifend falsch ... und das kann imho in einem öffentlichen Forum so nicht stehengelassen werden ... das hat schliesslich auch was mit der Glaubwürdigkeit des Forums selbst zu tun.
    Es wurde mehrmals versucht, das Verhalten zu erklären (FAT32 usw.) und dadurch eine Brücke zu bauen. Aber leider stösst das bei Aro auf taube Ohren. Mittlerweile halte ich das für symptomatisch bei ihm ... das ist leider mal so.
    Dass es jetzt (auch) Deinen Thread getroffen hat, ist Pech ... aber tröste Dich, Du bist nicht der Einzige, dessen Thread "gekapert" wurde ... zudem ja Dein Problem auch gelöst ist.
    Ich hoffe jedenfalls, dass Du (und auch der geneigte Leser) im Hinterkopf behälst, dass die Ursache für das "Unterschlagen" des x-Bits das Dateisystem Deines USB-Sticks und nicht Linux ist.

    cu,
    -ds-

  • hunter_spike:

    Code
    chmod 777 <file>

    ist sehr ungewöhnlich, denn dann kann jeder die Datei ändern und löschen. Wenn Du auf der Raspi alleine rumturnst ist das zwar kein Problem. Aber Du solltest Dir das nicht angewöhnen. Wenn Du dann mal auf einem System rumturnst wo Du nicht mehr alleine bist kann das sehr unangenehme Nebenwirkungen haben :-/ . Besser ist immer 755 oder sogar 700. Siehe dazu auch den Linux Befehl umask.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!