Don'tBreakDebian - building from source

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
rola621
Beiträge: 402
Registriert: 13.05.2021 18:12:20

Don'tBreakDebian - building from source

Beitrag von rola621 » 28.05.2021 07:32:34

Hallo!

wollte den anderen Backports-Thread viewtopic.php?p=1273224#p1273224 nicht noch weiter ausweiten, daher hier nochmal etwas allgemeiner, um die Thematik mit kompilierter Software zu klären.

Vor allem bei Don‘t Break Debian bin ich mir nicht sicher, ob ich hier gewisse Abschnitte richtig interpretiere bzw. verstehe, was mir hier besonders wichtig ist, da es ein grundlegendes Thema ist, worauf das Verständnis von Debian für mich aufbaut. Hier will ich also kein Haus auf Sand bauen und mir kein Halbwissen aneignen. Vielleicht hat jemand von euch noch die ein oder andere Erläuterung auf Lager?:


In DontBreakDebian, Abschnitt „building from source“ ( https://wiki.debian.org/DontBreakDebian ... rom_source ) wird geschrieben:
If you are building software from source obtained otherwise than from Debian, it's a good idea to build and run it as a normal user, within that user's home directory.
also leite ich daraus für mich die Regel ab (wenn ich checkinstall verwende):
- Während dem abarbeiten von

Code: Alles auswählen

./configure
make
checkinstall
nie als root agieren, und immer innerhalb des /home-Ordners bleiben.

automake and other build systems can install self-built software in non-standard locations. It is a bad idea to be root or use "sudo" to install self-built software into /usr/bin or the other standard locations where regular packages place files.
Die verschiedenen build-systeme installieren die kompilierte Software gern mal an „non-standard-locations“ (würde für mich bedeuten, Orte an denen man sie nichtmehr gut wiederfindet.) Problem hierbei könnte sein, dass man beim evtl. entfernen dieser Software dann nichtmehr alle Bestandteile wiederfindet und Leichen in den Verzeichnissen bleiben.

Verständnisfrage an dieser Stelle:
Wäre das Installieren an non-standard-locations nur dann gegeben, wenn ich als root agieren würde, und ist als normaler user innerhalb des home-Ordners kein wirkliches Problem?
Oder wie ist das hier zu verstehen?
It is almost always possible to instead install into your home directory. (Using ./configure --prefix=~/.local or similar.)
If you understand how to edit Makefiles, then you can alter the makefile in such a way as to render make install useful for your system or add a prefix=~/.local option.
Das klingt für mich so, als sollte man bei selbst kompilierter Software sofern möglich immer in ~/.local installieren, oder ähnliche Verzeichnisse im home-Verzeichnis. Ich habe mir jetzt z.B. folgenden Ordner angelegt: ~/.local/manuell-installiert

Im Rahmen der Kompilierung würde ich dann also folgendermaßen vorgehen:

Code: Alles auswählen

cd Downloads
tar -xzf archivname.tar.gz -C ~/.local/manuell-installiert 
cd ~/.local/manuell-installiert/archivname.tar.gz
./configure --prefix=~/.local/manuell-installiert
make 
checkinstall
Damit möchte ich erreichen, dass die Software sozusagen sicherheitshalber isoliert in einem Ordner des Home-Verzeichnisses bleibt, und nicht mit Software, die via Paketmanager installiert wurde, in Konflikt gerät.


Das ist, was ich durch meine bisherige Recherche mir so erarbeiten konnte.
Hier würde ich mich freuen, wenn jemand das Ganze nochmal „korrekturlesen“ kann, und an nötiger Stelle auf möglichst konstruktive Art und Weise noch nötige Erläuterungen und Berichtigungen anfügen kann..

Ich danke für eure Beteiligung!
Ein schönes Wochenende!


Rola

EDIT:
willy schrieb an anderer Stelle noch:
...Du kannst die Datei anschließend hin packen wo du willst....
...Generell würde ich empfehlen, die Debian- Maintainer bei ihren Paketen entscheiden zu lassen, wo die Bestandteile
des Programmpaketes hin sollen. Hat nämlich meistens seine Gründe...
"die Datei ist in dem Fall welche genau?
Auch ich möchte lieber die Debian-Maintainer entscheiden lassen, wohin die einzelnen Bestandteile der .deb-Pakete am besten sollen.

noch ein Zitat von DontBreakDebian:
If you want to make the software available to all users, do not allow it to install itself to the /usr directory hierarchy, as only Debian packages are meant to create files there. Installing software to the /usr/local will make it available to all users, and will not interfere with the package manager.

Ich hoffe, dass meine Fragestellung bzw. Verständnisproblem deutlich wird.
Ich möchte einfach nur sicherstellen, dass selbst kompilierte Software später keine Probleme bereitet wegen unachtsam gewählten Verzeichnissen an irgendeiner Stelle des Installationsprozesses.
Da das selbst kompilieren für mich noch Neuland ist, möchte ich jetzt euch um Hilfe bitten, die ihr durch eure Erfahrung wesentlich besser einschätzen könnt, wo was installiert werden sollte, und worauf ich achten sollte, um einen reibungslosen Ablauf zu gewährleisten :-)

:hail:
Notebook & Desktop: Debian bookworm & Xfce

willy4711

Re: Don'tBreakDebian - building from source

Beitrag von willy4711 » 28.05.2021 08:46:12

rola621 hat geschrieben: ↑ zum Beitrag ↑
27.05.2021 19:32:08
Da ich das mit den Quellcodes tatsächlich nie machen werde, habe ich alle Zeilen mit "deb-src" vorne entfernt.
Ja wat denn nu :?: :?:
willy schrieb an anderer Stelle noch:

...Du kannst die Datei anschließend hin packen wo du willst....
...Generell würde ich empfehlen, die Debian- Maintainer bei ihren Paketen entscheiden zu lassen, wo die Bestandteile
des Programmpaketes hin sollen. Hat nämlich meistens seine Gründe...

"die Datei ist in dem Fall welche genau?
Auch ich möchte lieber die Debian-Maintainer entscheiden lassen, wohin die einzelnen Bestandteile der .deb-Pakete am besten sollen.
Das zeigt mir, dass du überhaupt nicht verstanden hast, was du in diesem Tread gemacht hast.
viewtopic.php?f=27&t=181148

Vielleicht erhellende Lektüre:
https://www.debian.org/doc/manuals/debi ... cs.de.html

rola621
Beiträge: 402
Registriert: 13.05.2021 18:12:20

Re: Don'tBreakDebian - building from source

Beitrag von rola621 » 28.05.2021 09:23:44

willy4711 hat geschrieben: ↑ zum Beitrag ↑
28.05.2021 08:46:12
rola621 hat geschrieben: ↑ zum Beitrag ↑
27.05.2021 19:32:08
Da ich das mit den Quellcodes tatsächlich nie machen werde, habe ich alle Zeilen mit "deb-src" vorne entfernt.
Ja wat denn nu :?: :?:

Damit war gemeint, dass ich mir nie Quellcodes aus den Repos ziehen werde. Wenn Quellcodes, dann direkt vom Entwickler und nur im Sonderfall, wie neulich zB mit FATsort.

willy schrieb an anderer Stelle noch:

...Du kannst die Datei anschließend hin packen wo du willst....
...Generell würde ich empfehlen, die Debian- Maintainer bei ihren Paketen entscheiden zu lassen, wo die Bestandteile
des Programmpaketes hin sollen. Hat nämlich meistens seine Gründe...

"die Datei ist in dem Fall welche genau?
Auch ich möchte lieber die Debian-Maintainer entscheiden lassen, wohin die einzelnen Bestandteile der .deb-Pakete am besten sollen.
Das zeigt mir, dass du überhaupt nicht verstanden hast, was du in diesem Tread gemacht hast.
viewtopic.php?f=27&t=181148
Wunderbar, denn die Tatsache, dass ich es noch nicht vollständig verstanden habe, war der Anlass, diesen separaten Thread zu eröffnen und im Eingangspost mein bestmögliches zu geben, euch zu schildern, woran es hakt.

Vielleicht erhellende Lektüre:
https://www.debian.org/doc/manuals/debi ... cs.de.html
Danke, ich würde ganz gern die bisherige Lektüre entsprechend verdauen und habe dazu noch einige Fragen, weshalb ich diesen Thread erstellt habe. Den Thread habe ich vor allem deshalb erstellt, weil ich hoffe, dass Ihr als meine Mitmenschen versteht, worum es mir bei der Fragestellung geht, und mir eine menschliche und zielführende Antwort bzw. weitere Tips geben könnt.
Zuletzt geändert von rola621 am 28.05.2021 09:26:11, insgesamt 1-mal geändert.
Notebook & Desktop: Debian bookworm & Xfce

rola621
Beiträge: 402
Registriert: 13.05.2021 18:12:20

Re: Don'tBreakDebian - building from source

Beitrag von rola621 » 28.05.2021 09:24:24

:hail:
Notebook & Desktop: Debian bookworm & Xfce

willy4711

Re: Don'tBreakDebian - building from source

Beitrag von willy4711 » 28.05.2021 09:58:40

rola621 hat geschrieben: ↑ zum Beitrag ↑
28.05.2021 09:23:44
Den Thread habe ich vor allem deshalb erstellt, weil ich hoffe, dass Ihr als meine Mitmenschen versteht, worum es mir bei der Fragestellung geht, und mir eine menschliche und zielführende Antwort bzw. weitere Tips geben könnt.
Das bedingt aber, dass man bereit ist auch die zur Verfügung gestellte Literatur zu lesen.
Nochmal:
https://www.debian.org/doc/manuals/debi ... ourcebuild
Da wird viel erklärt, auch die Funktion der control-Datei die ich mehrmals in dem Backport Thread erwähnt habe.

Dann sollte man sich ein beliebiges *.deb Paket herunterladen und mal entpacken.
Dann kann man sich ansehen, was mit einem (fertig kompilierten) Paket unter welchen Bedingungen passiert.
Wenn du das alles verstanden hast, kannst du z,B. folgendes lesen:
https://wiki.ubuntuusers.de/Programme_kompilieren/

Wenn du es ganz genau wissen willst, hier ein PDF:
https://www.debian.org/doc/manuals/pack ... ial.de.pdf

Dann suche dir ein Programm deiner Begierde und suche nach dem Source-Code (Endung meist *.tgz)
Oder eben ein Debian Source Paket.

Ganz nett: Birdtray: https://github.com/gyunaev/birdtray
Brauchst du z.B. wenn du Thunderbird von Mozilla hast, weil das Debianbirdtray von Debian immer den Debian eigenen Thunderbird mit installiert. Kannst du aber auch selbst erkunden, warum das so ist.

Alternative wäre dann (die nächste Stufe :mrgreen: ), die Control- Datei zu bearbeiten, was aber wahrscheinlich beim Nächsten
Update in die Hose gehen würde. Weiß ich aber nicht genau.

In so einem konkreten Fall kann man dann gerne und gezielt helfen.

cggpp
Beiträge: 12
Registriert: 12.05.2020 16:40:14
Wohnort: Wien

Re: Don'tBreakDebian - building from source

Beitrag von cggpp » 24.06.2021 00:51:44

Du solltest dir mal Debianstow ansehen. So geht man mit Software die nicht durch DebPackages geliefert wird um.

Eine gute Erklärung findest du hier:
https://www.linux-community.de/ausgaben ... -verstaut/

mcb

Re: Don'tBreakDebian - building from source

Beitrag von mcb » 24.06.2021 13:57:53

Du kannst selbst kompilieret Software in deinem /home lassen (kein install am Schluß) <-> dann landen auch keine Dateien in den Systemverzeichnissen.

Und anschließend nach z.B. /opt kopieren.

Beispiel: ->

Code: Alles auswählen

marc@mb:/opt$ la spycheck-linux/
total 88
drwxr-xr-x 3 root root  4096 Sep  3  2020 .
drwxr-xr-x 9 root root  4096 May  2 12:05 ..
drwxr-xr-x 8 root root  4096 Sep  3  2020 .git
-rw-r--r-- 1 root root    66 Sep  3  2020 .gitattributes
-rwxr-xr-x 1 root root 35227 Sep  3  2020 LICENSE
-rwxr-xr-x 1 root root  4304 Sep  3  2020 README.md
-rwxr-xr-x 1 root root 24795 Sep  3  2020 spycheck.py
marc@mb:/opt$ 

Bauen aus Debianquellen ist nochmal ein anderer Fall. - da sollte sich in der Debiandokumentation einiges finden lassen.

mcb

Re: Don'tBreakDebian - building from source

Beitrag von mcb » 25.06.2021 16:59:38

Bauen aus Debianquellen:

https://wiki.debian.org/SimpleBackportCreation

Das habe ich jetzt auch endlich mal probiert ->

Am Ende hat man eine deb Datei die man installiert.

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

Re: Don'tBreakDebian - building from source

Beitrag von KP97 » 25.06.2021 18:42:21

@mcb
Wenn Du hier im Forum aufmerksam mitgelesen hättest, wären Dir die mehrfachen Hinweise auf Debiancheckinstall nicht entgangen.
Damit werden deb Pakete erzeugt, die man dann mit dpkg installieren kann und auch wieder sauber deinstallieren kann.
Das ist an und für sich recht simpel, ganz im Gegensatz zum Paketbau aus Deinem Link. Der Link richtet sich an User, die Pakete bauen und diese dann im Repo zur Verfügung stellen wollen. Daß da andere Abläufe vorliegen, versteht sich von selbst.
Das will man aber gewöhnlicherweise nicht, sondern man will für sein eigenes System ein Paket erstellen.

Eine ganz schlechte Idee ist es, wie in Deinem vorherigen Post erwähnt, irgendetwas manuell zu kopieren, da das immer am Paketmanager vorbei geht. Das sollte man eher nicht tun,
es sei denn, man weiß als fortgeschrittener User genau, was man da macht.

mcb

Re: Don'tBreakDebian - building from source

Beitrag von mcb » 25.06.2021 21:29:49

@KP97

Ja da hast du Recht wenn checkinstall ein deb bastelt bietet sich das an (ich kann es nicht bedienen) ...

Solche Leute (also ich) kopieren Fremdsoftware z.B nach /opt oder lassen sie im home <-> das macht zumindest nichts am System kaputt.

Und selbst den "backport" basteln ist auch nicht so streßfrei - zumindest habe ich es hinbekommen.

mcb

Re: Don'tBreakDebian - building from source

Beitrag von mcb » 26.06.2021 10:58:44

rola621 hat geschrieben: ↑ zum Beitrag ↑
28.05.2021 09:24:24
:hail:
Moin - o.k. jetzt habe ich es auch verstanden:

- du möchtest mit checkinstall nach home installieren mit dem erstelltem deb ?
- alternativ könntest du das kompilierte Programm gl. ohne install in home behalten (ohne checkinstall)- siehe meinen Beitrag weiter oben.

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

Re: Don'tBreakDebian - building from source

Beitrag von KP97 » 26.06.2021 13:27:18

Nein @mcb, erst checkinstall macht ein Paket aus den Sourcen, vorher ist nichts mit kopieren.
Beim Kompilieren aus dem Quellcode kann ich immer das gewünschte Ziel mitgeben, z.B. wenn ich das Paket in /opt oder in /usr/bin haben will, gebe ich ein Prefix mit:
./configure --prefix=/opt
oder
./configure --prefix=/usr/bin
Default ist immer /usr/local, das sind Vorgaben in Unix und Linux Systemen. Es sei denn, der Programmierer hat etwas anderes eingebaut, das passieert aber sehr selten.
Es empfiehlt sich dringend, vorher man configure oder configure --help zu lesen, welche Optionen zur Verfügung stehen und welche Standardvorgaben nicht geändert werden können.

Aber Vorsicht:
Je nach Software wird das ausführende Programm immer in /usr/bin bzw. /usr/local/bin gesucht. Es ist also nicht gesagt, daß ein Programm im /home auch immer direkt ausführbar ist.
Ein Starter in /usr/share/applications sucht z.B. immer zuerst in /usr/bin.

Also @mcb, es ist lobenswert, daß Du anderen Usern helfen willst, aber die Tipps sollten auch stimmen, Halbwissen hilft da nicht unbedingt.

mcb

Re: Don'tBreakDebian - building from source

Beitrag von mcb » 26.06.2021 23:34:56

KP97 hat geschrieben: ↑ zum Beitrag ↑
26.06.2021 13:27:18
Nein @mcb, erst checkinstall macht ein Paket aus den Sourcen, vorher ist nichts mit kopieren.
Beim Kompilieren aus dem Quellcode kann ich immer das gewünschte Ziel mitgeben, z.B. wenn ich das Paket in /opt oder in /usr/bin haben will, gebe ich ein Prefix mit:
./configure --prefix=/opt
oder
./configure --prefix=/usr/bin
Default ist immer /usr/local, das sind Vorgaben in Unix und Linux Systemen. Es sei denn, der Programmierer hat etwas anderes eingebaut, das passieert aber sehr selten.
Es empfiehlt sich dringend, vorher man configure oder configure --help zu lesen, welche Optionen zur Verfügung stehen und welche Standardvorgaben nicht geändert werden können.

Aber Vorsicht:
Je nach Software wird das ausführende Programm immer in /usr/bin bzw. /usr/local/bin gesucht. Es ist also nicht gesagt, daß ein Programm im /home auch immer direkt ausführbar ist.
Ein Starter in /usr/share/applications sucht z.B. immer zuerst in /usr/bin.

Also @mcb, es ist lobenswert, daß Du anderen Usern helfen willst, aber die Tipps sollten auch stimmen, Halbwissen hilft da nicht unbedingt.
Ja da hast du schon wieder Recht -

Danke für den Hinweis mit

Code: Alles auswählen

./configure --prefix=...
!

mcb

Re: Don'tBreakDebian - building from source

Beitrag von mcb » 30.06.2021 19:21:12

Gut ich denke ja immer noch drüber nach:

Ich kompiliere das Programm im home oder ich baue mit checkinstall ein deb das nach home installiert. Für mich das Gleiche in Grün.

MaGe
Beiträge: 1708
Registriert: 01.06.2014 17:12:16

Re: Don'tBreakDebian - building from source

Beitrag von MaGe » 01.07.2021 10:13:26

mcb hat geschrieben: [...] ich baue mit checkinstall ein deb das nach home installiert.[...]
Und warum installiert du ein deb paket in home?



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

mcb

Re: Don'tBreakDebian - building from source

Beitrag von mcb » 01.07.2021 10:51:43

MaGe hat geschrieben: ↑ zum Beitrag ↑
01.07.2021 10:13:26
mcb hat geschrieben: [...] ich baue mit checkinstall ein deb das nach home installiert.[...]
Und warum installiert du ein deb paket in home?



gruss MaGe
Ich mache das ja nicht. Ev. habe ich rola falsch verstanden (Siehe erster Post).

Antworten