Posts Tagged ‘Software’

Paketieren unter Linux

Posted in Fedora, Software on Juni 4th, 2010 by Patrick – 2 Comments

Vorgestern und heute konnte ich mein erstes rpm-Paket erstellen. Da ich so was noch nie gemacht hatte, war es für mich eine gewisse Herausforderung.
Das Ergebnis sollte ein RPM-Paket sein, welches beim Installieren eine Ordnerstruktur anlegt, Files kopiert und danach ein Script ausführt. Beim Deinstallieren soll zuerst ein Script ausgeführt werden und dann die Kopierten Files wieder gelöscht werden.

Für jemand, der das schon ein paar mal gemacht hat, mag das einfach klingen, ich weiss – für mich war es aber alles andere als das ;)

Jedoch, da ich auch schon mal für Windows paketiert habe, kann ich auch gleich einen Vergleich anstellen: Es ist viel unkomplizierter und einfacher unter Linux, wenn das SPEC-File mal steht… wenn :)

Doch nun zum Vorgehen!
Der Kern des Paketieren stellt das Programm rpmbuild und eine selbst erstellte SPEC-Datei dar.
Die SPEC-Datei kann man dabei wie eine Art Anleitung ansehen, wo aufgeschrieben wird, wann was getan werden soll. Anhand dieser Anleitung erstellt rpmbuild dann ein Paket.

Die allgemeine Funktionsweise habe ich mir aus dem Internet angeeignet. Besonders geholfen dabei hat mir diese Anleitung.

Das Problem aber, all diese Anleitungen basieren darauf, dass der Source aus dem Internet nachgeladen wird. Mein Paket musste aber alle Dateien lokal zur Verfügung haben.

Nun die erste Herausforderung: Wie mach ich das?
Nach viel probieren und testen hatte ich endlich eine Lösung… Unter dem Punkt %files werden die Dateien so aufgelistet, wie sie danach beim Zielsystem kopiert werden:

1
2
3
4
5
6
%files
/opt/itc/bin/soe-rootadd
/opt/itc/bin/soe-updatepubkeys
/opt/itc/prepost/install_post.sh
/opt/itc/prepost/remove_post.sh
/opt/itc/.sshsoe_id

Während dem Erstellen des Paketes mussten die Dateien aber im Ordner ~/rpmbuild/BUILDROOT/Paketname/opt/itc/../ liegen, damit es korrekt in das RPM integriert wird.

Die zweite Herausforderung war das Script: Unter %pre, wo ich auch alle Ordner erstellen liess, konnte ich das Script nicht starten, da zuerst %pre und danach erst %files abgearbeitet wird, wodurch das Script beim Starten noch gar nicht an seinem Platz ist.
Also habe ich es kurzerhand unter %install abgelegt. Doch aus welchem Grund auch immer – da wurde es nie gestartet…
Darauf habe ich ohne noch lange weiterzuprobieren, das Script unter %post abgelegt, welcher nach der Installation abgearbeitet wird.

Das die Dateien dann beim Deinstallieren wieder gelöscht werden, war ein kleines Problem. Einfach alles unter %preun eintragen und gut ist.

Mein SPEC-File sah am Schluss so aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
...
%pre
mkdir -p /opt/itc/bin/
mkdir -p /opt/itc/ssh/pubkeys/
mkdir -p /opt/itc/prepost/
 
%post
/opt/itc/bin/install_post.sh
 
%preun
/opt/itc/bin/remove_post.sh
rm -f /opt/itc/bin/soe-rootadd
rm -f /opt/itc/bin/soe-updatepubkeys
rm -f /opt/itc/bin/install_post.sh
rm -f /opt/itc/bin/remove_post.sh
rm -f /opt/itc/.sshsoe_id
 
%prep
%build
%install
%clean
rm -rf $RPM_BUILD_ROOT
 
%files
/opt/itc/bin/soe-rootadd
/opt/itc/bin/soe-updatepubkeys
/opt/itc/prepost/install_post.sh
/opt/itc/prepost/remove_post.sh
/opt/itc/.sshsoe_id

Beim erstellen des Paketes zeigt sich dann die Stärke von Linux. Auf dem 32Bit System, welches ich zur Erstellung verwendet habe, habe ich ohne Probleme mit dem Parameter –target x86_64 ein Paket für 64Bit Systeme erstellt.
Das Begeistert mich deshalb so, denn unter Windows konnte ich auf einem 32Bit-Host auch nur ein Paket für dessen Architektur machen.
Und da ich schon damit gerechnet hatte, für jede Architektur ein eigenes Hostsystem aufzusetzen, war ich umso erfreuter :)

Kampf mit dem Citrix Receiver

Posted in Citrix, Fedora on Februar 5th, 2010 by Patrick – Kommentare deaktiviert

Um auf ein paar unserer Server zugreifen zu können, musste ich heute auf meinem Fedora 12 den Citrix Receiver installieren.
Am Anfang war ich noch glücklich darüber, dass ich die Installation nicht unter Debian / Ubuntu durchführen musste, da es schon fertige RPM-Pakete von Citrix gibt für Fedora.

Frisch fröhlich habe ich mit der Installation des Paketes begonnen:

1
rpm -i ICAClient-11.0-1.i386.rpm

Dummerweise besteht ein Abhängigkeitsproblem, also gleich mal yum durchrennen lassen:

2
yum install ICAClient-11.0-1.i386.rpm

Doch dummerweise findet auch yum das benötigte Paket libXm.so.3 nicht…

Nach ein bisschen googeln habe ich dann herausgefunden, dass man unbedingt openmotif installieren muss. Doch auch das scheint nirgends in den Paketquellen vorhanden zu sein??
Also lade ich mir das Paket halt manuell herunter und installiere es:

3
yum localinstall --nogpgcheck openmotif-2.3.1-1.RHEL3.0.i386.rpm

Soweit so gut, also gleich nochmal versucht den Receiver zu installieren.

Doch noch immer scheint libXm.so.3 nicht vorhanden zu sein… Nach weiterer Suchzeit auf Google habe ich noch ein weiteres benötigtes Paket gefunden:

4
yum install libXaw

Doch damit wurde libXm.so.6 und nicht wie benötigt libXm.so.3 installiert. Also muss man noch ein bisschen bescheissen:

5
ln -s /usr/lib/libXm.so.6 /usr/lib/libXm.so.3

Auch bin ich oft über die Aussage gestolpert, dass möglichweise ein paar Fonts rumzicken könnten:

6
7
8
cd /usr/share/fonts/cjkuni-uming/
mv fonts.dir fonts.dir.disabled
mv fonts.scale fonts.scale.disabled

und dann war es endlich soweit:

9
yum install ICAClient-11.0-1.i386.rpm

Jetzt konnte ich den Receiver endlich installieren.
Doch damit noch nicht genug, man sollte die Applikation ja auch starten können… Und genau daran haperte es noch!
Als Ausgabe erhielt ich immer:

10
/usr/lib/ICAClient/wfcmgr: Zeile 197: Vereinbarung: Kommando nicht gefunden.

Doch nach ein bisschen Überlegen und Nachdenken war das ein kleineres Problem. Denn wenn man den Fehler so liest, so habe ich gleich an ein Problem mit der Eula gedacht. Also mal recherchieren, wie man das Anzeigen der Lizenz umgehen kann ;)

11
touch ~/.ICAClient/.eula_accepted

Und von nun an kann ich auch unter Fedora alle Citrix Applikationen gebrauchen:

12
/usr/lib/ICAClient/wfcmgr -icaroot /usr/lib/ICAClient

OpenSource Exchange #1

Posted in OpenSource on September 29th, 2009 by Patrick – 18 Comments

Während der OpenExpo wurde ich auf das OpenSource Projekt Open-Xchange aufmerksam gemacht.

Dabei handelt es sich um eine Groupware-Lösung ähnlich Microsoft Exchange, nur dass diese OpenSource ist.

Angepriesen wird das Projekt besonders als “günstige Alternative, welche für KMUs gut geeignet ist“.

Wikipedia beschreibt Open-Xchange wiefolgt:

Open-Xchange Server ist eine Kollaborationssoftware, die neben einer integrierten E-Mail-Benutzerschnittstelle, Termin-, Kontakt- und Aufgabenverwaltung auch weitergehende Funktionen wie Dokumentenspeicherung- und -austausch bietet.

Besonders interessant finde ich auch das hier:

In Vorbereitung befinden sich soziale Fähigkeiten der Anwendung, d. h. die Fähigkeit Daten zwischen Open-Xchange und auch Sozialen Netzwerken einfach und automatisiert auszutauschen. Dieser Austausch wird auf der Serverseite stattfinden, d. h. auch dann funktionieren, wenn der Benutzer gerade nicht aktiv ist.

Doch ganz so OpenSource ist das Projekt wohl doch nicht…

Will man nämlich das ganze nicht per Browser, sondern mittels Outlook verwenden, so muss man ein kostenpflichtiges Addon dazukaufen.

Doch nicht nur das, es gibt noch weitere Komponenten, welche nicht wirklich “frei” sind:

Seit August 2004 steht das Open-Xchange Server BackendGNU General Public License in der Version 2. Das unter der Open-Xchange Server Frontend steht unter Creative CommonsShare Alike, Non Commercial, Attribution-Lizenz. Diese Lizenzierung erlaubt die freie Verwendung auch in einer kommerziellen Umgebung und schränkt lediglich das Anbieten von gehosteten Angeboten ein (durch den Baustein Non Commercial in der Creative-Commons-Lizenz auf dem Frontend).

Ob das nun wirklich das Wahre ist, darüber kann man sich streiten. Auch kann ich noch nicht sagen, ob es wirklich eine brauchbare Alternative zu Exchange ist, das wird sich noch zeigen.

Als Host habe ich mich für einen Ubuntu Server 8.04 LTS entschieden.

Die Installation ist nicht wirklich schwierig, dafür sehr zeitaufwendig. Geholfen hat mir dieses Tutorial von Open-Xchange selbst.

Die Benutzeroberfläche, welche man nach einem Login zu Gesicht bekommt ist klar strukturiert. Man findet sich schnell und ohne Probleme zurecht, wie man es eigentlich auch von Exchange her kennt.

open-xchange-portal

Wie es in Sachen Performance aussieht kann ich noch nicht sagen, da ich die Installation erst gestern durchgeführt habe. Dazu später dann mehr!

Bilder in Szene setzen

Posted in Linux, Software on Mai 11th, 2009 by Patrick – 8 Comments

Soeben bin ich über ein kleines aber sehr wirkungsvolles Script für GIMP gestossen
Damit lassen sich Bilder mittels 3D super in Szene setzen.

Das Skript muss man sich erst herunterladen,

wget http://registry.gimp.org/files/3DScreenshot.scm

und dann an den richtigen Ort verschieben

mv 3DScreenshot.scm /home/$USER/.gimp-2.6/scripts/

Nun nur noch die Plugins neu laden

Filter > Skript-Fu > Skripte aufffrischen

und schon kann man das Skript anwenden.

Filter > Script-Fu > 3D Screenshot

3D

Vielen Dank an zefanja für den Tipp!