Übertragung von Programme an Raspberry

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hey,
    ich bin komplett frisch dabei und will meine ersten Progrmamierprojekte mit der Raspberry durchführen.

    Vorzugsweise möchte ich an meinem Linux rechner alles programmieren und kompilieren und auf der Raspberry ausführen.
    Jetzt stellt sich mir die Frage wie man das am besten bewerkstelligt ohne bei jedem Test per SSH die Daten manuell zu übertragen.

    Hab jetzt versucht den Raspberry über SSH in nen Ordner zu mounten. Hat aber ein paar Nachteile wenn der Ordner bereits beschrieben war usw. usw.
    Gibt es hier eine effizentere Methode?

    edit:// Achja, ich arbeite mit CLion

    Einmal editiert, zuletzt von madman (11. Oktober 2015 um 14:38)

  • Entweder du mountest es per SSH oder du lädst es manuell hoch. Es gibt auch Tools, mit denen sich Verzeichnisse überwachen lassen, die dann bei jeder Änderung dein Programm per SSH hochladen können. Aber warum so viel Aufwand betreiben, wenn es über SSHFS viel einfacher geht?

    Den von dir gebrachten Nachteil bezgl. SSHFS versteh ich nicht. Ich mach das auch über SSH und hab keinerlei Probleme.

  • [font="helvetica, arial, sans-serif"]Hey @-all,[/font]


    [font="helvetica, arial, sans-serif"]kennt sich jemand von euch mit Python Programmiersprache aus?
    Ich habe folgendes Problem:
    Ich bin gerade dabei ein Skript auf mein Raspberry PI 2
    zu laden mit Winscp oder mit Samba Server aber ich kann Ihn nicht öffnen. Da kommt dann =
    python: can't open file 'rapi_car.py': [Errno 2] No such file or directory[/font]
    [font="helvetica, arial, sans-serif"]Warum findet er es nicht, ich bin mit cd .. und cd rapi_car/ ins Verzeichnes wo es trin ist auch als sudo User...
    an was kann es liegen??[/font]

    [font="helvetica, arial, sans-serif"][font="helvetica, arial, sans-serif"] [/font][font="helvetica, arial, sans-serif"]also so bin ich vorgegangen:
    pi@pi ~ $ cd rapi_car/
    pi@pi ~/rapi_car $ dir
    rapi_car.py
    pi@pi ~/rapi_car $
    [/font][/font]
    [font="helvetica, arial, sans-serif"][font="helvetica, arial, sans-serif"]Die Python datei ist im Verzeichnis, aber warumm????[/font][/font]
    [font="helvetica, arial, sans-serif"][font="helvetica, arial, sans-serif"]LG[/font][/font]


  • Entweder du mountest es per SSH oder du lädst es manuell hoch. Es gibt auch Tools, mit denen sich Verzeichnisse überwachen lassen, die dann bei jeder Änderung dein Programm per SSH hochladen können. Aber warum so viel Aufwand betreiben, wenn es über SSHFS viel einfacher geht?

    Den von dir gebrachten Nachteil bezgl. SSHFS versteh ich nicht. Ich mach das auch über SSH und hab keinerlei Probleme.

    Das manuelle Hochladen stört mich eben, jedes mal wenn ich die kleinsten Änderungen am Skript vornehme alles manuell hochzuladen nervt extremst. Hab das noch aus meinen PHP-Zeiten in grauenhafter Erinnerung.

    SSHFS hat bei mir öfter mal Probleme verursacht wenn bereits Dateien im Ordner vorhanden sind/Raspberry noch nicht gemounted war/Verbindung verloren gegangen ist usw. War bisher aber die beste Lösung. Wollte nur mal fragen, ob alle das hier so machen..



    Oder verwende git/mercury oder andere Versionskontrollsysteme (bekanntestes Beispiel svn oder cvs, empfehle ich aber nicht)


    Danke dir! Das hab ich gesucht. Werd jetzt mal GIT einrichten.

    @gold:
    Kann dir da leider nicht helfen, aber erstell am besten einen eigenen Thread in der Phython-Ecke, dann schauen die Leute rein, die sich damit auskennen ;)

  • Git ist das wonach du gesucht hast? Dann kannst aber auch gleich beim manuellen Hochladen bleiben. Mit Git musst du nun jedes Mal mehrere Schritt durchführen:

    Client 1 (Dein Linux-Rechner):

    Code
    git add -A
    git ci -m "..."
    git push

    Client 2 (Raspberry):

    Code
    git pull

    Und zusätzlich musst du noch einen Git-Server einrichten oder du setzt auf Github.com etc.

    Wie gesagt, da ist doch das manuelle Hochladen mit "rsync --delete -av source/ name@server:target/" viel bequemer :D

    Dein Problem mit SSHFS kann ich nicht nachvollziehen, ich verwende SSHFS schon seit langer Zeit und hab da keine Probleme. Du kannst ja mal versuchen SSHFS mit AutoFS zu nutzen. AutoFS mounted automatisch per SSHFS deinen Ordner, sobald du darauf zugreifst.

    Ansonten gäbe es noch den Weg, dir einen Watcher zu installieren. Bspw. den hier: https://github.com/guard/guard
    Der überwacht die von dir definierten Ordner nach Änderungen und führt dann deine Befehle aus.
    Du kannst damit deinen Ordner überwachen lassen und bei jeder automatisiert hochladen. Guard wurde genau für solche Zwecke entwickelt.

  • patlux... das stimmt nicht
    das stimmt so einfach nicht


    völlig falsch, wenn du schon meckerst bitte mit korrekten Informationen.
    1) git add brauchst du nicht jedes Mal, nur wenn neue Dateien hinzukommen, dabei sollte * oder -A aber absolut vermieden werden.
    2) git ci ist SVN-style, ds ist in git nun git commit. Wenn man git commit -a nutzt werden alle Änderungen committet ("gesichert")
    3) Du brauchst nicht unbedingt einen Server, du kannst auch von deinem Desktop-PC pullen, den quasi als Server nutzen. dann brauchst du das git push auch nicht. Ein Server (bitbucket hat auch private kostenlos, bei github musst du für private zahlen, nur öffentliche kostenlos) hat aber seine Vorteile
    Ja das git pull auf dem Client brauchst du dann

    Es werden aber völlig die vielfältigen Vorteile ignoriert, und dass das ganze ohne Überlegen funktioniert und dass du damit auch die Wahl hast man nicht alles zu "kopieren", sondern nur einzelne Dateien davon (Dann natürlich mit etwas mehr denken :) )

    Software sollte eigentlich immer in einer Versionsverwaltung liegen, das erspart eine Menge Arbeit wenn man mal irgendetwas kaputt gemacht hat und partout nicht mehr findet wo. In einem git- oder anderem Repository kann man sich dann einfach anzeigen lassen, was geändert wurde. Man hat eine Versionsgeschichte, kann zu früheren Ständen zurückkehren, kann gelöschte Dateien wiederherstellen... absolut zu empfehlen!

  • Horroreyes:

    Und wo bitte ist das nun automatisiert? Darum gehts hier schließlich.

    Ich kenn die Vorteile von Git ganz gut, ich setze es seit Jahren ein, und weiß deswegen ganz genau, dass es nicht für sowas entwickelt wurde. Es ist - wie du ja schreibst - eine Versionsverwaltung und kein Sync-Client. Das "git ci" ist natürlich ein Alias für "git commit", hab ich komplett vergessen.

    Du verfehlst hier das eigentliche Thema: Der Threadersteller möchte eine bequeme Möglichkeit seine Daten synchron zu halten ohne manuelles Hochladen und mit Git wirst du nunmal immer wieder hochladen/runterladen müssen. Und darauf will ich in meinen vorherigen Beitrag hinhaus: Dann kann er doch auch gleich rsync jedes Mal zum Pushen nutzen, so wie er es bisher gemacht hat. Da besteht kein Unterschied.

    Ich bestreite auch gar nicht, dass Git sowieso eingesetzt werden sollte, aber darum geht es hier nicht.


    1) git add brauchst du nicht jedes Mal, nur wenn neue Dateien hinzukommen, dabei sollte * oder -A aber absolut vermieden werden.

    Das ist doch absoluter Käse. Nicht nur bei jeder neuen Datei, auch bei allen Änderungen einer Datei muss er die mit "git add" in den Stage Bereich bringen und committen. Erzähl doch selbst kein Scheiß. Sonst wäre die Versionsverwaltung ja ein echter Witz. Den Befehl kann man natürlich auch in einem zusammen fassen, aber nochmal: Wo ist das bitte automatisiert?
    Und das man "git add -A" vermeiden sollte ist doch auch ein Witz, bleibt doch jedem selbst überlassen, was er wie committed. :wallbash:

Jetzt mitmachen!

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