Script-Sprache lernen

Isaak

Member
Hi!

Ich möchte mich mit dem Thema Script-Sprache näher befassen, sprich kleine Scripte selbst schreiben lernen und das Ganze irgendwie in eine grafische Oberfläche verpacken.
Um es etwas anschaulicher zu beschreiben: Ich schreibe ein Script, das den Rechner zeitgesteuert runterfährt. Damit ich das nicht in die Konsole eintippen muss, will ich ein grafisches Element, dass ich per Mausklick öffne und dort die gewünschte Zeit eintippe.
Da ich von dieser Materie noch gar keine Ahnung habe, fehlen mir hier die richtigen Ausdrücke, aber ich hoffe, dass jeder weiß, worauf ich hinaus will.
Nun zu meiner Frage:
Kennt jemand irgendwelche Bücher oder Internetseiten (soetwas wie selfhtml), die er aus persönlicher Erfahrung als einsteigerfreundlich und umfassend empfehlen kann?
Wenn man im Netz sucht, findet man tausende Seiten, aber alles schwer durchschaubar - und außer "script" und "gui" weiß ich auch nicht, wonach ich gezielt suchen könnte.

Freu mich auf eure Antworten

Gruß

Isaak
 

framp

Member
AW: Script-Sprache lernen

Die Frage ist was Du genau unter Script-Sprache verstehst. Es gibt da z.B. bash, perl, python usw.

Wenn Du zu bash fragst: Ich habe mir bash Programming mit dem Buch
"Lerning the Korn Shell, O'Reilly" beigebracht. Sieh doch mal bei O'Reilly nach - da gibt es bestimmt noch weitere Bücher - auch in Deutsch
 

Rain_Maker

Administrator
Teammitglied
AW: Script-Sprache lernen

Ist zwar etwas OT, aber was Du suchst, das gibt es schon.

"Kshutdown"

KShutDown > Home

Gibt es als rpm bis einschließlich SuSE 10.0 bei Guru.

Wenn Du ein rpm für openSUSE 10.2 möchtest, dann ist 'rpmbuild' Dein Freund.

Siehe hierzu auch:

Suche Programm ähnl. WinExit - linuxforen.de -- User helfen Usern

Greetz,

RM

P.S. Wenn Du die Version 0.9.1beta1 testen willst, dann hätte ich da etwas für Dich (kein fertiges Binary, aber etwas, das mindestens genauso gut ist *g*)
 
AW: Script-Sprache lernen

Wirf mal einen Blick hier rein: Buchtipps Programmierung - LinuxClub
(Insbesondere den Abschnitt über python ;)

Für bash kann ich auch noch
/bin/bash - Treffpunkt für Linux-Shelluser
Einfuehrung in die Shell-Programmierung
und vor allem http://www.tldp.org/LDP/abs/html/
empfehlen.

Graphische Oberflächen sind mit bash aber eher schwierig - dann müsstest du schon auf [dialog,kdialog,zenity] zurückgreifen ...

.. oder gleich eine Scriptsprache mit Schnittstelle zu gtk bzw. qt benutzen ...
z.B. python (Siehe: StartPage - PyQt Wiki)
oder Tcl mit Tk
 

Isaak

Member
AW: Script-Sprache lernen

Danke für eure Antworten.

Da habe ich ja jetzt einige Tipps, durch die ich mich wühlen kann :)
So wie ich das verstehe, ist python wohl am ehesten das, was ich mir für die wie oben beschriebenen Minitools gedacht habe... aber ich muss mir das erstmal genauer anschauen - scheint ja unzählige Wege bzw. Sprachen zu geben, mit denen man das Gleiche umsetzen kann. Da werde ich mir wohl vorerst das raussuchen, mit dem ich persönlich am ehesten klarkomme. :D

Gruß

Isaak
 

Isaak

Member
AW: Script-Sprache lernen

Hi,

ich habe mir das von RN vorgeschlagene Tool (KShutDown) mal angeschaut und die aktuelle Version (0.9.1 beta) bei sourceforge als tar.bz2 heruntergeladen.
rpmbuild ging noch problemlos, das Paket wurde gebaut. Bei der Installation kommt aber folgende Fehlermeldung:
Code:
kdelibs >= 3.3.0 is needed...
und damit bricht die Installation auch ab. Wie man das umgehen kann bzw., ob ich was falsch gemacht habe, danach habe ich noch gar nicht geguckt (privat immernoch kein INet).
Ich habe hier aber ein fertiges Paket gefunden:
10.2-i686 (So als Info, falls da jemand nach suchen sollte...)

Zu den Sprachen: Ich habe mir jetzt ein paar Infos zu tcl/tk angeschaut. Angeblich soll es recht einsteigerfreundlich und flexibel sein. Internetseiten gibt es dazu auch massenweise, nur Bücher scheinen etwas mau zu sein.

Grüße

Isaak
 

Rain_Maker

Administrator
Teammitglied
AW: Script-Sprache lernen

Hast Du GNOME als Desktop?

Schau mal nach, ob das Paket "kdelibs3" installiert ist, wenn nicht von CD/DVD nachinstallieren.

Kshutdown ist -wie der Name schon sagt- ein KDE-Programm und hängt dann (logischerweise) von den KDE-Bibliotheken ab.

Greetz,

RM
 

Isaak

Member
AW: Script-Sprache lernen

kdelibs war/ist auf jeden Fall drauf. Ich wusste nur nicht mehr welche Versionsnummer genau. Daher musste ich erstmal nachschauen gehen...

Hier die genaue Ausgabe
Code:
linux-6ucu:/home/isaak # rpm -qa | grep kdelibs
kdelibs3-devel-doc-3.5.5-45
kdelibs3-3.5.5-45.2
kdelibs3-arts-3.5.5-45
kdelibs3-doc-3.5.5-45
kdelibs3-devel-3.5.5-45
Und ich benutze auch KDE als Oberfläche für SUSE
Hmm... das hier kdelibs3-3.5.5-45.2 stimmt nicht mit den anderen Nummern überein, habe aber nichts per Hand installiert. Ich glaube aber auch nicht, dass es daran liegen könnte.
Das Paket habe ich mit
Code:
rpmbuild -tb kshutdown[Version]
erstellt.
Den Installationsversuch habe ich mit
Code:
rpm -Uvh kshutdown [Version]
gestartet. Wobei dann die Fehlermeldung kam (fehlende Abhängigkeiten, kdelibs >= 3.3.0 is needed).

Gruß

Isaak
 

Rain_Maker

Administrator
Teammitglied
AW: Script-Sprache lernen

*koppkratz*

Du hast das rpm direkt aus dem Tarball gebastelt?

Code:
rpmbuild -tb kshutdown[Version]
Dann wird das SPEC-File verwendet, welches direkt im Tarball drin ist und das scheint nicht zu passen.

Ich würde Dir einen Rebuild aus dem src.rpm vorschlagen, dann wird das SPEC-File verwendet, welches der Packager (suser-guru) auf SuSE angepasst hat.

Siehe
Code:
man rpmbuild
Greetz,

RM
 

Isaak

Member
AW: Script-Sprache lernen

Hmm... ein src.rpm der aktuellen Version habe ich nirgends gesehen. Die Pakete beziehen sich alle auf die 0.8-er Version. Oder habe ich dich falsch verstanden?

Die 0.9-er liegt nur als tar.bz2 vor - oder eben das bereits oben erwähnte, fertige Paket für SUSE, das auf einer priv. Homepage liegt.
Code:
man rpmbuild
Habe ich mir angesehen, was die einzelnen Befehle genau bewirken, konnte ich mir noch nicht ausführlich anschauen - kenne nur die üblichen wie -tb --rebuild, aber da gibt es ja dutzende weitere Befehle... :eek:

Gruß

Isaak
 

Rain_Maker

Administrator
Teammitglied
AW: Script-Sprache lernen

Ah soooo, na dann.

Du möchtest gerne das, was ich selbst als fast so gut wie ein fertiges RPM bezeichnet habe.

Frisch ans Werk.

1. Den Anhang herunterladen und als "kshutdown.spec" abspeichern.

2. Den Tarball der neuen Version in "kshutdown-0.9.1beta.tar.bz2" umbenennen und nach '/usr/src/packages/SOURCES' kopieren.

3.
Code:
rpmbuild -ba /Pfad_zum_Specfile/kshutdown.spec
-------Ratter Ratter -------------
Processing files: kshutdown-debuginfo-0.9.1beta-1.guru.suse102
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/build-kshutdown-0.9.1beta
[B]Wrote: /usr/src/packages/SRPMS/kshutdown-0.9.1beta-1.guru.suse102.src.rpm
Wrote: /usr/src/packages/RPMS/i586/kshutdown-0.9.1beta-1.guru.suse102.i586.rpm
Wrote: /usr/src/packages/RPMS/i586/kshutdown-debuginfo-0.9.1beta-1.guru.suse102.i586.rpm[/B]
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.6904
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd kshutdown-0.9.1beta
+ /bin/rm -rf /var/tmp/build-kshutdown-0.9.1beta
+ exit 0
Voilà.

Die Änderungen zum SPECfile, welches sich im src.rpm der älteren Version befindet sind übrigens minimal, eigentlich ist es nur diese eine Zeile (technisch)
Code:
Version:                        [B]0.9.1beta[/B]
damit das Paket mit dem neuen Quellcode kompiliert wird und diese zweite Zeile (rechtlich)
Code:
* Sun Jan  7 2007 Rain_Maker <Rain_Maker(at)root-forum.org> 0.9.1beta1
- Specfile adapted and changed to version 0.9.1beta1
die sicher stellen soll, daß klar ist, von wem das Original stammt und wer welche Änderungen eingefügt hat, damit wenn ich einen Fehler gemacht haben sollte, sich niemand bei Guru beschwert.

Greetz,

RM
 

Isaak

Member
AW: Script-Sprache lernen

Wow, wirklich beeindruckend! Danke!
Wenn ich das richtig verstehe, hast Du das Specfile der alten, für SUSE optimierten, Version genommen und dort die Versionsnummer geändert, oder?
Funktioniert dieses Vorgehen auch für andere Programme? Ich meine, ich habe ein Programm in der Version X als src.rpm für SUSE 9.x und will eine aktuelle Version Y, von der es nur ein tar. gibt auf SUSE 10 installieren - und verändere dafür das SPECfile der Version X. Oder ging das nur in diesem einen Fall?

Nochmals Danke und Gruß

Isaak
 

Rain_Maker

Administrator
Teammitglied
AW: Script-Sprache lernen

Prinzipiell ja, nur besteht das Problem teilweise darin, daß man eben die Abhängigekeiten für das Binary selbst (Requires) und für den BUILD-Prozess (BuildRequires) mehr oder minder stark anpassen muß.

Wenn sich z.B. die Paketstruktur geändert hat, dann kann ein BuildRequire nicht erfüllt werden, weil das Paket so nicht mehr existiert, weil es umbenannt wurde bzw. in einem anderen Paket enthalten ist oder aus einem Paket, das vorher kein devel-Paket hatte, abgespalten wurde.

Wenn Du mal ein etwas "komplizierteres" Beispiel sehen willst:

linuxforen.de -- User helfen Usern - Einzelnen Beitrag anzeigen - K3B 1.0 RC3 verfügbar

Hier musste ich die BuildRequires anpsassen, da das Paket umbenannt wurde. Außerdem stellte sich später heraus, daß die BuildRequires im SPEC-File für die 10.2 unvollständig waren, weshalb ich beim Selbstbau des rc4 (ja ich war ungeduldig und wollte nicht auf das Packman-Paket warten *g*) einen Kompilierfehler hatte.

Nach ein wenig Sucherei hatte ich den Fehler gefunden und eine Mail an den Packager sorgte dafür, daß das BuildRequire ergänzt wurde.

Das ist alles gar nicht mal so kompliziert, wobei ich da noch Anfänger bin, aber das aufmerksame Lesen von Fehlermeldungen, wenn mal was schief geht, ist sehr aufschlußreich.

Greetz,

RM
 
Oben