Programme aus Quellcode - Methoden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Programme aus Quellcode - Methoden

Beitrag von chrbr » 27.03.2023 18:14:18

Hallo liebe User,
Ziel ist es, Programme aus den Quellen zu verwenden. Als Beispiel habe ich Debianstterm verwendet. Es hat kaum Abhängigkeiten, ist klein und die Konfiguration ist nur durch kompilieren möglich. Außerdem ist es auch als fest konfiguriertes Binärpaket verfügbar. Nun hat man meiner Meinung nach drei Möglichkeiten.
  • Man erzeugt sich ein lokales *.deb Paket und installiert dieses Paket.
    Vorteil: Die Software inklusive Abhängigkeiten sollten vom Paketsystem sauber gehandhabt werden.
    Nachteil: Man hat mehr Arbeit, das lokale Setup zu erstellen. Allerdings funktioniert die Vorgehensweise nach https://www.debian.org/doc/manuals/debi ... ng.de.html für mein einfaches Programm problemlos. Man muss allerdings einiges an Tools installieren. Das waren nach meiner Erinnerung knapp 200MByte. Aus der Sicht von Desktop Environment Nutzern nicht der Rede wert, für Minimalisten vielleicht doch.
  • Man installiert das offizielle Binary und überschreibt das Binary mit dem selbst kompilierten Executable.
    Vorteil: Man spart sich die Arbeit mit dem Bau eines eigenen *.deb Setups.
    Nachteil: Nach einem Update hat man das neue aber mit Debian spezifischer Konfiguration. Das lässt sich allerdings leicht automatisch detektieren und melden.
  • Man kompiliert die Sources und kopiert das Binary nach /usr/local/bin.
    Nachteil: Wenn sich Abhängigkeiten wie Libraries ändern kann das Programm eventuell nicht richtig funktionieren oder abstürzen. Alle Abhängigkeiten müssen auch manuell ermittelt, installiert und gepflegt werden. Die Probleme steigen mit der Komplexität des Programms.
    Vorteil: Man muss sich nicht mit Debian befassen, bekommt die aber unter Umständen bei Problemen um die Ohren gehauen.
Wie handhabt ihr das?

Vorab vielen Dank für eure Einschätzungen/Hinweise/Korrekturen,
Christoph

DeletedUserReAsG

Re: Programme aus Quellcode - Methoden

Beitrag von DeletedUserReAsG » 27.03.2023 18:25:34

chrbr hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 18:14:18
Wie handhabt ihr das?
Ich entscheide im Einzelfall:
chrbr hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 18:14:18
Als Beispiel habe ich Debianstterm verwendet.
In diesem Fall würde ich zum Beispiel einfach das Source-Paket von Debian nehmen, meine Anpassungen vornehmen und ohne weiteres Umhergefrickel ein sauberes Paket bauen lassen.
chrbr hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 18:14:18
Man installiert das offizielle Binary und überschreibt das Binary mit dem selbst kompilierten Executable.
… auf so eine Idee muss man erstmal kommen m(
chrbr hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 18:14:18
Man kompiliert die Sources und kopiert das Binary nach /usr/local/bin.
Nachteil: Wenn sich Abhängigkeiten wie Libraries ändern kann das Programm eventuell nicht richtig funktionieren oder abstürzen. Alle Abhängigkeiten müssen auch manuell ermittelt, installiert und gepflegt werden.
Den Nachteil hast du auch bei der „Lösung“ davor.

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Programme aus Quellcode - Methoden

Beitrag von chrbr » 27.03.2023 18:36:18

Hallo @niemand,

vielen Dank für deine Meinung.
niemand hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 18:25:34
chrbr hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 18:14:18
Man installiert das offizielle Binary und überschreibt das Binary mit dem selbst kompilierten Executable.

… auf so eine Idee muss man erstmal kommen m(
Mit der Methode könnte man die Checksummen der Dateien aus /usr/bin und dem Eigenkompilat vergleichen und bei einer Differenz alarmieren. Das ginge auch schön per cronjob. Etwas krude ist das schon, da gebe ich dir gerne recht :mrgreen: .

tobo
Beiträge: 2336
Registriert: 10.12.2008 10:51:41

Re: Programme aus Quellcode - Methoden

Beitrag von tobo » 27.03.2023 18:42:57

Ich würde a) in Kombination mit c) anwenden - b) scheidet völlig aus. Also aus den Suckless-Sources ein Deb-Paket bauen und nach /usr/local/bin installieren.
Wobei ich der Meinung bin, dass diese Suckless-Vorgehensweise für ein Binärpaketsystem komplett unbrauchbar ist. Wenn du also nicht die Grundkonfiguraton gebrauchen kannst, dann such' dir was anderes. Du hast bestenfalls theoretische Chancen, wenn du auf den Debian-Quelltext die versionstechnisch weit gestreuten Suckless-Patches anwenden willst.

Benutzeravatar
Meillo
Moderator
Beiträge: 9224
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Programme aus Quellcode - Methoden

Beitrag von Meillo » 27.03.2023 18:58:03

tobo hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 18:42:57
Ich würde a) in Kombination mit c) anwenden - b) scheidet völlig aus.
Sehe ich auch so. Die zweite Option sollte man nie verwenden. Sie hat keine Vorteile aber einige Nachteile.

Alles was ich von Hand kompiliere sind kleine Programme, die installiere ich dann nach /usr/local/bin oder nach ~/bin. Ein eigenes Debian-Paket zu bauen war fuer mich fast immer zu viel Arbeit. Das lohnt sich fuer mich eigentlich nur wenn ich ein bestehendes Debian-Paket abaendern will. Suckless-Programme installiere ich von Hand aus dem Git-Repo. Generell passe ich lieber $PATH an, anstatt bei der Installation Kompromisse zu machen.
Use ed once in a while!

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Programme aus Quellcode - Methoden

Beitrag von chrbr » 27.03.2023 19:11:03

Hallo @tobo und @Meillo,
erst einmal Danke für eure Meinung. Die Suckless Methode ist eigentlich nicht gut geeignet für Betriebssysteme, die eher auf Binaries setzen. Da stimme ich euch voll zu. Ein einfacher Parser für ein Konfig File kann doch nicht so riesig sein, oder?
Das ssterm ist halt schön klein als Beispiel.
Viele Grüße,
Christoph

KP97
Beiträge: 3701
Registriert: 01.02.2013 15:07:36

Re: Programme aus Quellcode - Methoden

Beitrag von KP97 » 27.03.2023 19:34:54

Ich kompiliere öfter was aus den Sourcen, mache meine gewünschten Anpassungen und erstelle dann ein Paket mit Debiancheckinstall.
Das kann dann mit dpkg -i installiert werden und geht nicht am Paketmanager vorbei.
Wohin der Pfad zeigt, kann ich auch selbst bestimmen, alles in allem eine saubere und simple Lösung.

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Programme aus Quellcode - Methoden

Beitrag von chrbr » 27.03.2023 21:13:08

KP97 hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 19:34:54
Ich kompiliere öfter was aus den Sourcen, mache meine gewünschten Anpassungen und erstelle dann ein Paket mit Debiancheckinstall.
Hallo KP97,
Debiancheckinstall kannte ich bisher noch nicht. Das schaue ich mir auf jeden Fall an. Meiner Meinung nach ist es von Vorteil, wenn ein Programm nicht am Paketmanager vorbei läuft. Bei einem Zwerg wie Debianstterm, wo es alle Jubeljahre (ungeprüfte Behauptung) mal ein Update gibt mag es ok sein, aber wo ist die Grenze?
Vielen Dank für den Hinweis,
Christoph

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Programme aus Quellcode - Methoden

Beitrag von chrbr » 28.03.2023 16:50:52

KP97 hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 19:34:54
Ich kompiliere öfter was aus den Sourcen, mache meine gewünschten Anpassungen und erstelle dann ein Paket mit Debiancheckinstall.
Das kann dann mit dpkg -i installiert werden und geht nicht am Paketmanager vorbei.
Wohin der Pfad zeigt, kann ich auch selbst bestimmen, alles in allem eine saubere und simple Lösung.
Ausnahmsweise mal ein Full-Quote. Mit dem Testobjekt Debianstterm ist das unglaublich einfach.
  • Mit apt-get sources die Quellen holen.
  • Die Abhängigkeiten installieren.
  • Das Binary kompilieren.
  • Im Arbeitsverzeichnis checkinstall ohne Optionen starten. Nur den Namen des neuen Paketes anpassen.
  • Falls man in der Konfigurationsdatei Install deaktiviert hat musss man nur noch mit dpkg das *.deb installieren.
chrbr hat geschrieben: ↑ zum Beitrag ↑
27.03.2023 18:14:18
Allerdings funktioniert die Vorgehensweise nach https://www.debian.org/doc/manuals/debi ... ng.de.html für mein einfaches Programm problemlos. Man muss allerdings einiges an Tools installieren. Das waren nach meiner Erinnerung knapp 200MByte.
Für Debiancheckinstall brauch man fast nichts.

Vielen Dank an KP97 für den hervorragenden Hinweis,
Christoph

KP97
Beiträge: 3701
Registriert: 01.02.2013 15:07:36

Re: Programme aus Quellcode - Methoden

Beitrag von KP97 » 28.03.2023 17:00:12

Ich wollte auch noch sagen, daß man in der conf in /etc/checkinstallrc die Zeile 111 mit Null überschreiben sollte, also TRANSLATE=0.
Dann erfolgen je nach Paket keine weiteren Abfragen zu Dokus etc.
Weiterhin vergebe ich in der Beschreibung unter Punkt 3 immer eine hohe Version wie z.B. 9 oder 10, also immer eine Version, die es im Repo nicht gibt.
Dann kann ich in z.B. Synaptic sofort sehen, welche Pakete von mir sind und nicht aus dem Repo stammen.
Ich lasse auch das Paket nicht direkt installieren, da ich zum Kompilieren ein separates Testsystem habe. Da will man ja nicht alle Pakete haben, die man selbst erstellt.

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Programme aus Quellcode - Methoden

Beitrag von chrbr » 28.03.2023 17:12:57

Hallo @KP97,
vielen Dank für die Ergänzung. Die Webseite ist auch einen Besuch wert. Ich fühle mich gleich 10 Jahre jünger :mrgreen: .
Viele Grüße,
Christoph

Benutzeravatar
Meillo
Moderator
Beiträge: 9224
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Programme aus Quellcode - Methoden

Beitrag von Meillo » 28.03.2023 17:27:17

KP97 hat geschrieben: ↑ zum Beitrag ↑
28.03.2023 17:00:12
Weiterhin vergebe ich in der Beschreibung unter Punkt 3 immer eine hohe Version wie z.B. 9 oder 10, also immer eine Version, die es im Repo nicht gibt.
Wie meinst du das? Was genau meinst du hier?

Fuer eine lokale Version sollte an die Version des Ausgangspakets einfach nur ein Suffix angehaengt werden, in meinem Fall z.B. ``+meillo1'' und bei meiner naechsten Ueberarbeitung des Pakets ``+meillo2'', dann wird es korrekt upgegradet.

Siehe: https://www.debian.org/doc/manuals/debi ... d-1.18.4.6
Use ed once in a while!

KP97
Beiträge: 3701
Registriert: 01.02.2013 15:07:36

Re: Programme aus Quellcode - Methoden

Beitrag von KP97 » 28.03.2023 20:21:54

@Meillo
Der offizielle Weg ist sicher etwas anders als der meine. Da ich die Pakete aber nur für mich selbst verwende, ignoriere ich den und nehme meinen bequemen und übersichtlichen.
Ich habe mal ein Bild angehängt, wie das aussieht. Ich habe z.B. hardinfo und mtpaint auf Gtk3 gebracht, xfburn habe ich optisch verändert.
Die eigene Version erspart mir z.B. das pinning, da es ja im Sid auch eine aktuelle Version gibt.

4014

dakuan
Beiträge: 107
Registriert: 28.04.2011 22:09:39

Re: Programme aus Quellcode - Methoden

Beitrag von dakuan » 28.03.2023 20:53:42

Ich verwende normalerweise eine Variante der Methode c).

Echte Debian Pakete zu bauen ist mir zu kompliziert. Ist schlimmer als eine korrekte Steuererklärung abzugeben und selbst das schaffe ich nicht ohne professionelle Hilfe.

Ich mache das jetzt alles mit Makefile's, auch schon ab 2 Quelldateien (aktuell habe ich aber bis zu 30). Da ist dann aber auch alles dabei, also auch *.desktop und Icons.

Wichtig ist mir dabei das die Ziele install, uninstall und clean vorhanden sind. Wenn man also das Makefile behält, kann man das alles rückstandslos wieder entfernen. Checkinstall hatte ich mal ausprobiert, hat aber nicht funktioniert. Mein Zielverzeichnis für das Binary ist dabei immer /usr/local/bin/.

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Programme aus Quellcode - Methoden

Beitrag von chrbr » 28.03.2023 22:34:50

dakuan hat geschrieben: ↑ zum Beitrag ↑
28.03.2023 20:53:42
Checkinstall hatte ich mal ausprobiert, hat aber nicht funktioniert.
Ich hatte anfangs auch Schwierigkeiten. Ich war auch der Meinung, dass man einiges im Benutzerinterface einstellen muss und die richtigen Kommandozeilenoptionen angeben muss. Da lag ich falsch. In meinem Fall habe ich checkinstall von Verzeichnis /usr/src/stterm/stterm-0.8.4 aus aufgerufen nachdem ich stterm mit make compiliert habe. checkinstall hat sich wohl die richtigen Infos anhand der Dateien geholt, die mit apt-get source stterm kopiert wurden.

Ich muss auch zugeben, dass ich kein Programmierer bin. Bei Themen wie automake und ähnlichen Tools sieht es bei mir düster aus. Ich kann mir vorstellen, dass dir so etwas leicht von der Hand geht.

Der bisherige Thread hat ja auch gezeigt, dass viele Wege nach Rom führen und viele User je nach Situation auch mal verschiedene Wege gehen. Was soll einen das auch wundern bei einem OS, das so viele Möglichkeiten bietet. :D .
Viele Grüße,
Christoph

Antworten