Andere Formate (.sh) zu .deb umwandeln

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
benebeck
Beiträge: 431
Registriert: 14.10.2003 15:37:48
Wohnort: Giessen

Andere Formate (.sh) zu .deb umwandeln

Beitrag von benebeck » 21.02.2011 11:24:15

Hallo zusammen,

ich habe hier mal wieder ein nettes .sh Shellscript, das ein Programm installieren soll. Ich würde es natürlich ungern am Paketsystem vorbei installieren, vor allem da mein Squeeze frisch drauf ist und ich es nicht sofort wieder komplett zumüllen mag.

Gibbet da irgendein Programm, mit dem man das zu .deb konvertieren kann?


Und dann mal generell: Irgendwie blick ich bei all den Möglichkeiten, .deb files zu erstellen nicht mehr durch. Das liegt daran, dass ich so gut wie nie Pakete selber baue. Also es gibt:

- alien
- debian/rules
- apt-build
- dpkg-buildpackage

und was weiss ich noch mehr. Je nachdem welche Debian Version man hat, muss man da dann noch diverse Fallstricke beachten.....?!?

Kann mich mal jemand erhellen? Was nehme ich für tarballs und was für richtige sourcen (also statt make)? Die Angaben im wiki verwirren mich eher und die sind auch nicht mehr aktuell glaube ich....


Danke im voraus,

benebeck
The Flying Spaghetti Monster - Touched by His noodly appendage

Benutzeravatar
towo
Beiträge: 4545
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von towo » 21.02.2011 11:34:33

Blöde Frage, aber wenn das Script ein Programm installiert, warum paketierst Du dann nicht gleich das Programm, anstatt des Scriptes?

Henrikx

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von Henrikx » 21.02.2011 14:43:07

Der Aufruf wäre

dh_make -e benebeck@blabla.de -f /~dein.script.tar.gz

Hier nach zu lesen

Benutzeravatar
benebeck
Beiträge: 431
Registriert: 14.10.2003 15:37:48
Wohnort: Giessen

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von benebeck » 21.02.2011 15:47:15

towo hat geschrieben:Blöde Frage, aber wenn das Script ein Programm installiert, warum paketierst Du dann nicht gleich das Programm, anstatt des Scriptes?
Weil ich das script dafür erst ausführen muss. Das spezielle Programm ist ganz einfach ein 50 MB großes Shellscript.
Henrikx hat geschrieben:Der Aufruf wäre

dh_make -e benebeck@blabla.de -f /~dein.script.tar.gz

Hier nach zu lesen
Danke für den Link, ich werde dort nachlesen. Aber das Problem bleibt: es ist halt ein tarball sondern ein blödes Script. Das ist mir schon mehrfach untergekommen; vor allem wenn kommerzielle Anbieter ihr Win-Produkt auch an Linux Anwender verteilen wollen und wohl keine Lust haben, mehrere Architekturen zu unterstützen. Dort hält man es dann wohl für weiser, den Leuten keine -tar.gz zu geben sondern man bleibt beim (.exe-like) script, das alles für einen macht.

benebeck
The Flying Spaghetti Monster - Touched by His noodly appendage

pferdefreund
Beiträge: 3799
Registriert: 26.02.2009 14:35:56

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von pferdefreund » 22.02.2011 12:59:16

Dann leg doch im Script-Verzeichnis ein Makefile an mit
install:
cp meinscript /usr/local/bin
chmod oug+x /usr/local/bin/meinscript

und danach checkinstall verwenden. Habs gerade getestet - funktioniert

Benutzeravatar
Strunz_1975
Beiträge: 2512
Registriert: 13.04.2007 14:29:32
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von Strunz_1975 » 02.07.2011 23:48:09

pferdefreund hat geschrieben:Dann leg doch im Script-Verzeichnis ein Makefile an mit
install:
cp meinscript /usr/local/bin
chmod oug+x /usr/local/bin/meinscript

und danach checkinstall verwenden. Habs gerade getestet - funktioniert
Wie legt man mit dem Befehl "install" ein Makefile an?
Debian Bookworm

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von ThorstenS » 03.07.2011 00:31:17

nee, das war der Inhalt des Makefiles. Das hier wäre ein Befehl, um so ein Makefile und anschließend das deb zu erzeugen:
(die zwei Zeilen unter install sind mit jeweils einem tab eingerückt - das ist wichtigt!)

Code: Alles auswählen

echo -e "install:
  cp upgrade /usr/local/sbin
  chmod uog+x /usr/local/sbin/upgrade
" > Makefile
sudo checkinstall --arch=all

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von SubOptimal » 03.07.2011 01:51:54

Hi,
benebeck hat geschrieben:Weil ich das script dafür erst ausführen muss. Das spezielle Programm ist ganz einfach ein 50 MB großes Shellscript.
Solche Skripte bestehen oftmals aus zwei Teilen einem Shellskript-Teil und einen angehängten Archiv-Teil (oft ein gzip-tes tar Archiv).

Je nachdem um was für eine Software es sich handelt steht vielleicht was nützliches im Shellskript-Teil drin. Netbeans wird z.B. auch so ausgeliefert. Schau einfach mal mit einem Editor in das Skript oder lass Dir z.B. die ersten 30 Zeilen anzeigen.

Code: Alles auswählen

head -n 30 fettes_install_skript.sh
SubOptimal

Benutzeravatar
Strunz_1975
Beiträge: 2512
Registriert: 13.04.2007 14:29:32
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von Strunz_1975 » 03.07.2011 10:50:41

ThorstenS hat geschrieben:nee, das war der Inhalt des Makefiles. Das hier wäre ein Befehl, um so ein Makefile und anschließend das deb zu erzeugen:
(die zwei Zeilen unter install sind mit jeweils einem tab eingerückt - das ist wichtigt!)

Code: Alles auswählen

echo -e "install:
  cp upgrade /usr/local/sbin
  chmod uog+x /usr/local/sbin/upgrade
" > Makefile
sudo checkinstall --arch=all
Es kommt folgende Fehlermeldung:
Makefile:2: *** missing separator. Schluss.

Hier der Inhalt des Makefiles

Code: Alles auswählen

install:
  cp Teamspeak3-Server /usr/local/bin
  chmod oug+x /usr/local/bin/Teamspeak3-Server

Debian Bookworm

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von ThorstenS » 03.07.2011 11:14:36

ThorstenS hat geschrieben:(die zwei Zeilen unter install sind mit jeweils einem tab eingerückt - das ist wichtigt!)
so wirds copy´n paste fähig:

Code: Alles auswählen

echo -e "install:
\tcp upgrade /usr/local/sbin
\tchmod uog+x /usr/local/sbin/upgrade
" > Makefile

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von SubOptimal » 04.07.2011 11:31:02

Hi,

für den TeamSpeak Server hat sich schon mal jemand (teamspeak3-server.git) die Mühe gemacht um ein "echtes" deb-Paket zu bauen.

Dazu wären folgende Schritte notwendig.

Code: Alles auswählen

# wegen Abhängigkeit von libmysqlclient.so.15, würde man generell benötigen
cd /tmp
# nächstes ist eine Zeile
wget http://ftp.de.debian.org/debian/pool/main/m/mysql-dfsg-5.0/libmysqlclient15off_5.0.51a-24+lenny5_i386.deb

su -c "dpkg -i ./libmysqlclient15off_5.0.51a-24+lenny5_i386.deb
git bei Bedarf vorher noch installieren

Code: Alles auswählen

cd /tmp
git clone http://github.com/Elbandi/teamspeak3-server.git
wenn man den Sourcen aus dem Git-Repository nicht vertraut (TeamSpeak installer vorher von http://www.teamspeak.com herunterladen)

Code: Alles auswählen

cd /tmp
tar xzf teamspeak3-server_linux-x86-3.0.0-rc1.tar.gz
cp -r teamspeak3-server_linux-x86/* teamspeak3-server/
nun das deb-Paket bauen (fakeroot evtl. vorher noch installieren)

Code: Alles auswählen

cd /tmp/teamspeak3-server
fakeroot debian/rules binary
Danach hat man ein /tmp/teamspeak3-server_3.0.0-rc1-1_i386.deb zum installieren.

SubOptimal

Benutzeravatar
Strunz_1975
Beiträge: 2512
Registriert: 13.04.2007 14:29:32
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Andere Formate (.sh) zu .deb umwandeln

Beitrag von Strunz_1975 » 04.07.2011 20:58:05

Daaaaaaaaaaaanke:-)

Gruß
Strunz_1975
Debian Bookworm

Antworten