Als Beispiel hier mit Skype, plus einige generelle Gedanken und Hinweise.
Getestet mit Lupu 5.25, sollte aber bis runter zu Puppy 4.31 (mindestens) ebenfalls funktionieren.
Die Leute, die das schon oder besser wissen, mögen bitte Nachsicht mit mir haben.
Es gibt mehrere Möglichkeiten, so etwas zu realisieren, so wie ich es hier beschreibe ist es nicht das "Einzig Wahre", sondern nur eine Möglichkeit (die ich nutze).
Vielleicht vorab:
Prinzipiell ist es einfach, die Probleme richten sich nach den berühmten Abhängigkeiten (falls sie fehlen, muss man sie finden, runterladen und mit einbinden), manche Programme funktionieren nicht mit jeder Kernelversion, und manche Programme funktionieren nur mit bestimmten Versionen von Bibliotheksdateien, was von Puppy zu Puppy unterschiedlich sein kann und manchmal ist alles da, wird aber an der falschen Stelle gesucht.
Kurz gesagt, die Bandbreite geht von kinderleicht bis (für Normalsterbliche) unmöglich.
Die Quelle kann ein Pet sein, eine andere Sfs, ein Deb-Packet, eine Rpm-Datei (keine eigene Erfahrung, prinzipiell aber wie Deb); oft wird es ein tar.gz oder tar.bz2 file sein.
Ich kann und will jetzt nicht auf alles eingehen und nehme hier als Beispiel Skype als tar.bz2-Datei.
Muss ich noch erwähnen, dass es bei solchen Aktionen immer sicherer ist, vorher eine Kopie des save files zu machen? Oder besser, man verwendet für solche Aktionen ein neues savefile. Ist alles OK, kann man wieder das alte benutzen.
Als erstes die neueste Version hierherunterladen (die static Version, z.Zt. skype_static-2.2.0.25.tar.bz2), in einen Unterodner von /mnt/home. Ich verwende bei mir den Namen compile, der Name ist jedoch egal. In dem Ordner compile erstelle ich noch einen Unterordner mit dem Namen unserer neuen Sfs-Datei, hier Ad-on1. Alle weiteren Pfadangaben beziehen sich auf Unterordner innerhalb von compile oder Ad-on1.
Durch anklicken (linksklick) im Dateimanager (Select All, Extract) wird die Datei entpackt und der Inhalt befindet sich nun in /compile/skype_static-2.2.0.25.
Ich möchte nun, dass Skype später im Ordner /usr/share erscheint. Deshalb erstelle ich in dem noch leeren Ordner Ad-on1 den Ordner /usr und darin die Ordner share und bin. Im Ordner share erstelle ich einen Ordner Namens applications. In den Ordner share kopiere ich den kompletten Ordner skype_static-2.2.0.25 und benenne ihn in skype um (also Ad-on1/usr/share/skype).
.desktop-Dateien befinden sich normalerweise in /usr/share/applications, deshalb verschiebe ich /Ad-on1/usr/share/skype/skype.desktop nach /Ad-on1/usr/share/applications.
Damit Skype auch gefunden wird (alternativ könnte ich auch in der .desktop-Datei bei Exec einen Pfad angeben) erzeuge ich einen symbolic link zu Ad-on1/usr/share/skype/skype (die Datei skype mit linksklick nach /Ad-on1/usr/bin ziehen, loslassen und symbolic link (relative) wählen).
Nun soll auch noch das passende Icon gefunden werden. Dazu öffne ich die Datei skype.desktop mit einem Texteditor und ändere die Zeile
Code: Select all
Icon=skype.png
Code: Select all
Icon=/usr/share/skype/icons/SkypeBlue_48x48.png
Das ist der einfachste Teil:
im Ordner /mnt/home/compile öffne ich ein Terminal (rechtsklick, Window, Terminal here)
und gebe ein:
Code: Select all
dir2sfs Ad-on1
Code: Select all
created: Ad-on1_525.sfs ( 30 MB )
created: Ad-on1_525.sfs-md5.txt
...byebye...
Da dieses Skype auch mit anderen Puppies (zumindest bis runter zu 4.31) funktioniert, lösche ich die Endung "_525", also Ad-on1.sfs.
Die neue sfs-Datei muss nun nach /mnt/home verschoben werden und unter menu->System->BootManager configure setup eingebunden werden.
Voilá, Fertig. Skype kann nun unter menu->Network aufgerufen werden.
Um ein Pet anstatt einer Sfs-Datei zu erzeugen, verwendet man statt "dir2sfs" den Befehl "dir2pet".
Um ein Pet als Quelldatei zu verwenden, kann man es z.B. mit "pet2tgz" in eine .tgz-Datei umwandeln und anschliessend durch anklicken extrahieren.
Eine andere Sfs-Datei wird durch anklicken gemountet und der Inhalt in den Ordner der neuen Sfs_Datei kopiert (Nachher unmounten nicht vergessen ).
Debian-Packete entpackt man mit dem Befehl "undeb". Dazu, und wie man daraus eine Sfs erstellt, hat auch deepsea etwashier geschrieben. Er verwendet dazu den Befehl "mksqashfs", auch eine Möglichkeit.
Für Rpm-Packete verwendet man den Befehl "unrpm", dazu benötigt man jedoch ein extra Pet von hier(Danke ttuuxxx, und Danke für den Tip, wuwei).
Rolf
Edit: bin beim stöbern auf interessante, z.T. weiterführende Beiträge von emil gestossen, ab hier.