# USE Variable wirklich nötig?

## schmidicom

Ich frage mich schon die längste zeit: Ist eine USE Variable den wirklich nötig?

Ich denke nicht, andere Linux Dist. haben das ja auch nicht. Zumindest glaube ich dass nicht, aber lasse mich gern eines besseren belehren.  :Smile: 

Wenn ich mir so ansehe was es alles für Optionen gibt wird mir fast schlecht.

Bis jetzt habe ich Gentoo immer ohne USE aufgesetzt aber falls das eine wichtige Funktion von emerge bremst (also eine auf die man unmöglich verzichten kann) dann bin ich echt froh wenn mir das einer sagt.

Jedes mal wenn ich mir alle Optionen ansehe denke ich: Ja das könnte ich brauchen, und das, und das, ach das auch.

Im Endeffekt habe ich eine Liste die einmal um Die Erde gehen könnte.

Was macht ihr? Habt ihr überhaupt USE drin?

----------

## l3u

Naja, das ist ja grad der Sinn von Gentoo, daß man alles so bauen kann, wie man's gerne hätte. Der Sinn ist allerdings NICHT, daß du alles in /etc/make.conf reinschreibst, von dem du denkst, daß du's irgendwann mal brauchen könntest. Vielmehr solltest du, wenn die default-USE-Flags nicht deinen Vorstellungen entsprechen, für jedes Paket einen Eintrag in der /etc/portage/package.use machen. In die /etc/make.conf gehören nur grundsätzliche Sachen, die prinzipiell für alle Pakete gelten könnten, wie z. B. alsa, mmx und sowas.

----------

## Tenobok

 *schmidicom wrote:*   

> Ich frage mich schon die längste zeit: Ist eine USE Variable den wirklich nötig?
> 
> Ich denke nicht, andere Linux Dist. haben das ja auch nicht. Zumindest glaube ich dass nicht, aber lasse mich gern eines besseren belehren. 

 

Ob man's braucht oder nicht, darüber kann man natürlich streiten. Ich finde es sehr praktisch, da ich mir dadurch ab und zu das installieren von unnötigen Abhängikeiten ersparen kann, die von Funktionen genutzt werden, die ich ohnehin nicht brauche. 

 *schmidicom wrote:*   

> 
> 
> Wenn ich mir so ansehe was es alles für Optionen gibt wird mir fast schlecht.
> 
> Bis jetzt habe ich Gentoo immer ohne USE aufgesetzt aber falls das eine wichtige Funktion von emerge bremst (also eine auf die man unmöglich verzichten kann) dann bin ich echt froh wenn mir das einer sagt.
> ...

 

Naja, bei manchen Sachen weiss man ja, dass man sie braucht. Ich hab zum Beispiel dvd, dvdr, mp3, vorbis, alsa, gimpprint, win32codecs, xvid und so weiter drin, weil ich die bei fast allen programme brauche, die diese use-flags haben. Useflags die ich für einzelne Programme brauche aber nicht weiss ob ich die noch irgendwoanders brauchen kann schmeiss ich in /etc/package.use für das jeweilige Paket. Da ich vor jedem emerge ohnehin erstmal ein emerge -pv mache ist das eine Sache von Sekunden.

----------

## franzf

Jepp sicher hab ich einiges an USE-Flags gesetzt!

Aber nicht alles macht für jeden Sinn. Z.B. die Kde- bzw. Gnome-Unterstützung beim OpenOffice.

Wenn du ne langsamere Maschine hast, und weniger Festplatte kannst du dir dadurch einiges an MB sparen!

Oder Amarok:

Wenn du das nicht mit einer (aufwändige(re)n) MySql-Datenbank sondern nur mit SQLite verwenden willst macht die MySql-Unterstützung für dich wenig Sinn, also USE="-mysql"!

Wenn du ein ClosedSource-Verweigerer bist wirst du mit Sicherheit asf, win32codecs, mp3, mad, usw. deaktivieren.

Ich könnte jetzt noch einiges anderes aufzählen, läuft aber so immer auf das Selbe hinaus.

Die USE-Flags machen es dem Gentoo-Admin/Nutzer sehr leicht das System an seine Bedürfnisse anzupassen.

Im Gegensatz zu SuSE, Mandriva, etc., bei denen die Unterstützung in den Binaries unveränderbar einkompiliert ist und der Benutzer nehmen muss was er bekommt.

Das ist eben auch ein Grund warum Binaries für den versierten Gentoo-Nutzer wenig Sinn machen:

Man müsste irrwitzig viele Binaries erstellen, um alle Möglichkeiten von USE-Flag-Kombinationen zu erreichen. Und das ist ein nicht zu bewerkstelligender (zumindest für eine solche OpenSource-Gemeinde) Aufwand.

Also immer schön die USE-Flags abfragen (mit emerge -pv Programmname) bevor du installierst, um dann die Bedeutung des USE-Flags mit euse -i USE_FLAG zu erfahren  :Wink: 

Grüße

Franz

----------

## schmidicom

Ok USE macht sinn wenn man weis damit umzugehen. Bei euch scheint das ja inzwischen kein prob mehr zu sein.  :Smile: 

Ich werde mich wohl mal etwas damit beschäftigen bevor ich mein Spiele-Windows durch ein Spiele-Linux ersetze.

Aber wenn einer nun beschliesst aus Unwissenheit und Zeitersparnissen das ganze USE weg zu lassen passiert doch auch nichts Schlimmes oder?

----------

## l3u

Naja, dann kannst du aber auch gleich ne andere Distribution nehmen, bzw. es wird nicht alles so funktionieren, wie du dir das vorstellst ...

----------

## franzf

 *schmidicom wrote:*   

> Aber wenn einer nun beschliesst aus Unwissenheit und Zeitersparnissen das ganze USE weg zu lassen passiert doch auch nichts Schlimmes oder?

 

Natürlich passiert nix schlimmes  :Wink: 

Aber das Gentoo beschuldigen dass es keine MP3`s abspielen kann, oder OpenOffice überhaupt nicht den KDE-Style annimmt, aber bei SuSE schon, das lässte dann bleiben  :Wink:  hehe

Allerdings macht es bei großen Sachen (OpenOffice, GTK+, KOffice, etc.) schon Sinn erstmal zu schauen was alles geht, bevor man dann auf ein Problem stößt welches von vornherein eliminiert werden hätte können, und jetzt mal wieder zusätzliche Stunden Kompilieren anfallen  :Smile: 

Soweit dann

Bye

Franz

 *Libby wrote:*   

> Naja, dann kannst du aber auch gleich ne andere Distribution nehmen, bzw. es wird nicht alles so funktionieren, wie du dir das vorstellst ...

 

Eher zweiteres  :Wink: 

----------

## schmidicom

Jetzt ist schon eher klar was das ganze für folgen haben kann, ich dachte schon das das ganze System könnte dadurch instabil werden, da es ja in der Install-Anleitung ziemlich dramatisch Beschrieben wird.   :Shocked: 

Aber erhöht das ganze nicht auch die Abhängigkeiten der einzelnen Programme die man installieren kann? Oder eher das Gegenteil.

----------

## franzf

 *schmidicom wrote:*   

> Aber erhöht das ganze nicht auch die Abhängigkeiten der einzelnen Programme die man installieren kann? Oder eher das Gegenteil.

 

Natürlich erhöht das (meist) die Abhängigkeiten die das Paket nach sich zieht. Nix ist umsonst, auch nicht das zusätzliche Feature durch ne USE-Variable  :Wink: 

Aber, wie hier schon gesagt wurde, geh mit den globalen USE-Flags sparsam um (also die in /etc/make.conf). Setz lieber mehr Paket-spezifische in /etc/portage/package.use.

Hier noch zwei Links (die du hoffentlich schon kennst  :Wink:  )

http://www.gentoo.de/doc/de/handbook/handbook-x86.xml?part=2 (->Portage ->USE-Flags)

http://www.gentoo.de/main/de/portage-2.1.xml (falls du schon Portage-2.1 verwendest  :Wink: )

Grüssle

Franz

----------

## michel7

@schmidicom

also was die USE-Flags betrifft kann ich dir nur empfehlen das Paket ufed zu installieren. Damit kannst du sehr bequem die USE flags setzen. Die Beschreibung dazu steht auch bei jedem einzelnen dabei. Ich habe beim Ersten mal knapp 2 Stunden gebraucht bis ich alle USE Flags durchgearbeitet habe. Irgendwann im Laufe der Zeit wirst du damit keine Probleme mehr haben und eine optimale USE Liste für dein System erarbeiten. Aber am Anfang wirst du des Öfteren manche USE flags deaktivieren, einige Neue dazu nehmen. Ich kann nur aus meiner persönlichen Erfahrung sagen - es hat mich am Anfang auch fast überfordert. Nach ein paar Monaten intersiver Einarbeitung ins Gentoo wirst du das Gefühl für die USE Flags bekommen. Du wirst sie auch gleichzeitig zu schätzen wissen ...

----------

## misterjack

mmh ich setze alle useflags bei mir global  :Smile:  das man unbedingt sparsam damit umgehen soll ist geschmackssache. ich war auch mal sparsamer, aber das ständige nachkompiliere, weil man wieder das und das braucht hat mich dann einfach genervt. gerade wenn man experimentierfreudig ist, hab ich lieber support für mehr als zu wenig. nur problemkandidaten oder dinge, die ich wirklich nur bei sehr wenigen paket brauche kommen in /etc/portage/package.use - das sind bei mir lediglich 3 pakete die qt zum funktionieren brauchen und eins was mono braucht  :Wink: 

jo ufed rockt, setze damit auch immer meine useflags

btw:

```

USE="-* 3dnow 3dnowext X a52 aac aalib acl acpi alsa ao apm artworkextra

     audiofile avi bash-completion beagle berkdb bidi binfilter bitmap-fonts

     branding bzip2 cairo cdda cddb cdinstall cdio cdparanoia cdr cli

     cpudetection crypt ctype cups curl dba dbus dio disablexmb dmx dri dts dv

     dvd dvdr dvdread emboss encode esd expat fastbuild faxonly fbcon ffmpeg

     firefox flac font-server foomaticdb force-cgi-redirect fortran ftp fuse

     gd gdbm gif gimp gimpprint glitz glut gnome gpm gstreamer gtk gtk2 hal

     hbci icq idn imagemagick imap imlib jack java jpeg lame lcms libg++

     libwww lirc lm_sensors lzo mad memlimit mikmod mmx mmxext mng motif mp3

     mpeg mplayer multiuser musepack mythtv nautilus ncurses network nls nocd

     nptl nptlonly nvidia offensive ogg openal opengl oscar oss pam pcre

     pdflib perl png portaudio posix ppds python quicktime readline real ruby

     samba scanner sdl sensord session simplexml skins soap sockets soundtouch

     spell spl sqlite sse ssl stream svg symlink tcltk tcpd theora threads

     tiff tokenizer transcode truetype truetype-fonts type1-fonts udev unicode

     usb userlocales v4l v4l2 vcd videos vlm vorbis win32codecs wma wxwindows

     xcomposite xine xinerama xml xml2 xosd xpm xprint xscreensaver xsl xv

     xvid zlib"
```

Bei den von mir administrierten Rootservern fahr ich natürlich die Sparsamvariante  :Wink: 

----------

## platinumviper

 *misterjack wrote:*   

> mmh ich setze alle useflags bei mir global

 

Die USE-Flags aus /usr/portage/profiles/use.local.desc können bei verschiedenen Paketen unterschiedliche Bedeutung haben, Extrembeispiel:

sys-boot/arcboot:cobalt - Disables support for Cobalt Microserver hardware (Qube2/RaQ2)

sys-kernel/mips-headers:cobalt - Enables support for Cobalt Microserver hardware (Qube2/RaQ2)

Ich seh' aber auch nicht immer nach, wohin ein Flag gehört  :Embarassed: 

platinumviper

----------

## musv

 *misterjack wrote:*   

> mmh ich setze alle useflags bei mir global  das man unbedingt sparsam damit umgehen soll ist geschmackssache. ich war auch mal sparsamer, aber das ständige nachkompiliere, weil man wieder das und das braucht hat mich dann einfach genervt. gerade wenn man experimentierfreudig ist, hab ich lieber support für mehr als zu wenig. nur problemkandidaten oder dinge, die ich wirklich nur bei sehr wenigen paket brauche kommen in /etc/portage/package.use - das sind bei mir lediglich 3 pakete die qt zum funktionieren brauchen und eins was mono braucht 
> 
> jo ufed rockt, setze damit auch immer meine useflags
> 
> 

 

Ha! Meiner ist länger-   :Cool: 

```

16bit 3dnow 3dnowext 3ds 7zip S3TC X509 Xaw3d a52 aac aalib \

     accessibility acpi afs amr audiofile bash-completion bcmath bidi \

     bindist bluetooth bonobo buttons bzip2 cairo calendar caps ccache cdda \

     cddb cdinstall cdparanoia cdr cdrom cgi css ctype curl curlwrappers dba \

     dbus dbx dga dillo dio directfb dmx doc dpms dv dvb dvd dvdr dvdread \

     embedded erandom escreen exif fam fame fastcgi fat fbcon fbsplash \

     ffmpeg firefox flac flash font-server fontconfig fpx ftp gcj gd \

     gecko-sdk ggi gimp gimpprint glut glx gmp gnome-print gnomedb gphoto2 \

     graphviz gs gtkhtml guile hash hddtemp hpn icq id3 idn ieee1394 \

     imagemagick imap inifile innodb jack java java-internal javascript jfs \

     jikes ladcca lame latex lcms libcaca lirc live lm_sensors log4j lua \

     md5sum mhash mime mimencode mjpeg mmap mmx mmxext mng modplug mozilla \

     moznocompose moznoirc moznomail mozsvg mp4live mpeg2 mplayer mudflap \

     musepack mysql mysqli nas nforce2 nfs no-old-linux nocardbus nptlonly \

     nsplugin ntfs ntlm nvidia odbc on-the-fly-crypt openal openssh oscar \

     overload parse-clocks pcntl pdf php physfs plotutils posix postgres \

     ppds qemu-fast quotas rar raw-mode real reiserfs rhino rtc ruby samba \

     sblive scanner scp sdk sendfile sensord serial sid simplexml skey slang \

     slp sndfile snmp soap sockets socks5 softmmu sox speex sql sqlite \

     sqlite3 sse sse-filters stencil-buffer stream streamzap subtitles svg \

     svga svgz sysfs szip tcltk tetex tga theora threads tidy tiff tokenizer \

     transcode type1 ucs2 unicode usb v4l v4l2 vcd vcdimager video_cards_nv \

     video_cards_nvidia video_cards_vesa videos vidix vim-pager vlm wddx \

     win32codecs winbind wma wma123 wmf wordexp wv wxgtk1 wxwindows x264 \

     xanim xchatdccserver xchattext xface xfs xine xinerama xmlrpc xmlwriter \

     xpm xrandr xsl xslt xvid xvmc yv12 zip zvbi -arts -ipv6 -kde

```

Also nicht daß ich alles davon brauchen würde, geschweige denn wissen, was jedes einzelne Flag bedeutet.... 

Wenn du ein emerge -p $paket machst, wird Dir eigentlich schon angezeigt, welche speziellen USE-Flags möglich / aktiviert / deaktiviert sind. Bei manchen Sachen mußte ich dann erstmal ganz schön lange googlen, da auch die Erklärungen bei ufed nicht immer aussagekräftig sind. 

Ganz gemein war meine erste Apache-/PHP-Installation. Per default war so ziemlich alles deaktiviert. Das hatte dann z.B. die Folge, daß im PHP die gebräuchlichsten Features erstmal nicht funktionierten. In meinem Fall waren das Sessions. Nach 2 Stunden Google & USE-Flags-Durchwühlen funktionierte dann fast alles. 

Tja, Gentoo hat da eben auch so seine Features (Macken).

Vorteil von vielen globalen USE-Flags: Du hast die Unterstützung für fast alle Sachen schon dabei. 

Nachteil: Sicherheit, aufgeblähtes Betriebssystem aufgrund der vielen (unnötigen) Abhängigkeiten, eher mal 'n Compilierfehler

Verglichen mit anderen Distris ist Gentoo bei etwas Einarbeitung wesentlich benutzerfreundlicher. So finde ich es unter Ubuntu z.B. grauenvoll, wenn man versucht ein Kernelmodul zu basteln, wenn der Kernel als fertiggebackenes Paket bereits aus dem Netz geladen wurde. Oder auch der "sudo Rootbefehl"-Müll ging mir da ziemlich auf die Ketten.

----------

## Anarcho

Also tut mir leid wenn das ein wenig hart klingt, aber wer keine USE-Flags setzt/den Sinn von USE-Flags nicht verstanden hat der kann auch gleich apt-get bei Debian nehmen

und ist bei Gentoo schlicht falsch.

Ich bin der Meinung das USE-Flags _DER_ Vorteil bei portage ist (und nicht die 0,2% performance gewinn durch CFLAGS).

Warum sollte alle möglichen Programme mysql support bei mir haben wenn ich überhaupt keine mysql datenbank habe, dagegen aber ne postgresql Datenbank?

----------

## Fauli

 *Anarcho wrote:*   

> Also tut mir leid wenn das ein wenig hart klingt, aber wer keine USE-Flags setzt/den Sinn von USE-Flags nicht verstanden hat der kann auch gleich apt-get bei Debian nehmen und ist bei Gentoo schlicht falsch.

 

Umgekehrt erschließt sich einem der Sinn von Useflags erst, wenn man sich einige Zeit mit Gentoo beschäftigt hat.

----------

## schmidicom

Ich habe inzwischen das prog ufed mal ausprobiert und es vereinfacht das ganze ungemein. Guter Tipp!

Das könnte ja man auch zur Install Anleitung hinzufügen.

Eine frage bezüglich USE habe ich aber noch:

Verändert USE nun die Abhängigkeit der Pakete und/oder das Kompilieren der selbigen?

----------

## Anarcho

Selbstverständlich, sowohl als auch. 

Beim kompilieren, besser beim konfigurieren, kann man festlegen welche Funktionen einkompiliert werden sollen. Die USE-Flags steuern z.b. genau diese Anweisungen.

Und falls ein Programm z.b. LDAP Unterstützung bietet aber dafür auch die entsprechende Bibliothek benötigt dann wird z.b. openldap als Abhängigkeit fällig falls das ldap USE-Flag gesetzt ist weil die Anwendung sonst möglicherweise garnicht starten würde (Linker-Error) und die einkompilierte LDAP-Funktion überhaupt keinen Sinn machen würde.

Andere USE-Flags haben gänzlich anderen Einfluss wie etwa das USE-Flag customcflags. Das sorgt dafür das bei manchen Paketen die normalerweise die CFLAGS filter würden weil einige CFLAGS mit dem Programm nicht harmonisieren würden eben diese Filterung ausgeschaltet wird.

Das doc USE-Flag sorgt z.b. Beispiel dafür das umfangreichere Dokumentation mitinstalliert wird.

Wie du siehst gibt es völlig unterschiedliche Funktionen von USE-Flags. Im Prinzip ist alles möglich. Du könntest auch ein ebuild schreiben mit nem USE-Flag "deleteroot" welches beim setzen desselbigen ein "rm -rf /*" ausführt.

----------

## schmidicom

Ich habe inzwischen gemerkt das die Beiden USE Flags nls und unicode zwei der wichtigsten sind da sonst zimlich fette fehler in der Console auftauchen. Aber auch andere dinge sind recht nützlich wie merkte.

Hier mal meine USE einstellungen:

USE="gif jpeg mng png tiff mp3 vorbis arts gtk sdl truetype alsa cups spell acpi apm bluetooth usb ieee1394 fbcon scanner doc cups dvb dvd dvdr mime opengl ftp hal win32codecs nls unicode kde wxwindows zeroconf X"

Danke für die vielen Posts und die erleuchtung.   :Laughing: 

Zum schluss kann ich nur noch eines sagen:

Jeder der vor hat mit Gentoo anzufangen sollte sich unbedingt auch gründlich über die USE Flags informieren da sie mehr als wichtig sind.

----------

