Wie viele Pakete sind denn gerade in Portage vorhanden,Update
Transcription
Wie viele Pakete sind denn gerade in Portage vorhanden,Update
Wie viele Pakete sind denn gerade in Portage vorhanden Wie viele Pakete sind denn gerade in Portage vorhanden? Verfasst von Old Man am 29. März 2010 – 15:51 Vorwort Wie viele Pakete sind denn gerade in Portage vorhanden? Lösung find /usr/portage/ -mindepth 3 -maxdepth 3 -type f name Manifest | wc -l Update Script Update Script Verfasst von FelixPetzold am 20. April 2010 – 21:53 Das Script liegt jetzt in Version 2.1 vor, und wird als Ebuild ausgeliefert. Version 2.1 bringt einen eigenen Installer mit, der online nach der neuesten Version sucht. Das Script benutzt >=portage-2.2_rc67 und verlangt dies auch zum Installieren. Das wird allerdings von autounmask für euch erledigt. Originalbeschreibung auf englisch unter http://www.felixpetzold.de/Gentoo/update/GentooLinuxUpdateScript.html Was hat sich verändert? Ein Durchlauf dauert jetzt nicht mehr 40 Minuten (bei mir auf einem Acer Aspire 7738G), sondern nur noch 8. Und das, obwohl Funktionen dazugekommen sind. Aber wie kommt es dazu? Ganz einfach. Die Checks, die bei jedem Update sein müssen, werden auch jedes Mal ausgeführt. Der „gentoo_ebuild_update_check_by_maggu2810“ wird jetzt nur noch 1x in der Woche ausgeführt und das neue „gentoo-decruft“ von bell wird 1x im Monat ausgeführt. Neu ist auch, dass das Script reagiert, wenn Firefox, Thunderbird oder xorg-server upgedated werden. Wurde Firefox (oder Firefox-bin) upgedated, werden anschließend adobe-flash, swfdec und swfdec-mozilla neu installiert. Wurde Thunderbird (oder Thunderbird-bin) upgedated, wird noch ein „emerge -1 enigmail“ ausgeführt. Und wenn der xorgserver upgedated wird, wird ein „emerge -1 $(qlist -I -C x11drivers/)“ ausgeführt. Solltet ihr eins der überwachten Pakete nicht installiert haben, wird das erkannt und die Überwachung findet für dieses Programm nicht statt. Hier mal ein Listing eines Programmdurchlaufes: update_sources – Diese Funktion updated layman, portage und eix get_old_versions – Diese Funktion speichert die Versionsnummern der überwachten Programme update_system – Hier wird das System upgedated. Sollte ein Fehler auftauchen, geht es mit „emerge –resume –skipfirst“ weiter, bis es nix mehr zum updaten gibt get_new_versions – Diese Funktion speichert wieder die Versionsnummern der überwachten Programme react_on_version_differences – Diese Funktion reagiert, falls es bei den überwachten Programmen Updates gab emerge_depclean – Hier wird „emerge –depclean“ ausgeführt lafilefixer_fixit – Hier wird lafilefixer ausgeführt preserved_rebuild – Hier wird „emerge @preserved-rebuild“ ausgeführt pearl_cleaner – Hier wird der pearl cleaner ausgeführt check_broken_librarys – Als letztes noch ein „revdep-rebuild“ cfg_update – Ein „cfg-update -ua“ spielt schon mal die Configs ins System ein, die als automatisch (-a) markiert sind, und die etc-update auch erledigen würde, bever es zu den Updates kommt, wo es euch fragt, ob ihr diese Configs überschreiben wollt. clean_system – Hier werden „eclean packages“ und „eclean distfiles“ ausgeführt exit_update – Hier wird dafür gesort dass der User erfährt, wenn es Fehler gab Zusätzlich wird noch mitinstalliert: gentoo-decruft von bell (link suchen) gentoo_ebuild_update_check_by_maggu2810 http://github.com/maggu2810/gentoo-ebuild-uptate-check updateScriptVersionChecker gentoo-decruft von bell kann nach der Installation von der Konsole aus aufgerufen werden und wird 1x im Monat von einem Cronjob ausgeführt. Dauer bei mir ca 1 Std. Der ebuild check von maggu2810 wird 1x in der Woche von einem Cronjob ausgeführt und kann nach der Installation auch von der Konsole aus aufgerufen werden. updateScriptVersionChecker is ein Installer/Updater für dieses Script und wird 1x in der Woche von einem Cronjob ausgeführt Installation: Schritte, die ihr schon erledigt habt, könnt ihr überspringen. lokales Overlay Ein lokales Overlay nutzt man, um Software, die man selber geschrieben hat, oder bei der man an den ebuilds rumgespielt hat, in den portage tree aufzunehmen. mkdir -p /usr/local/portage/overlay # Den Pfad zum lokalen Overlay erstellen mkdir -p /usr/local/portage/overlay/profiles/ # profiles Ordner im Overlay erstellen echo "local overlay" >> /usr/local/portage/overlay/profiles/repo_name # Dem Overlay einen Namen geben chown -R portage:portage /usr/local/portage/overlay # So soll das sein Jetzt habt ihr ein lokales Overlay mit dem Namen „local overlay“. Damit portage davon weiß, müsst ihr das jetzt in die /etc/make.conf eintragen echo "PORTDIR_OVERLAY=\"/usr/local/portage/overlay\"" >> /etc/make.conf Jetzt habt ihr ein lokales Overlay, dass zwar leer ist, aber immerhin von Portage und meinem Installer erkannt wird. In diesem Ordner liegt dann hinterher unter app-admin/update/ der ganze Quellcode, falls ihr das Script später an eure Bedürfnisse anpassen wollt. Elogv elogv ist ein Betrachter für elog messages, die von portage gespeichert werden können, wenn man das einstellt. Dies werden wir hier tun. Die elog messages sind der Text, der beim kompilieren so durchläuft. Da dort aber viel durchläuft, brauchen wir einen Filter. Wir stellen portage so ein, dass nur messages mit dem Status „warn“ und „error“ gespeichert werden. Status „error“ bedeutet dass ein Paket nicht gebaut werden konnte (warum auch immer, das steht dann da) und „warn“ bedeutet, dass es eine Meldung gibt, dass die Software von euch möchte, dass ihr etwas tut. Eine typische Warnmeldung wäre diese hier: Zitat: * You must rebuild all drivers if upgrading from xorg-server 1.X * or earlier, because the ABI changed. If you cannot start X because * of module version mismatch errors, this is your problem. * You can generate a list of all installed packages in the x11-drivers * category using this command: * emerge portage-utils; qlist -I -C x11-drivers/ Führt man das nicht aus, wacht man nach dem Neustart ohne Maus und Tastatur auf. Daher war es gut, dass portage uns diese Nachricht gespeichert hat. OK, in dem Fall egal, weil mein Script den xorgserver überwacht unnd das automatisch macht, aber solche Meldungen gibt es von einer ganzen Reihe von Programmen. OK, richten wir es ein: emerge -av elogv # elogv installieren echo "PORTAGE_ELOG_CLASSES=\"log warn error info qa\" PORTAGE_ELOG_SYSTEM=\"echo:log,info,warn,error save:warn,error\"" >> /etc/make.conf # Portage sagen, wie es mit elog messages in Zukunft verfahren soll Zitat: Beispiel 1 (nur warn und error wird gespeichert, das reicht): PORTAGE_ELOG_CLASSES=“log warn error info qa“ PORTAGE_ELOG_SYSTEM=“echo:log,info,warn,error save:warn,error“ Beispiel 2 (+info messages) PORTAGE_ELOG_CLASSES=“log warn error info qa“ PORTAGE_ELOG_SYSTEM=“echo:log,info,warn,error save:info,warn,error“ Beispiel 3 (Beispiel von elogv selbst) PORTAGE_ELOG_SYSTEM=“save“ and at least one out of PORTAGE_ELOG_CLASSES=“warn error info log qa“ Jetzt müsst ihr nach einem Update nur noch „elogv“ als root aufrufen und bekommt alle wichtigen Nachrichten. Sollten keine da sein, gibt es nix zu tun. Um elogv als User zu starten, müsst ihr in der Gruppe portage sein. Findet ihr Nachrichten, geht ihr wie folgt vor: Mit den Pfeiltasten hoch und runter könnt ihr zwischen den Nachrichten hin und her springen. Mit der Leertaste könnt ihr in den Nachrichten scrollen. Und mit „dd“ löscht ihr eine Nachricht. Mit „q“ beendet ihr das Programm, es schließt sich aber auch, wenn ihr alles gelöscht habt layman layman ist ein Tool um auf verschiedenste Overlays zuzugreifen und sie in den eigenen portage tree mit aufzunehmen. Hier (http://gpo.zugaina.org/) findet ihr mehr dazu, wass ihr in layman alles einfügen könnt. echo "app-portage/layman git subversion dev-util/subversion -dso" >> /etc/portage/package.use emerge -av layman Dann geht ihr in die layman.cfg und stellt sicher, dass dort „storage : /var/lib/layman“ und nicht der alte Pfad drin steht !!! nano -w /etc/layman/layman.cfg Jetzt muss layman gesynct werden. Damit layman eine make.conf in seinem Verzeichnis erstellt, muss 1x ein Overlay eingefügt werden, dass danach sofort wieder gelöscht werden kann. Diese make.conf von layman machen wir dann Portage in der /etc/make.conf durch einen source Eintrag bekannt. layman -S layman -a maggu2810-overlay layman -d maggu2810-overlay echo "source /var/lib/layman/make.conf" >> /etc/make.conf Mit layman -S könnt ihr alles syncen, mit layman -L seht ihr, was alles verfügbar ist, und mit layman -a foo richtet ihr foo bei euch ein. Mit layman –help erfahrt ihr den Rest. cfg-update cfg-update ist das Tool, mit dem ich bei euch die Config files, die als „automatisch“ von Portage markiert sind, in euer System einspiele. Dann habt ihr, wenn ihr später „etc-update“ oder „dispatch-conf“ oder „cfg-update -u“ ausführt nur noch die Configs zu behandeln, um die sich ein Mensch kümmern muss. cfg-update braucht ein diff-Tool, um zu funktionieren. Gnome User haben es hier einfach, durch das USE-Flag „gnome“ wird hier dev-util/meld als Abhängigkeit installiert. emerge -av cfg-update nano -w /etc/cfg-update.conf Ich habe wie gesagt meld als MERGE_TOOL in der cfg-update.conf. Ihr seht ja, welche Möglichkeiten ihr habt, aber eins der Tools müsst ihr eintragen. Zitat: # +———-+ # | MERGETOOL \ # +————+————————————————————-+ # | The recommended tool for merging is xxdiff but you can also use other | # | tools if you don’t like xxdiff. The Supported tools are listed below: | # +———-+—–+————————–+——————————+ # | xxdiff | GUI | KDE (or Gnome with QT) | | # | kdiff3 | GUI | KDE (or Gnome with QT) | | # | meld | GUI | Gnome (or KDE with GTK) | | # | gtkdiff | GUI | Gnome (or KDE with GTK) | STAGE 3 not supported! | # | gvimdiff | GUI | Gnome (or KDE with GTK) | STAGE 3 not supported! | # | tkdiff | GUI | Gnome (or KDE with TK) | | # | vimdiff | CLI | Systems without X | STAGE 3 not supported! | # | sdiff | CLI | Systems without X | STAGE 3 not supported! | # | imediff2 | CLI | Systems without X | STAGE 3 not supported! | # +———-+—–+————————–+——————————+ MERGE_TOOL = /usr/bin/meld Startet ihr cfg-update ohne Parameter mit „cfg-update“ bekommt ihr die Hilfe angezeigt. OK, jetzt ist alles eingerichtet und funktioniert. Wie ihr mit den Tools täglich umgehen müsst, erkläre ich euch später. BitKiller ~ # emerge -pv update These are the packages that would be merged, in order: Calculating dependencies… done! [ebuild R ] app-admin/update-2.1_rc3 USE=“X daily -weekly“ 0 kB [1] Total: 1 package (1 reinstall), Size of downloads: 0 kB Portage tree and overlays: [0] /usr/portage [1] /overlay BitKiller ~ # Wie ihr seht, gibt es 3 Use-Flags bei dem Script. Das USE-Flag X wird von eurem Profiel bestimmt und ist schon gesetzt oder nicht. Bei diesem USE-Flag geht es eher darum, dass auf Servern keine Abhängigkeiten mit xorg-x11 entstehen. Ohne USE=“X“ wird x11misc/xdialog nicht mit installiert und am Ende des Updates der Xdialog nicht aufgerufen. Für euch sind die USE-Flags „daily“ und „weekly“ interessant. Ich nutze und empfehle „daily“ !!! OK, was passiert, wenn ihr was auswähl: daily: Das Update Script wird täglich ausgeführt Der ebuild_check wird wöchentlich ausgeführt Der cruft_check wird monatlich ausgeführt Der update_check nach einer Neueren Version des Scriptes wird wöchentlich ausgeführt. weekly: Der cruft_check wird monatlich ausgeführt # wie bei daily Der update_check nach einer Neueren Version des Scriptes wird wöchentlich ausgeführt. # wie bei daily Das Update Script wird wöchentlich ausgeführt Der ebuild_check wird monatlich ausgeführt Ich empfehle: echo "app-admin/update daily" >> /etc/portage/package.use Mein Script erkennt euren lokalen Overlay Ordner alleine. Es sieht in der make.conf nach, um rechtschreibfehlern vorzubeugen. Es ist egal, aus welchem Ordner heraus ihr es startet. Es erstellt in eurem lokalen Overlay den Order app-admin und da drin den Ordner update, geht dort rein, läd die latest-version.txt von mir runter, läd dann die neueste Version runter, entpackt sie, erstellt für euch das Manifest, installiert autounmask, stellt mit autounmask alle Abhämgigkeiten her und installiert das Script. wget http://www.felixpetzold.de/Gentoo/update/InstallUpdat eScript chmod +x InstallUpdateScript ./InstallUpdateScript rm InstallUpdateScript Jetzt müsst ihr nur noch in der /etc/conf.d/update euren Usernamen einstellen. nano -w /etc/conf.d/update Zitat: USER_NAME=“felix # Bei mir Das ist der User, der eine Datei auf den Desktop bekommt, wenn bei dem Updaten Pakete bei waren, die sich nicht bauen lassen. Da elogv das Gleiche liefert, wird diese Option bald optional. Jetzt ist alles installiert und konfiguriert. Ihr könnt jetzt als root folgende Befehle ausführen: update – Das Script, was 1x am Tag von Cron gestartet wird. updateScriptVersionChecker – Das Script, was 1x wöchentlich nach Updates sucht gentoo_ebuild_update_check_by_maggu2810 – Der ebuild check von maggu2810, der von Cron 1x die Woche gestartet wird gentoo-decruft – Das Script von bell, das von Cron 1x im Monat gestartet wird Die Befehle 2-4 würde ich eher Cron überlassen. Klar, gucken muss sein. Wie läuft das jetzt mit Cron und automatisch und so? Muss ich nix mehr machen? Also, wenn ihr (oder cron) das Script habt laufen lassen, ist es ja irgendwann fertig. Schön, jetzt ist alles upgedatet. Aber eine Programme brauchen manchmal Nachbehandlung und schreiben das dann in die elog messages. Alles was dort auftaucht (wenn ihr die empfohlenen Einstellungen übernommen habt) müsst ihr lesen und verstehen und nach gesundem Menschenverstand befolgen. Also führt ihr nach Ende des Scripts (oder wenn ihr wisst, dass Cron es hat laufen lassen) „elogv“ aus. Ihr habt nix falsch gemacht, wenn dort steht, dass es keine messages gibt und elogv wieder aus ist. Das kommt öfter vor. Aber wenn dort was steht, dann befolgt es auch. Nachdem ihr in elogv alles durch habt, müsst ihr nur noch die Config Dateien updaten. Das geht mit „cfg-update -u“, „etc-update“ und „dispatch-conf“. Sucht euch eins aus, die Reihenfolge ist meine Bewertung. Und das wars. Ihr müsst nach dem Script wirklich nur 2 Befehle (elogv + cfg-update -u) ausführen. Und so sieht dann nen Durchlauf aus: Update-Script v2.1 for Gentoo Linux by Felix Petzold ---------------------------------------------------Syncing Portage, Eix & Layman. Finished Saving installed version-nr of firefox, thunderbird and xorg-server Found www-client/firefox-3.6.8-r1 Found x11-base/xorg-server-1.8.2 Finished Updating System. Finished Getting new version-nr of firefox, thunderbird and xorg-server Found www-client/firefox-3.6.8-r1 Found x11-base/xorg-server-1.8.2 Finished Checking version differences to react on updates Finished Running emerge –depclean. Finished Running lafilefixer –justfixit Finished. Running emerge @preserved-rebuild. Finished Running perl-cleaner –all Finished. Running revdep-rebuild. Finished Running cfg-update -ua Finished Running eclean packages. Finished Running eclean distfiles. Finished Exiting update script Portagelog aktivieren Portagelog aktivieren Verfasst von Old Man am 29. März 2010 – 15:50 Vorwort Da man ja von seinem System alles wissen möchte, gerade wenn sich Fehler einschleichen, empfehle ich die standardmäßig deaktivierte Protokollfunktion von Portage einzuschalten. Bearbeitung Dies geschieht mittels einer Option in der /etc/make.conf. So erhält man die volle Kontrolle über die Portageausgaben und kann beliebige Analysen anwenden. mkdir /var/log/portage echo "PORT_LOGDIR=\"/var/log/portage\";" >> /etc/make.conf Paketkategorien vom Update ausschliessen Paketkategorien vom Update ausschliessen Beim emerge –sync werden ja alle Paket-Kategorien upgedatet. Je nach dem, kann dies eine Weile dauern. Und nicht jeder hat eine Flat zur Verfügung. Beispiel Ihr benutzt Gnome und braucht keine KDE-Pakete. Trotzdem werden die KDE-Pakete beim emerge –sync mit upgedatet. Lösung Dies kann man mit einen Eintrag in der /etc/make.conf ändern. Zusätzlich muss man auch eine Liste der Paket-Kategorien erstellen, die beim Update ausgeschlossen werden sollen. nano-w /etc/make.conf Dort fügt man folgenden Eintrag hinzu. PORTAGE_RSYNC_EXTRA_OPTS="--excludefrom=/etc/portage/rsync_excludes" Zum erstellen der Liste wird nun die Datei /etc/portage/rsync_excludes editiert. nano -w /etc/portage/rsync_excludes Beispiel einer Eintragung. kde* xfce* Das * ist dafür da, das auch der Inhalt der Paket-Kategorie, vom Update ausgeschlossen wird. metadata, eclass, packages, profiles, scripts sollten auf keinen Fall in der Liste auftauchen. Also Finger weg davon. Probiert es einfach mal aus. Nur macht nicht sooft ein emerge –sync. Andernfalls werdet Ihr für eine gewisse Zeit beim Mirror gesperrt. Hinweis Eine Übersicht, welche Paket-Kategorien es gibt, findet Ihr hier: http://gentoo-portage.com/Browse Lokales Overlay erstellen Lokales Overlay erstellen Verfasst von FelixPetzold am 20. April 2010 – 22:35 Warum lokales Overlay? Ich wollte nur eine bestimmt Version von Skype installieren, die aus dem Overlay Sabayon stammt. Da in diesem Overlay aber noch jede Menge Pakete für Gnome drin sind, die ich nicht installieren möchte, habe ich mich für ein lokales Overlay entschieden, um nur dieses eine Paket in den Portage Tree einzubinden. Erstellen Ich habe mir ein Verzeichnis für mein lokales Overlay erstellt: sudo mkdir -p /usr/local/portage/overlay sudo chown portage:portage /usr/local/portage/overlay Dann habe ich auf http://gpo.zugaina.org/ nach meinem Paket gesucht, in dem Fall Skype. Die Download-Links, die euch dort angeboten werden, laden ein Ebuild runter, in meinem Fall war es „skype-2.1.0.47.ebuild“. Da Skype aus der Kategorie net-im kommt, erstellen wir jetzt in unserem Overlay den Ordner net-im und darin den Ordner Skype und kopieren dort unser Ebuild rein sudo mkdir -p /usr/local/portage/overlay/net-im/skype sudo cp /home/felix/Downloads/skype-2.1.0.47.ebui ld /usr/local/portage/overlay/netim/skype/ sudo chown -R portage:portage /usr/local/portage/overlay/* Jetzt müssen wir für dieses Ebuild noch das Manifest erstellen sudo ebuild /usr/local/portage/overlay/netim/skype/skype-2.1.0.47.ebuild manifest Als letztes müssen wir Portage nun noch sagen, dass es ein Overlay gibt, dass benutzt werden soll. Dazu fügen wir folgendes in die /etc/make.conf ein: PORTDIR_OVERLAY="/usr/local/portage/overl ay/" Dem eigenen Overlay einen Namen geben: mkdir -p /usr/local/portage/overlay/profiles touch /usr/local/portage/overlay/profiles/repo_ name echo "my_overlay_name" >> /usr/local/portage/overlay/profiles/repo_ name Da es sich bei meiner Skype-Version um ein x86 Paket gehandelt hat, konnte ich das Paket jetzt mit emerge -av skype installieren. Sollte euer Paket für ~x86 sein (amd64 / ~amd64 genauso), müsst ihr es noch demaskieren, wenn ihr ein stable System habt. Sollte euer Paket Abhängigkeiten haben, die sich mit Hilfe des normalen Portage-Trees nicht auflösen lassen, kann es sein, dass ihr weitere Pakete in euer Overlay stecken müsst (man denke an Gnome oder KDE). Logrotate logrotate Verfasst von niniveh am 19. April 2010 – 20:59 logrotate – rotiert, komprimiert und mailt System-Log Dateien Das Systemwerkzeug app-admin/syslog-ng sorgt dafür, dass diverse Vorgänge im Gentoosystem in bestimmten Logdateien eingetragen werden, so dass der Administrator hier das Gentoosystem auf Fehler und sonstige Vorgänge überprüfen, bzw. nachlesen kann. Manche dieser Logdateien werden mit der Zeit überaus groß und dadurch umständlich zu handhaben, zumal ältere Logdaten mitunter nicht mehr interessant sind. Nun kann man diese Logdateien selber komprimieren und leeren. Das Löschen ist allerdings nicht empfehlenswert, weil manche Logdateien nicht mehr ohne weiteres erneut angelegt werden können. Oder man installiert ein Werkzeug, das diese regelmäßigen Aufgaben, archivieren und löschen älterer Logdateien, automatisiert erledigt. Hierfür ist Logrotate das richtige Werkzeug. Und zwar werden je nach Einstellung in der logrotate-Konfiguration zu festgelegten Zeiten die vorgegebenen Logdateien in Tararchiven gepackt und nummeriert. Nach einer bestimmten wiederum einstellbaren Anzahl von Log-Tararchiven wird jeweils das älteste Tararchiv gelöscht, wenn ein neues dazu kommt (rotiert). Beispiel /var/log/messages, die Nummerierung erfolgt über die Datumsangabe der Erstellung nach amerikanischem Format: ls -l /var/log [...] -rw------- 1 root messages -rw------- 1 root messages-20100320.gz -rw------- 1 root messages-20100327.gz -rw------- 1 root messages-20100404.gz -rw------- 1 root messages-20100411.gz [...] root 379939 16. Apr 20:30 root 137110 20. Mär 13:20 root 74333 27. Mär 19:30 root 104115 4. Apr 09:40 root 132453 11. Apr 19:40 In der Beschreibung hier möchte ich im wesentlichen darstellen, wie man logrotate wöchentlich seine Arbeit machen und nur 4 Tarsicherungsachive pro Logdatei anlegen lässt. Installieren der entsprechenden Systemlogwerkzeuge und beim booten starten lassen: emerge app-admin/syslog-ng app-admin/logrotate rc-update add syslog-ng default Um logrotate täglich seinen Dienst erfüllen zu lassen muss man dafür einen Cronjob in /etc/cron.daily/logrotate.cron erstellen. Hinweis: In der /etc/crontab kann man einstellen, wann welcher Cronjon erledigt werden soll. Cron ist hier sehr flexibel. In dieser Datei wird in unserem Beispiel hier Chron zu den Einstellungen in der logrotate-Konfigurationsdatei verwiesen. cat /etc/cron.daily/logrotate.cron #! /bin/sh /usr/sbin/logrotate /etc/logrotate.conf Nähere Beschreibungen Gentoo Linux Cron Guide. Unten meine Ausgabe der Logrotate-Konfigurationsdatei /etc/logrotate.conf. Die Kommentarzeile beschreibt kurz um welche Funktion es sich jeweils handelt, teilweise schreibe ich deutsch die Funktion dazu. Genauere Beschreibung mit „man logrotate“ oder in der deutschsprachigen Manpage: cat /etc/logrotate.conf # $Header: /var/cvsroot/gentoo-x86/appadmin/logrotate/files/logrotate.conf,v 1.3 2008/12/24 20:49:10 dang Exp $ # # Logrotate default configuration file for Gentoo Linux # # See "man logrotate" for details # rotate log files weekly (täglich oder wöchentlich rotieren) weekly #daily # keep 4 weeks worth of backlogs (4 Sicherungsarchive werden hier gehalten, die Zahl kann verändert werden) rotate 4 # create new (empty) log files after rotating old ones (neue Logdatei anlegen, nachdem die bisherige archiviert wurde) create # use date as a suffix of the rotated file (Fügt Erstellungsdatum in den Dateinamen des Logarchives ein) dateext # uncomment this if you want your log files compressed (Logarchive werden komprimiert) compress # packages can drop log rotation information into this directory (Rotationsinfos in /etc/logrotate.d werden erfasst) include /etc/logrotate.d notifempty nomail noolddir # no packages own lastlog or wtmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp rotate 1 } /var/log/btmp { missingok monthly create 0600 root utmp } rotate 1 # system-specific logs may be also be configured here. Etliche Programme legen für logrotate eigene Konfigurationsdateien unter /etc/logrotate.d an, so dass diese automatisch von logrotate erfasst werden. Logdateien die aber nicht automatisch von logrotate erfasst werden kann man einfach hinzufügen, indem man sie in der Konfigurationsdatei einer anderen zusätzlich hinzufügt. Ich verwende dazu die Datei /etc/logrotate.d/syslog-ng: cat /etc/logrotate.d/syslog-ng # $Header: /var/cvsroot/gentoo-x86/app-admin/syslogng/files/syslog-ng.logrotate,v 1.2 2004/07/18 02:25:02 dragonheart Exp $ # # Syslog-ng logrotate snippet for Gentoo Linux # contributed by Michael Sterrett # /var/log/messages /var/log/emerge.log /var/log/kdm.log /var/log/xdm.log /var/log/pm-powersave.log /var/log/pm-suspend.log /var/log/ConsoleKit/history { sharedscripts postrotate /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true endscript } In der ersten nicht auskommentierten Zeile stehen die vollen Pfade der Logdateien, die ich mit logrotate erfasst haben möchte, je mit einem Leerzeichen getrennt: /var/log/messages /var/log/emerge.log /var/log/kdm.log /var/log/xdm.log /var/log/pm-powersave.log /var/log/pm-suspend.log /var/log/ConsoleKit/history Alles innerhalb der geschweiften Klammern beschreibt was mit diesen Dateien geschehen soll. Uhrzeit mit NTP-Server abgleichen Uhrzeit mit NTP-Server abgleichen Verfasst von Old Man am 16. April 2010 – 22:29 Vorwort Immer wieder habe ich mich über meine Systemzeit geärgert. Also habe ich beschlossen, die Uhrzeit mit dem Internet abzugleichen. Deswegen habe ich einen NTP-Client installiert, um die Uhrzeit beim booten mit einem NTP-Server abzugleichen. Anleitung Als erstes muss die Zeitzone stimmen. Mit date kann man sich die Zeitzone anzeigen lassen, welche im Augenblick gesetzt ist. Als nächstes muss der NTP-Client-Dienst installiert werden. emerge -av ntp Die was Ich der NTP-Server sollten in der Datei /etc/ntp.conf angepasst werden, aber nicht zwingend erforderlich ist. habe meine auf deutsche Pool Server angepasst. Eine aktuelle Liste deutschen Pool-Server findest Du auf der NTP-Homepage nano -w /etc/ntp.conf # Pools for Gentoo users #server 0.gentoo.pool.ntp.org #server 1.gentoo.pool.ntp.org #server 2.gentoo.pool.ntp.org #server 3.gentoo.pool.ntp.org # server 0.de.pool.ntp.org server 1.de.pool.ntp.org server 2.de.pool.ntp.org server 3.de.pool.ntp.org Um die Zeit beim Booten automatisch mit dem Internet abzugleichen, fügen wir dem Runlevel folgendes hinzu. rc-update add ntp-client default Systempartition nach der Installation vergrössern Systempartition nach der Installation vergrößern Verfasst von niniveh am 11. April 2010 – 22:12 Vorwort Für die meisten Linuxdistributionen ist eine 10GB große Systempartion völlig ausreichend. Wenn man nun ein Gentoosystem auf eine 10GB große Partition installiert und /home auf einer weiteren Partition mountet, wird man spätestens nach der Installation eines großen Desktopmanagements wie KDE4 feststellen, dass Gentoo erheblich mehr Speicherplatz belegt als andere Distributionen. 10GB können nach einer Weile des Betriebes zu klein werden. Nun kann man neu Partitionieren, wenn genügend Festplattenplatz verfügbar ist und neu installieren. Aber weil eine Gentooinstallation sehr viel Mühe macht, werden es die meisten vorziehen ohne Neuinstallation die Systempartition vergrößern zu können. Wie das geht beschreibe ich hier. Diese Anleitung sollte auch bei allen anderen Linux-Distributionen 1 zu 1 anzuwenden sein. Voraussetzungen Es muss direkt neben der Systempartition eine nicht benötigte Partition oder unpartitionierter Festplattenplatz vorhanden sein. Auf einem anderen hier nicht betroffenen Partition muss genügend freier Platz sein um das System vorübergehend dort zu speichern. Es muss eine funktionierende Linux-Live-CD vorliegen. Bevorzugt eine die hdparm mitbringt, da sonst die Kopiergeschwindigkeit sehr langsam ist. Annahmen Wir gehen in unserem Beispiel hier davon aus, dass Gentoo auf der 10GB großen Partition sdb1 installiert ist. sdb2 direkt daneben nicht benötigt wird und auch 10GB groß ist. Auf sda6 werden wir das System vorübergehend ablegen, sie ist mit ext3 formatiert. Eine Linux Live-CD vorliegt Dass die Bedienung von fdisk bekannt ist Vorgehen Boote die Live-CD und melden dich auf der Konsole als Root an. Anlegen von Verzeichnissen, in die sdb1 und sda6 eingebunden werden sollen und diese mounten: mkdir mount mount mkdir /mnt/sdb1 /mnt/sda6 /dev/sdb1 /mnt/sdb1 /dev/sda6 /mnt/sda6 /mnt/sda6/gentoo-system Kopieren des Gentoosystemes: Die Optionen des cp-Befehles sorgen dafür, dass die Kopie alle Rechte und relativen Links des Originals erhalten bleiben. cp -Rpv /mnt/sdb1/* /mnt/sda6/gentoo-system/ Mit fdisk die Partitionen sdb1 und sdb2 (je 10GB in unserem Beispiel) löschen und sdb1 mit 20GB neu anlegen. Die neue Partition sdb1 mit ext3 neu formatieren: mkfs.ext3 /dev/sdb1 Das zuvor gesicherte System von sda6 wieder zurück auf sdb1 kopieren: cp -Rpv /mnt/sda6/gentoo-system/* /mnt/sdb1/ Mit df -h können wir nach dem kopieren sehen, wie groß die neue Partition ist und wieviel davon belegt ist: df -h Und werden wahrscheinlich sehen, dass sdb1 noch immer nur 10GB groß ist. Das hat folgenden Grund: Beim formatieren von sdb1 wurde eine entsprechende Inode Tabelle geschrieben, die die tatsächliche Partitionsgröße beschreibt. Nun wurde beim kopieren des Systems die alte Inode-Tabelle auch kopiert und die beschreibt sdb1 als 10GB groß. Und diese alte Inode-Tabelle wurde später wieder zurück kopiert. Diese überschreibt die neue, aktuelle Inode-Tabelle auf sdb1. Wir legen eine neue Benötigt werden die e2fsck es überprüft resize2fs liest die aktuelle Inode-Tabelle von sdb1 an. Programme: zunächst die Partition, neue Inode-Tabelle ein. Zuerst muss sdb1 ausgehängt werden: umount /mnt/sdb1 Nun lassen wir sdb1 überprüfen und legen die neue Inode-Tabelle an: e2fsck -f /dev/sdb1 resize2fs -p /dev/sdb1 Danach starten wir das installierte Gentoosystem auf sdb1 und prüfen nochmals die Partitionstabelle: df -h Das Ergebnis solle ungefähr so aussehen: df -h Dateisystem auf /dev/sdb1 udev /dev/sdb3 ... Größe Benut 20G 10M 210G 6,3G 176K 28G Verf Ben% Eingehängt 13G 9,9M 171G 34% / 2% /dev 14% /home Fertig! Systembackup mittels rsync Systembackup mittels rsync Verfasst von niniveh am 11. April 2010 – 22:01 Vorwort Es gibt unter Linux viele Möglichkeiten Backups zu erstellen. Hier beschreibe ich ein Systembackup auf der Konsole mit dem Programm rsync. rsync synchronisiert zwei Datensätze und sorgt bei den richtig gesetzten Optionen dafür, dass beide genau identisch sind. Bei der ersten Sicherung verhält sich rsync genau wie ein schlichter Kopierbefehl wie cp -Rpv Quelle Ziel, was bei einem Systembackup einige Zeit dauert. Der eigentliche Vorteil von rsync kommt erst bei allen weiteren Sicherungen zum tragen, denn rsync wird dann nicht erneut das ganzes System zur Sicherungspartition kopieren, sondern lediglich die Änderungen. rsync kopiert dann nicht einmal die geänderten Dateien, sondern nur die Änderungen innerhalb von Dateien, was das Kopiervolumen und die benötigte Zeit drastisch reduziert. Bei einem Systembackup muss zwingend von einem anderen Linuxsystem gebootet werden. Entweder von einer beliebige Live-CD oder einem zweiten installierten System. Hier beschreibe ich die Sicherung von einem installierten Zweitsystem nach sdc7 auf einer externen Festplatte. Die Partition der Sicherung muss ein Dateisystem haben das auch die Rechteverwaltung von Linux unterstützt wie ext3. Der Sicherungsbefehl Befehl lautet: rsync -avPSH --delete Quelle Ziel Die Optionen sind hier so gesetzt, dass alle Dateien, Verzeichnisse und Links, die in der Quelle nicht mehr vorkommen, also inzwischen gelöscht wurden, im Sicherungsverzeichnis auch gelöscht werden. So ist nach dem Backup die Sicherung identisch mit dem originalen installieren System. Ausführung Starten des Zweitsystems. Öffne eine Konsole und melde dich als Root an. Anlegen eines Verzeichnisses für die zu sichernden Partition und für die Sicherungspartition auf der externen Festplatte: # mkdir /media/sdb1 # mkdir /media/sdc7 Mounten der zu sichernden System- und Sicherungspartition: # mount /dev/sdb1 /media/sdb1 # mount /dev/sdc7 /media/sdc7 Die Pfade müssen jeweils angepasst werden. Anlegen eines Verzeichnisses auf der externen Festplatte, welches die Gentoosystemsicherung aufnehmen soll: # mkdir /media/sdc7/gentoo Sicherung mit rsync durchführen: # rsync -avPSH --delete /media/sdb1/ /media/sdc7/gentoo Der Slash (/) am Ende von rsync -avPSH –delete /media/sdb1/ bedeutet, dass nur der Inhalt vom Verzeichnis sdb1 kopiert wird und nicht dieses Verzeichnis selber! Bei der Rücksicherung wird Quelle und Ziel lediglich vertauscht: In unserem Beispiel also: # rsync -avPSH --delete /media/sdc7/gentoo/ /media/sdb1 Links: Linuxclub Kanotix Wikipedia rsync GCC wechseln GCC wechseln Vorwort Manchmal kommt es vor, dass man einfach einen neueren GCC zum kompilieren benötigt. Gentoo hält auch dafür eine Lösung bereit. Lösung Um an einen neueren GCC heranzukommen setzt man diesen in die /etc/portage/package.keywords echo 'sys-devel/gcc' >> /etc/portage/package.keywords und anschliessend wird der GCC dann mit emerge -av sys-devel/gcc eingespielt. Es muss nun noch der neue GCC aktiviert werden. Um zu erfahren welcher GCC gerade aktiv ist, geben wir folgenden Befehl ein. gcc-config -l Wir bekommen dann diese oder eine ähnliche Anzeige. [1] x86_64-pc-linux-gnu-4.6.3 * [2] x86_64-pc-linux-gnu-4.7.3 Das Sternchen hinter einer Zeile zeigt uns welche GCC Version gerade aktiv ist. Alle anderen Zeilen zeigen uns an welche weiteren Versionen auf unserem System installiert sind und evtl. genutzt werden können. Um den neuen GCC zu aktivieren geben wir folgenden Befehl ein. gcc-config 2 Danach müssen wir noch unser Profil aktualisieren source /etc/profile Anschliessend überprüfen wir ob der neue GCC aktiviert wurde gcc-config -l Wir sollten dann diese oder eine ähnliche Ausgabe bekommen. [1] x86_64-pc-linux-gnu-4.6.3 [2] x86_64-pc-linux-gnu-4.7.3 * Da aber bereits installierte Bibliotheken (Librarys) davon ausgehen das der alte GCC noch aktuell ist, muss man diese mit einem Script auf den neuen GCC umstellen. Das geht recht einfach mit fix_libtool_files.sh 4.6.3 Wichtig ist die Versionsangabe, denn diese sorgt dafür das nur die Bibliotheken, die auf die Version 4.5.4 zeigen, auf die aktivierte GCC Version umgestellt werden. Ich wünsche Euch dann viel Erfolg und möge die Macht von emerger immer mit uns sein.