Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
stefanT42
Beiträge: 14
Registriert: 31.03.2008 14:45:34

Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von stefanT42 » 04.04.2008 22:54:23

Hallo zusammen,

ich diskutiere schon länger mit Freunden darüber, was eigentlich mehr Vorteile hat :

apt-get install *.deb oder make sprich selbst kompilieren?

Da geht es die meiste Zeit um die Punkte wie

1. Performance
2. Sicherheit
3. Overhead

Vielleicht können hier einige Fachleute mal Ihre Meinungen Erfarhungen offenbaren.

Vielen Dank schonmal,

Stefan

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von rendegast » 04.04.2008 23:10:14

Zu 1. und 3.
Kannst Du das messen, bzw bemerkst Du da einen Unterschied?
Nach einem linux-Magazin-Artikel zur Kompiler-Optimierung liegt das im Prozentbereich.

zu 2.
Das ist ein Punkt, Bsp clamav: dessen Versionsupdates SIND Sicherheitsupdates.
Aus anderer Sicht: Der Anlaß einer solchen Aktion ist meist eine fehlende Funktion der Software. Würdest Du dann selbst immer schön auf die Aktualisierung Deiner Komponenten achten?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von GoKi » 04.04.2008 23:53:33

rendegast hat geschrieben:Zu 1. und 3.
Kannst Du das messen, bzw bemerkst Du da einen Unterschied?
Nach einem linux-Magazin-Artikel zur Kompiler-Optimierung liegt das im Prozentbereich.
Zum Glück sind wir nicht in nem Gentoo Forum :)

Ich persönlich kompiliere nichts, was es auch als Paket gibt. Mit ein Grund für mich Debian zu benutzen. ist die große Anzahl an zur Verfügung stehenden Pakten, die auf einfache Art installiert werden können. Also ich habe mich dafür entschieden so wenig wie möglich zu kompilieren. Und mich daher auch für eine Binär-Distro entschieden, also eben nicht für eine Source Distro wie Gentoo, SourceMage, usw.
MfG GoKi
:wq

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von Leonidas » 05.04.2008 14:32:53

GoKi hat geschrieben:Ich persönlich kompiliere nichts, was es auch als Paket gibt. Mit ein Grund für mich Debian zu benutzen. ist die große Anzahl an zur Verfügung stehenden Pakten, die auf einfache Art installiert werden können. Also ich habe mich dafür entschieden so wenig wie möglich zu kompilieren. Und mich daher auch für eine Binär-Distro entschieden, also eben nicht für eine Source Distro wie Gentoo, SourceMage, usw.
Ich denke nicht dass das Killerfeature bei Gentoo das selbstkompilieren ist. Schließlich müsste es auch möglich sein, mit ein paar kleinen Änderungen an den ``rules``-Dateien die CFLAGS zu setzen und das Paket mit optimierungen zu kompilieren. Das geht in Debian auch, mit apt-build. Man könnte damit auch das ganze System übersetzen und dann selbst entscheiden, ob es was gebracht hat. Die Stärke von Gentoo sind die USE-Flags, mit denen ich etwa sagen kann ob ich ein Paket mit X11 kompilieren will oder ohne. Die Equivalente dazu sind in Debian spezielle, alternative Pakete etwa emacs-nox, mplayer-nogui, vim-full, vim-tiny etc, aber die sind natürlich nicht ganz so umfassend konfigurierbar. Andererseits hat man auch nicht das Problem, dass man Pakete neu kompilieren muss, weil man USE-Flag XY nicht gesetzt hat und das dann doch nötig war.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von catdog2 » 05.04.2008 22:04:47

Die USE flags können eine schöne Sache sein. Auf einem System, an dem man an der Softwareaustattung selten etwas ändert und genau weiss was man braucht, kann man da sicher gut was optimieren und Sicherheitslücken minimieren.
Auf einem normalen Desktop System, dass möglichst alles können sollte und auf dem man auch einiges ausprobiert ist sowas nicht wirklich vorteilhaft. "Recompile <irgendwasgroßes> with USE=irgendwas". Dann darfst du Stunden warten obwohl du eigentlich nur ein kleines Programm installieren wolltest. :)
Ich persönlich kompiliere nichts, was es auch als Paket gibt. Mit ein Grund für mich Debian zu benutzen. ist die große Anzahl an zur Verfügung stehenden Pakten, die auf einfache Art installiert werden können. Also ich habe mich dafür entschieden so wenig wie möglich zu kompilieren. Und mich daher auch für eine Binär-Distro entschieden, also eben nicht für eine Source Distro wie Gentoo, SourceMage, usw.
Sehe ich ähnlich. Vor allem ist es für mich auch die einfache Art das ganze up-to-date zu halten. Wenn ich irgendwas per Hand installiere reicht eben kein dist-upgrade. Deswegen mach ich das nur bei wenigen ausgewählten Sachen (wine, firefox, kernel ... und das teilweise auch nur, weil ich mir das irgendwann mal angefangen habe und so weitermache).
Eine weitere wichtige Sache ist die Zeit, die das kompilieren braucht. Man kann bei distris wie gentoo eben oft nicht ganz schnell was nachinstallieren, weil es seine Zeit braucht, bis es gebaut ist. Und wenn ich mir vorstelle ich müsste in testing das tägliche dist-upgrade durch den Compiler jagen... meine CPU brauch ich für andere Dinge.
Das kompilieren Überlass ich dann doch dem Rechner, der dafür da ist... dem Buildserver. Was anderes kann man ja schon aus Umweltaspekten nicht mehr verantworten. Was das Strom braucht, wenn jeder den gleichen Arbeitsschritt selber ausführt, anstatt einmal zentral. ;)
War jetzt als Witz gedacht, aber wenn mal mal genauer drüber nachdenkt... Bei einer Binärdistri schaltet man den Rechner ab wenn man für länger weggeht, bei gentoo wirft man den den Updatemechanismus an und lässt die Kiste auf Volllast rödeln.
Unix is user-friendly; it's just picky about who its friends are.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von gms » 06.04.2008 00:49:21

catdog2 hat geschrieben:Die USE flags können eine schöne Sache sein. Auf einem System, an dem man an der Softwareaustattung selten etwas ändert und genau weiss was man braucht, kann man da sicher gut was optimieren und Sicherheitslücken minimieren.
Auf einem normalen Desktop System, dass möglichst alles können sollte und auf dem man auch einiges ausprobiert ist sowas nicht wirklich vorteilhaft.
welches normale Desktop System muß schon alles können ? Wer braucht schon Gnome/GTK UND KDE/Qt Support ? Und selbst wenn, dann gibts noch über 100 andere USE-Flags mit denen man das System an seine eigenen Bedürfnisse anpassen kann.
catdog2 hat geschrieben: "Recompile <irgendwasgroßes> with USE=irgendwas". Dann darfst du Stunden warten obwohl du eigentlich nur ein kleines Programm installieren wolltest. :)
Ist ja nicht so, daß ich beim Kompilieren zugucken muß und Gut Ding braucht eben Weile :wink:
Wenn ich nur schnell ein Programm ausprobieren möchte, dann kann ich das auch auf meinem Debian-Server, oder im Debian-Chroot auf meinem Laptop :wink:
catdog2 hat geschrieben: Und wenn ich mir vorstelle ich müsste in testing das tägliche dist-upgrade durch den Compiler jagen... meine CPU brauch ich für andere Dinge.
...
Bei einer Binärdistri schaltet man den Rechner ab wenn man für länger weggeht, bei gentoo wirft man den den Updatemechanismus an und lässt die Kiste auf Volllast rödeln.
Das wäre eine Möglichkeit, bei mir läuft das Upgrade aber im Hintergrund und ist nur durch durch einen leichte Erhöhung der Load Anzeige zu bemerken, bzw durch die Rückmeldung ob alles glatt gelaufen ist, oder eben nicht. Wenn ich länger weggehe klappe ich den Laptop-Deckel zu und wenn ich wieder komme macht das System Dank "Suspend to Disk" dort weiter, wo es aufgehört hat :wink:

Außerdem sehe ich keinen Zusammenhang zwischen der Fragestellung und einer Diskussion über Gentoo! Es steht ja nicht die Frage im Raum "apt-get vs emerge", sondern "apt-get vs make",
also ob es sinnvoll ist Pakete selber zu bauen, wenn diese auch über den Paketmanager installierbar sind. Wie Leonidas schon angemerkt hat, ist bei Debian mit "apt-build" beides möglich.
Somit hat man ( wenn man daran glaubt ) eine Performancesteigerung, keinen Nachteil bei der Sicherheit und je nachdem wieviele Pakete man selber bauen möchte, entweder einen kleinen, oder einen größeren Overhead.

Gruß
gms

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von Leonidas » 06.04.2008 11:05:17

catdog2 hat geschrieben:Die USE flags können eine schöne Sache sein. Auf einem System, an dem man an der Softwareaustattung selten etwas ändert und genau weiss was man braucht, kann man da sicher gut was optimieren und Sicherheitslücken minimieren.
Auf einem normalen Desktop System, dass möglichst alles können sollte und auf dem man auch einiges ausprobiert ist sowas nicht wirklich vorteilhaft. "Recompile <irgendwasgroßes> with USE=irgendwas". Dann darfst du Stunden warten obwohl du eigentlich nur ein kleines Programm installieren wolltest. :)
Ja, gut xmonad installieren ist lästig, weil es GHC braucht und GHC eine halbe Ewigkeit kompiliert. Ansonsten dauert es in der Regel gar icht so lange, auf Gentoo stable gibt es oft tagelang keine Updates. Ein anderer Vorteil ist, dass die Gentoo-``-r<num>``-Releases nicht immer das neue Source-File runterladen müssen, wie die Debian-``-<num>``-Releases. Dafür hast du eben einen Gigabyte an Tarballs rumliegen ;)
catdog2 hat geschrieben:Bei einer Binärdistri schaltet man den Rechner ab wenn man für länger weggeht, bei gentoo wirft man den den Updatemechanismus an und lässt die Kiste auf Volllast rödeln.
Nein, das ist mir seit Monaten zwei Mal passiert: Installation + kompilation von GNOME, Update auf GNOME 2.22. Die restlichen Kompilationen laufen nebenher.

Ob es jetzt Portage oder APT ist: Paketmanagement ist auf jeden Fall besser als kein Paketmanagement. Erstens hat man dadurch die Sicherheit, dass sich die kompilierten Pakete gut ins System einfügen (wer kompiliert GNOME mittels GRNOME oder jhbuild? Warum sonst dauert das Upgrade auf neue Versionen so lange?) und zweitens Sicherheitsupdates, drittens kann das Paketmanagement das Paket ggf. als Dependency nutzen, falls es später ein anderes, via Paketmanager installiertes Programm zum funktionieren benötigt, etc.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

C167
Beiträge: 468
Registriert: 06.04.2006 08:55:20
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von C167 » 06.04.2008 13:31:34

wie einige inzwischen wissen bin ich quasi ein junkie, immer gerne auf der neusten Version. Ich compiliere dafuer auch einige Anwendungen selbst, solange sie remove- oder uninstall-Targets haben. Nennt es Spass an der Freude :)
Bei einigen Sachen ist es aber so, dass ich neben der neust moeglichen Version auch gerne ein wenig optimiere, was momentan nur auf Games wie Nexuiz und XMoto zutrifft, aber auch xaos (fraktalgenerator) und andere Rechenintensive Dinge passe ich gerne auf mein System an. So bekomme ich bei Nexuiz trunk trotz des Schlechten fglrx-Treibers durch die Optimierung ca. 50-80 FPS mehr als ohne und renne je nach Karte auf bis zu 200FPS rum. Genug Puffer moechte man meinen ;)

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von Saxman » 06.04.2008 14:19:15

C167 hat geschrieben:So bekomme ich bei Nexuiz trunk trotz des Schlechten fglrx-Treibers durch die Optimierung ca. 50-80 FPS mehr als ohne und renne je nach Karte auf bis zu 200FPS rum. Genug Puffer moechte man meinen ;)
Da bin Ich mal neugierig, was optimierst du denn?
Welche sourcen nutzt du denn dafür? die aus den repos oder von der website?

Könnte hier nicht nur mich interessieren. Gel RuckelSandra? :D :D :D

Schönen Gruß
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von catdog2 » 06.04.2008 14:29:11

Sie hat doch eh bald einen neuen Rechner. ;)
Unix is user-friendly; it's just picky about who its friends are.

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von Saxman » 06.04.2008 14:36:00

catdog2 hat geschrieben:Sie hat doch eh bald einen neuen Rechner. ;)
Wenn sie es denn schaft sich mal für ein Mainboard zu entscheiden... :D :D :D

Neugierig bin ich aber trotzdem immer noch...
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von catdog2 » 06.04.2008 14:41:16

Würd mich auch interessieren, wie man da so viel rausholen kann. :)
Unix is user-friendly; it's just picky about who its friends are.

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von cirrussc » 06.04.2008 16:28:04

Saxman hat geschrieben:Welche sourcen nutzt du denn dafür? die aus den repos oder von der website?
Wäre mal interessant.
Saxman hat geschrieben:Könnte hier nicht nur mich interessieren. Gel RuckelSandra? :D :D :D
Oh ja Ruckelsandra wird es brauchen, obwohl sie so schon nicht schlecht ist.
Saxman hat geschrieben:Wenn sie es denn schaft sich mal für ein Mainboard zu entscheiden...
Diese Woche ist es wohl soweit :wink:
C167 Antworte uns :D

Ich konfiguriere und kompiliere höchstens den Kernel und ein paar Anwendung neuerer Version als im Repo. sind selber.
Schliesslich klappt das nicht auf jedem System innerhalb einer gewissen Zeit, die Rechenleistung ist bestimmend.
Zudem hat das Energieverbrauch Argument auch Hand und Fuss.
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

C167
Beiträge: 468
Registriert: 06.04.2006 08:55:20
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von C167 » 06.04.2008 21:19:34

leutz, ich schreib morgen IT-Abitur, also habt Gedult ;)
darkplaces: svn://svn.icculus.org/twilight/trunk/darkplaces
nexuiz: svn://svn.icculus.org/nexuiz/trunk

die Datei makefile.inc im Ordner darkplaces editieren:

Code: Alles auswählen

CPUOPTIMIZATIONS=-pipe -march=prescott -fomit-frame-pointer -mfpmath=sse -msse -msse2 -msse3
dann ein kleines diff:

Code: Alles auswählen

-#OPTIM_RELEASE=-O2 -fno-strict-aliasing -ffast-math -funroll-loops $(CPUOPTIMIZATIONS)
+OPTIM_RELEASE=-O3 -fno-strict-aliasing -ffast-math -funroll-loops $(CPUOPTIMIZATIONS)
evtl noch verbieten dass er die sdl-version baut. dann einfach "make cl-nexuiz" und der Kern baut. ich hab nen symlink von nexuiz-glx (also der engine) nach /usr/local/bin/nexuiz und brauch nur nexuiz eingeben.

im Nexuiz-Ordner wirds schwerer, da muessen die qc-sourcen compiliert werden. dazu braucht man ne aktuelle Version von fteqcc, woher evtl spaeter, muss ich suchen
man muss den Befehl fteqcc in den Ordnern
nexuiz/data/qcsrc/menu client und server ausfuehren wenn ich mich recht erinnere. dann geht man in den nexuiz-ordner zurueck und gibt nexuiz ein (was den symlink ausfuehrt)

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von Saxman » 07.04.2008 12:14:12

Vielen Dank für deine Anleitung.

Ich hab das mal nachvollzogen mit etch amd64, allerdings mit den sourcen aus den repos.

Die letzte funktionierende Konfiguration ist bei mir

Code: Alles auswählen

CPUOPTIMIZATIONS=-pipe -march=athlon64 -m64 -fomit-frame-pointer -mfpmath=sse -mmmx -msse -msse2 -m3dnow
und

Code: Alles auswählen

OPTIM_RELEASE=-O3 -fno-strict-aliasing -funroll-loops $(CPUOPTIMIZATIONS)
Alles andere produziert Fehler.
Einen großen Geschwindigkeitszuwachs konnte Ich allerdings nicht verbuchen.
Lohnt sich nicht wirklich, zumindest nicht für meine Architektur.

Die Jungs vom debian amd64 team machen ihre Sache anscheinend ganz ordentlich.

Danke trotzdem.

Schönen Gruß
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Macht kompilieren noch Sinn wenn DEB's erhätlich sind

Beitrag von Leonidas » 07.04.2008 17:44:37

Saxman hat geschrieben:Die Jungs vom debian amd64 team machen ihre Sache anscheinend ganz ordentlich.
Naja, da gibt es ja auch nicht viel zu optimieren, da x86_64 recht neu ist. Da sind viele CPU-Erweiterungen von Haus aus drin, so sind alle CPUs mit SSE, SSE2 usw. Da gibt es einfach keine alten CPUs die wesentlich weniger Erweiterungen haben, zu denen man trotzdem noch kompatibel bleibt.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Antworten