Linux/Tipps/Gentoo

Aus VivaLV
Zur Navigation springen Zur Suche springen

Installation

Von CD

LiveCD booten und alles installieren außer OpenOffice und Gnome.

Hostname setzen

Wenn der Hostname nicht stimmt, dann /etc/conf.d/hostname ändern:

HOSTNAME="<Name>"

Dann:

hostname <Name>

Netzwerk

Falls der Installer das Gateway nicht eingetragen hat, ist /etc/conf.d/net zu ändern:

routes_eth0=( "default via 192.168.0.1" )
iface_eth0="192.168.0.6 broadcast 192.168.0.255 netmask 255.255.255.0"

Dann:

/etc/init.d/net.eth0

Gewünschte USE-Flags setzen

Siehe USE-Flags.

Compiler-Flags setzen

etc/make.conf:

CFLAGS="-march=i686 -Os -pipe -fomit-frame-pointer -fno-ident"
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
LDFLAGS="-Wl,-O1"

Bei -march sollte man bei Pentium-M i386 oder besser pentium-m setzen.

Regionale Einstellungen

Quelle: http://www.gentoo.org/doc/en/guide-localization.xml

Deutsche UTF-8 Locale setzen

/etc/env.d/02locale:

LANG="de_DE.UTF-8"

Dann:

env-update
source /etc/profile

Kontrolle:

locale

Dann X-Server neu starten.

Verfügbare Sprachen definieren

/etc/make.conf:

LINGUAS="de en"

Zeitzone setzen

/etc/conf.d/clock:

TIMEZONE="Europe/Berlin"

Dann:

emerge --config timezone-data

Hardwareclock

Wenn beim Shutdown die Hardwareclock neu gesetzt werden soll, dann muss in /etc/conf.d/clock gesetzt werden:.

CLOCK_SYSTOHC="yes"

Console Keymap

/etc/conf.d/keymaps:

KEYMAP="de-latin1-nodeadkeys"

X Keymap

/etc/X11/xorg.conf:

Section "InputDevice"
    Identifier  "Keyboard1"
    ...
    Option "XkbLayout"    "de"

Compile-Cache aktivieren

Quelle: http://de.gentoo-wiki.com/Emerge_beschleunigen#Ccache

emerge -av ccache

etc/make.conf:

FEATURES="ccache"
CCACHE_SIZE="2G"

Dann:

cd /var/tmp
mkdir ccache
chown portage:portage ccache
chmod 775 ccache
echo "CCACHE_DIR=\"/var/tmp/ccache\"" >> /etc/env.d/99local
env-update
source /etc/profile

C-Compiler mit Optimierung neu installieren

emerge glibc binutils gcc
emerge glibc binutils gcc

System aktualisieren

Repository

emerge --sync

Kernel

Siehe Kernel updaten.

gentoolkit installieren

emerge gentoolkit

Alter C++ Compiler für bestimmte Pakete

emerge -1 libstdc++-v3

Rest

emerge --update --newuse --deep world
etc-update
revdep-rebuild

xdm installieren

emerge xdm

OpenOffice installieren

OpenOffice benötigt zum Compilieren sehr lange und sehr viel Platz. Also besser das Binärpaket installieren:

emerge openoffice-bin

Runlevels ähnlich Fedora/Suse

Standardrunlevel auf 5 ändern

/etc/inittab:

id:3:initdefault:

ändern nach

id:5:initdefault:

Runlevel von X auf 5 ändern

  • Neuen Runlevel "console" (3) anlegen in /etc/inittab:
l3:3:wait:/sbin/rc default

ändern nach

l3:3:wait:/sbin/rc console

Runlevel "default" kopieren nach "console" und xdm darin entfernen

cp -a /etc/runlevels/default /etc/runlevels/console
rc-update -d xdm console

Ab sofort muss man Services immer in "default" und "console" aktivieren!

KDE installieren

KED kann mit den (bei KDE üblichen) monolithischen Paketen (kdebase, kdemultimedia, ...) oder mit einzelnen Programmen installiert werden, die man allerdings auch wieder mit Meta-Paketen in Gruppen installieren kann. Letzteres wird bevorzugt. Man muss dann aber bei Gruppen auch später immer wieder die Meta-Pakete und nicht die monolithischen Paketen installieren.

Basisinstallation:

emerge kdebase-meta kde-i18n kdemultimedia-meta

Alles installieren:

emerge kde-meta

Dann Sprache "Deutsch" im KDE Control Center hinzufügen.

Wenn man weitere Meta-Pakete (z.B. kdeaddons) installieren will, dann muss "-meta" angehängt werden, z.B.:

emerge kdeaddons-meta

Displaymanager ändern nach kdm

Der Displaymanager wird in /etc/conf.d/xdm und/oder /etc/rc.conf festgelegt:

DISPLAYMANAGER="kdm"

NFS

emerge nfs-utils
/etc/init.d/nfs start
rc-update add nfs default

Falls Runlevel console angelegt:

rc-update add nfs console

D-Bus

emerge dbus
revdep-rebuild
rc-update add dbus default

HAL

rc-update add hald default

NTP

emerge ntp

Optional /etc/conf.d/ntp-client und /etc/ntp.conf anpassen (Server ändern).

rc-update add ntp-client default
rc-update add ntpd default
/etc/init.d/ntp-client start
/etc/init.d/ntpd start

Prüfen:

ntpq -c peers

VNC

/etc/portage/package.use:

net-misc/vnc server

Dann:

emerge vnc

Firefox/Thunderbird

Damit nur englische Sprache installiert wird, in /etc/portage/package.use:

www-client/mozilla-firefox -linguas_de
mail-client/mozilla-thunderbird -linguas_de

Dann:

emerge mozilla-firefox
emerge mozilla-thunderbird

ivtv

http://ivtvdriver.org/index.php/Howto:Gentoo

mysql

Bei Verwendung von MythTV, in /etc/portage/package.use:

dev-db/mysql latin1

Dann:

emerge mysql
emerge --config mysql
/etc/init.d/mysql start
rc-update add mysql default

Falls Runlevel console angelegt:

rc-update add mysql console

mythtv

emerge mythtv
passwd mythtv

Google Desktop

ebuild verfügbar hier.

Mondorescue

mindi-busybox ebuild hier. mindi ebuild von der Mondo web site. mondo ebuild von der Mondo web site (umbenennen nach mondo-rescue und darin Abhängigkeit auf cdrtools ändern nach cdrkit).

Notebook mit Centrino-Chipsatz

WLAN 2200bg

SSID

Der Router muss die SSID senden!

ipw2200 im Kernel aktivieren

genkernel --gensplash --no-clean --menuconfig all

ipw2200 im Kernel als Modul (<M>) konfigurieren.

module-rebuild rebuild
update-modules force

Pakete installieren

emerge ipw2200-firmware wireless-tools wpa_supplicant

ipw2200 laden

modprobe ipw2200

Device festlegen

Mit iwconfig das Device nachschauen und gegebenenfalls in /etc/udev/rules.d/70-persistent-net.rules ändern und neu booten.

wpa_supplicant

<SSID>, <PASSWORT> und <DEVICE> entsprechend ersetzen.

/etc/wpa_supplicant/wpa_supplicant.conf:

#WPA
network={
        ssid="<SSID>"
        scan_ssid=1
        psk="<PASSWORT>"
        priority=8
}

/etc/conf.d/net:

routes_<DEVICE>=( "default via 192.168.0.1" )
iface_<DEVICE>="192.168.0.6 broadcast 192.168.0.255 netmask 255.255.255.0"

modules=( "wpa_supplicant" )
wpa_supplicant_<DEVICE>="-D wext -c /etc/wpa_supplicant/wpa_supplicant.conf"
wpa_timeout_eth1=60

Dann:

ln -s /etc/init.d/net.lo /etc/init.d/net.<DEVICE>
rc-update add net.<DEVICE> default
/etc/init.d/net.<DEVICE> start

Debugging

wpa_supplicant -Dwext -i<DEVICE> -c /etc/wpa_supplicant/wpa_supplicant.conf -w -dd

LAN deaktivieren

/etc/conf.d/rc:

RC_PLUG_SERVICES="!net.eth0"

CPU-Stepping

genkernel --gensplash --no-clean --menuconfig all

Kernel-Optionen ändern:

  • Power Management Options:
  • [*] Power Management Support
    • ACPI( Advanced Configuration and Power Interface ) Support:
    • [*] ACPI Support
      • [*] AC Adapter
      • [*] Battery
      • <*> Processor
    • CPU Frequency Scaling:
      • [*] CPU Frequency scaling
      • <*> 'performance' governor
      • <*> 'powersave' governor
      • <*> 'ondemand' cpufreq policy governor
      • <*> 'conservative' cpufreq governor
      • <*> CPU frequency table helpers
      • <*> ACPI Processor P-States driver
      • <*> Intel Enhanced SpeedStep
module-rebuild rebuild
update-modules force

Reboot.

emerge cpufrequtils acpid
rc-update add acpid default

/etc/conf.d/local.start:

cpufreq-set -d 600MHz -u 1.50GHz -g ondemand

Audio-Support für ASUS M6Ne

/etc/make.conf:

ALSA_CARDS="intel8x0"

Dann:

emerge alsa-lib alsa-utils
rc-update add alsasound boot

/etc/modules.d/alsa:

alias snd-card-0 snd-intel8x0

Dann:

modules-update
/etc/init.d/alsasound start
amixer set Master    60% unmute
amixer set PCM       60% unmute
amixer set Headphone 60% unmute

Test:

aplay /usr/share/sounds/alsa/Noise.wav

Da -arts in den USE-Flag steht, funktioniert der KDE Sounddaemon arts nicht. Das KDE Sound-System muss also im KDE Kontrollzentrum abgeschaltet werden. Dafür dort bei "Systemnachrichten/Wiedergabe-Einstellungen" einen externen Abspieler einstellen, z.B. /usr/bin/mplayer (falls installiert).

KDE Laptop-Tools

emerge klaptopdaemon

Programme installieren

USE-Flags

Dateien

  • vom Profile vorgegebene globale USE-Flags: /etc/make.profile/make.defaults
  • eigene USE-Flags: /etc/make.conf
  • Paket-spezifische USE-Flags: /etc/portage/package.use

USE-Flag setzen:

<Flag>

USE-Flag löschen:

-<Flag>

LINGUAS-Flag löschen (Beispiel: de):

-linguas_de

Abfragen

Die effektiv aktiven USE-Flags anzeigen:

emerge --info

Welche Pakete verwenden ein bestimmtes USE-Flag?

equery hasuse <Flag>

Welche USE-Flags verwendet ein bestimmtes Paket?

equery uses mysql

Sonstiges

Nach Änderung der USE-Flags die betroffenen Pakete neu compilieren und zusätzlich benötigte Pakete installeren:

emerge --update --newuse --deep world

Editor für USE-Flags:

emerge ufed

Meine derzeitigen USE-Flags

USE="-arts libc-omitfp -gnome dvb lirc dts joystick lcd mmx asf ivtv apache2 mysql mysqli lm_sensors openssh usb v4l v4l2 nvidia mplayer a52 imagemagick lzo mjpeg jpeg2k lcms fame theora aac ups glitz transcode vcd java nsplugin x264 divx xvid"

Repository aktualisieren

emerge --sync

Suchen

emerge --search <String>
emerge --searchdesc <String>

Installieren

emerge <Paket>

Updaten

emerge --update <Paket>

Vorcompilierte Pakete bevorzugen

Quelle und Liste der BINHOSTs: http://gentoo-wiki.com/TIP_Using_PORTAGE_BINHOST

Vorbereitung in /etc/make.conf (Beispiel):

PORTAGE_BINHOST="https://e.ututo.org.ar/i686/"

Dann immer beim Installieren -kg angeben:

emerge -kg <Paket>

Bei vom Hersteller vorcompilierten Versionen:

emerge <Paket>-bin

Bestimmte Version installieren

emerge =<Paket>-<Version>

Maskierte Pakete freigeben

/etc/portage/package.keywords:

<Bereich>/<Paket>

bzw.

<Bereich>/<Paket> ~x86

Oder /etc/portage/package.unmasked:

<Bereich>/<Paket>

Kernel updaten

Einmalig:

emerge genkernel
emerge module-rebuild

Dann:

emerge gentoo-sources

Evtl. /usr/src/linux symlink auf die neue Sourcen setzen.

genkernel all

Falls die .config selbst modifiziert wurde, muss genkernel mit --no-clean aufgerufen werden.

module-rebuild rebuild
update-modules force

Dann /boot/grub/menu.lst erweitern und neu booten.

Alles updaten

emerge --update --deep world

Mit Rückfrage:

emerge --update --ask --deep world

Nach Änderung der USE-Flags

emerge --update --ask --deep --newuse world

Config-Files nach Updates mergen

etc-update

Reste von Abbrüchen löschen

rm -rf /var/tmp/portage/<Bereich>/<Paket>

Security-Fixes

Quelle: http://www.gentoo.org/doc/en/security/security-handbook.xml?part=1&chap=14

Prüfen, ob es nicht installierte Security-Fixes gibt:

glsa-check -d affected

oder

glsa-check -t all

Einspielen eines bestimmten Fixes simulieren:

glsa-check -p <Fix>

Einen bestimmten Fix installieren:

glsa-check -f <Fix>

Abfragen

Welche Dateien enthält ein Paket?

equery files <Paket>

Welche Pakete hängen von einem Paket ab?

equery depends <Paket>

Welche Pakete sind installiert?

equery list <String>

Zu welchem Paket gehört eine Datei?

equery belongs <Datei>

Wenn dabei der Fehler "Unrecognized CONTENTS entry on line 1" auftritt, dann stimmt mit einem Paket etwas nicht. Dies kann man herausfinden mit:

strace emerge belongs <Datei> >log.txt 2>&1

Und dann nach dem Fehler in log.txt suchen. Der Fehler liegt in der Datei /var/db/pkg/<Bereich>/<Paket>/CONTENTS. Um den Fehler zu beheben das betroffene Paket deinstallieren bzw. neu installieren.

Wieviel Compilierzeit benötigte ein Paket?

qlop -tH <Paket>

Deinstallieren

emerge --unmerge <Paket>

Dabei werden Abhängigkeiten nicht berücksichtigt! Deswegen vorher mit equery depends <Paket> prüfen!

Unnötige Pakete löschen

Nach Deinstallation von Paketen gibt es meistens damals mitinstallierte Pakete, die nicht mehr benötigt werden. Diese kann man löschen mit:

emerge --depclean
revdep-rebuild -i

Abhängigkeiten prüfen und reparieren

revdep-rebuild -i

Tarballs löschen

rm /usr/portage/distfiles/<Name>

oder http://elusseau.free.fr/index.php/en/page/2

Zusätzliche Repositories einbinden

Vorbereitung

emerge eix
emerge layman

/etc/make.conf:

source /usr/portage/local/layman/make.conf

Externe Programmliste updaten

update-eix-remote update

Standard-Programmliste für eix aktualisieren

update-eix

Suchen

eix <Paket>

Einbinden

layman -a <Repository>

Externe Programme in lokales Repository legen

Quelle: http://gentoo-wiki.com/HOWTO_Installing_3rd_Party_Ebuilds

Vorbereitung

/etc/make.conf:

PORTDIR_OVERLAY="/usr/local/portage"

Durchführung

mkdir -p /usr/local/portage/<Bereich>/<Paket>
cd /usr/local/portage/<Bereich>/<Paket>
wget <ebuild>

/etc/portage/package.keywords:

<Bereich>/<Paket>

Dann:

ebuild <Paket>-<Version>.ebuild digest

Programmverfügbarkeit

Standardrepository

  • mozilla-firefox
  • mozilla-thunderbird
  • ktimemon (kicker-applets)
  • equery (gentoolkit)
  • kdebase-meta
  • win32codecs
  • grip
  • jdk
  • quadkonsole (masked)
  • gaim
  • mplayer
  • kaffeine
  • wine
  • ntp
  • jpilot
  • procmail
  • spamassassin
  • uw-imap
  • ksensors
  • mythtv
  • avidemux
  • amule
  • nxserver-freeedition
  • xdm
  • htop
  • vnc ("net-misc/vnc server" -> /etc/portage/package.use)
  • kuroo
  • slocate
  • mythtv
  • hplip
  • mysqlnavigator

Zusätzliche Repositories

  • kmediafactory

Möglicherweise interessante Programme

  • kentoo

Kernel modifizieren

Die .config in /usr/src/linux mit eine der folgenden Möglichkeiten modifizieren:

  • per Hand/Editor
  • make menuconfig

Dann:

genkernel --no-clean all

Links