SetupPi - Schneller zum eigenen Projekt!

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo!

    Ich mir nach mehreren Projekten die Frage gestellt, ob die Installation von Programmen nicht auch viel einfacher möglich sein könnte. Vor allem für RPI-Anfänger stellen manche Installationen eine echte Herausforderung da. Da alle RPIs grundlegend gleich sind, kam die Idee auf, die Installation einmal durchzuführen und die eingegebenen Befehle dann in ein Script zu packen und zu automatisieren!
    Dabei herausgekommen ist "SetupPi" ein Shell-Script, das alle möglichen Programme installiert. Beispiel: Lüftersteuerung -> Script installiert Abhängigkeiten (z.B. wiringPi) und fügt das Script dem Autostart hinzu.
    Geplant sind weitere für zum Beispiel Hyperion uvm...
    Neue Programme werden per Script hinzugefügt.
    Da eine Internetverbindung für Updates und Installation dringend notwendig ist, funktioniert es leider nur mit den Modellen B/B+ oder Modell A mit Internet-Stick.

    Momentan befindet sich das Projekt noch in der Early-Alpha, macht allerdings gute Fortschritte.

    Habt ihr noch weitere Idee für Programme, die integriert werden sollten?

    MfG perry

    P.S.: Download-Link folgt....

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

    Einmal editiert, zuletzt von perry (17. Januar 2015 um 12:02)

  • Hallo Perry,

    das mache ich seit Jahren so, dass ich umfangreiche Installationen / Konfigurationen nach erfolgreichem Abschluss in Skripts hinterlege. Das vereinfacht ein Neuaufsetzen ungemein. Deshalb ging ich davon aus, dass andere Kollegen das auch so machen.

    Scheint wohl nicht so zu sein ... :s


    Ich möchte einen Sicherheitsaspekt ins Spiel bringen:
    Für mich persönlich stellt es ein erhebliches Sicherheitsrisiko dar, ein (umfangreiches) Skript einzusetzen, von dem irgendemand behauptet, es würde Programm XY installieren. Das mag es auch tun - aber was es sonstso macht, vermag ich nicht zu beurteilen, wenn ich aus einem Menü des SetupPi irgendein Programm auswähle.
    Oder: Wie willst Du vermeiden, dass irgendein Hacker oder Missgünstling Dir einen Schadcode ins Script schießt? Schnell ist aus einem rm xy ein remove gemacht, dass Dir rekursiv Verzeichnisse auf oberster Ebene löscht.


    Eine andere Frage: Wie willst Du die Installation z.B. einer IDE mit ganz vielen unabhängig voneinander installierbarer Module regeln? Bringt Dein Programm in einem solchen Fall eine Liste aller Optionen? Und der offensichtlich nicht ganz so bewanderte User wählt aus - weiterhin ohne zu wissen, was er da eigentlich macht?

    Und wer ist dann schuld, wenn die Installation nicht funktioniert, weil ungeeignete Kombinationen ausgewählt wurden?
    Ich hatte vor ein paar Wochen auf einem Pi, den ich verschenkt habe, LibreOffice installiert - und mich gewundert, dass das Programm zwar geöffnet wurde, aber mit dem Nachladen irgendwelcher Module nicht fertig wurde. Nachdem ich ein Modul, das immer wieder angezeigt wurde, identifiziert und deinstalliert hatte, öffnete das Programm sofort!


    Willst Du Dir all dieses Wissen aneignen und in Deinen SetupPi stecken?
    Willst Du Dir alle Nachfragen von Leuten, die dann doch eine andere Installation haben, antun?

    Wie willst Du sicherstellen, dass jede Installationsanweisung, die Du einzubinden gedenkst, auch wirklich funktioniert? Du müsstest ein Dir unbekanntes Programm installieren (indem Du Zeile für Zeile einer Anleitung, die irgendjemand in in irgendeinem Forum gepostet hat, eingibst), um zu erfahren, ob die Installation überhaupt funktioniert. Dann musst Du Dein daraus aktualisiertes SetupPi durchlaufen lassen.

    Bei vielen Installationen benötigst Du überdies eine entsprechende Hardware-Umgebung, um die Installation überhaupt testen zu können...

    Und warum schließt Du die Modelle A und A+ aus? Natürlich können diese Modelle auch an LAN / WLAN und somit ans Internet angeschlossen werden.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (17. Januar 2015 um 11:56)

  • Hey motom001!

    Hab mir gerade dein Projekt angesehen, coole Sache!
    Für Projekte werden 3-stellige ids vergeben, zum Beispiel bei dir: "dor".
    Nach Eingabe der id wird dann das jeweilige Setup-Skript heruntergeladen und ausgeführt.

    MfG perry

    Hey Andreas!

    Grundidee war die Nutzung für ein Projekt, weniger für einen wilden Mix aus verschiedenen Projekten. Weiter ist Projekt als "Lern-Projekt" gedacht. Eine Einsicht in alle Setup-Skripte wird natürlich auch möglich sein. Momentanes vorgehen ist die Erst-Installation per Befehl und dann das Installieren per Script.
    Leute, die sich besser mit dem RPI auskennen führen die Installationen sowieso von Hand aus (ist immer am Besten meiner Meinung nach) oder schreiben das Skript selbst. Hierbei geht es wirklich nur um blutige Anfänger, die ihre Ersten Projekte starten.

    MfG perry

    An Alle: Melde mich, wenn es Neuigkeiten gibt!

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

    Einmal editiert, zuletzt von perry (17. Januar 2015 um 12:12)

  • Werde deinen Vorschlag berücksichtigen, motom001!

    Momentan ist es noch EarlyAlpha, Ideen hab ich aber viele!


    MfG perry

    P.S.: Ideen sind aber gerne gesehen!

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

    Einmal editiert, zuletzt von perry (17. Januar 2015 um 15:51)

  • kolja echt gute Idee!
    Werde mal direkt loslegen.

    Ich bin noch am überlegen, wie man die Abhängigkeiten, die gebaut werden müssen, regelt.
    Evt. eine kleine log Datei..., die dann von den jeweiligen Setup-Scripts angesprochenen wird.

    MfG perry :thumbs1:

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

  • Ahoi,

    persönlich finde ich es ja erstrebenswert, dass sich auch Anfänger die Mühe machen und die Dinge von Hand installieren. Nur so bekommt man ein Gefühl fürs System.

    Dennoch:
    Anfänger mögen GUI's, daher würde sich vlt eine GUI im Stil von raspi-config auf Basis von dialog anbieten.

    Kleines Beispiel aus meinem Ordner für häufig benutzte Codeschnipsel:

    Spoiler anzeigen
  • @julian92:
    GUI ist momentan noch in Entwicklung, aber natürlich ein absolutes MUSS!
    Werde deinen Code-Schnipsel bestimmt einsetzen, die Installation würde allerdings über einen drei-stelligen Code installiert, damit Anfänger keinen Sch*** zusammen basteln. Es gibt ja leider Software, die sich nicht verträgt. Deshalb ist eine Installation nur nach vorherigem besuchen einer Wiki möglich, in der alle Infos zur Software stehen, damit auch Anfänger ein paar Infos erhalten.

    MfG Perry

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

    Einmal editiert, zuletzt von perry (17. Januar 2015 um 23:00)

  • dialog ist keine GUI sondern eine TUI - großer Unterschied!


    Mir ging sowas ähnlich auch mal durch den Kopf - habe selbst bereits Erfahrung mit sowas ala "Vereinfachung für Anfänger"...

    Ich fänds ein bisschen fragwürdig wieso man erst ein Wiki durchlesen müsste bevor man mithilfe einer solchen Scriptsammlung etwas installieren kann. Dann können die User es auch gleich manuell machen - so lernen sie zumindest mit Linux umzugehen.

    Auch in Punkto Ausbaufähigkeit sollte dieses "Installations-Hilf-Script" modular aufgebaut sein, wie zum Beispiel Konfigurationsdateien die pro Menüpunkt, also installierbarem Paket, beachtet wird und nachträglich ähnlich wie "apt-get update" aktualisiert werden kann.
    Es müssten etliche Checks eingebaut sein um Konflikte zu erkennen, aber auch erkannt werden welche Pakete bereits installiert sind und auch wieder deinstallierbar gemacht werden können.

    Würde mich dennoch interessieren was bisher an Code vorhanden ist - wäre auch bereit zu helfen, habe zumindest was bash angeht viel Erfahrung ;)

  • meigrafd:
    Die User durchsuchen quasi ein Wiki oder die Projektseite und finden dort die ID und erfahren auch gleich, was für Hardware gebraucht wird, und was das Projekt letztendlich kann! Sonst würden vielleicht einige aus Spaß alles installieren und nichts geht, weil z.B. Hardware fehlt!
    Wegen dem Code: Funktionierenden Alpha-Code gibt es bereits, bin allerdings noch ein wenig am umstellen, ein paar Kleinigkeiten fehlen noch für eine EarlyBETA ?
    Kannst aber gern als einer der Ersten BetaTester dabei sein!

    MfG perry

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

    Einmal editiert, zuletzt von perry (17. Januar 2015 um 23:27)


  • ähnlich wie "apt-get update"

    Das ist halt der Punkt, wo ich mich frage, was bringt dieses Script für Mehrwert gegenüber apt-get wenn ich meine Anwendung als deb-Paket anbiete?

    Größte Schwierigkeit dabei für mich - wie baue ich ein deb-Paket (richtig)?

    Da hab ich auch alles dabei - muss vorher in ein Wiki oder eine Projektwebseite schauen wie das deb-Paket heißt, dort werden Abhängigkeiten verwaltet, es gibt Update und Deinstallation, Hilfe / Beschreibung, ...

    Was kann (soll können) SetupPi besser / anders?

  • @motom:

    Quasi eine Community, die zusammen dann neue Setup-Skripte bastelt und zur Verfügung stellt. Großteil wären auch z.B. Config-Dateien anpassen uvm.!

    Angenommen, ich hätte ein ganz tolles Lüfterskript geschrieben. Ich habe dann weiterhin meine Projektseite, auf der die Hardware-Installation beschrieben wird und dann ein Link zur SetupPi Homepage, z.B. http://setuppi.de/install.php?n=dpi, auf der dann alles weitere zur Installation steht! Außerdem ist dort dann auch das später genutzte Setup-Skript einsehbar.
    (Sachen wie z.B. deinstallieren stehen eher im Hintergrund, es richtet sich eher an Projekte, die man jetzt weniger deinstallieren würde, zum Beispiel AmbiLight!)

    Ideen sind aber trotzdem SEHR Willkommen!

    MfG perry

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

  • Naja meine damalige Idee war folgendes:

    - Jedes installierbare Paket hat eine Konfigurationsdatei für (in diesem Fall) SetupPI.
    - In dieser Konfigurationsdatei steht ein weiteres "Setup" Script drin, was die Installation der Pakete (egal ob über apt-get oder git clone usw) übernimmt - entweder direkt in der Konfigurationsdatei oder eben ein extra zu ladende Datei.
    - Auch steht in der Konfigurationsdatei eine Beschreibung zu dem "Projekt" oder "Paket" die man sich anzeigen lassen kann, sowie optional weitere Links.
    - In der Konfigurationsdatei sollte auch drin stehen welche Pakete nicht installiert sein dürfen, also Konflikte bestehen usw.

    Die Konfigurationsdateien kann man dann verwalten und erweitern.
    Bei Start des "SetupPI" Scripts baut man dann eine Function ein um zum einen auf eine neue Version des Scripts aber auch der Konfigurationsdateien zu prüfen. Ist was neues verfügbar wird der Benutzer gefragt ob er updaten möchte (ähnlich wie beim rpi-update). So ein selfupdate hab ich auch schon für mein sysinfos.sh gebaut gehabt.


    Was aber das Hauptproblem eines solchen Projekts is, ist die Aktualität/Pflege der Konfigurationsdateien. Wer übernimmt das? Wie kann sowas vereinfacht geregelt werden? Wer hat überhaupt Lust dazu? :D

  • Da käme wieder die Idee mit einer Community und 3-4 Moderatoren, die die Skripte überprüfen.

    Ich hab echt Lust drauf, das richtig umzusetzen!

    MfG perry

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

  • ich denke es müsste schon sowas wie ein Repository geben. So das jeder Entwickler die Möglichkeit hat seine Scripte bzw. Programme verfügbar zu machen.

    So würde auch der Aufwand der Aktualisierung bzw. Überprüfung wegfallen, denn die Entwickler wären dann selber für Ihre Scripte verantwortlich.


    Bei XBMC hat das mit den Addons auch super funktioniert...wenn man das für den Raspi noch einfacher hinbekommt wäre das sicher eine gute Sache.

Jetzt mitmachen!

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