Portage napló

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Portage log and the translation is 100% complete.

A Portage napló a csomagok telepítésekor, frissítésekor vagy eltávolításakor nyújt információkat.

Amikor az emerge parancsot használjuk egy programcsomag elkészítésére, nem ritka, hogy magától a Portage csomagkezelőtől érkeznek üzenetek. Mivel fontos információkat tartalmazhatnak a Gentoo fejlesztőktől, jó ötlet elolvasni őket, de gyakran ez nem lehetséges azonnal, mert gyorsan továbbgördülnek a képernyőről. Ez könnyen megoldható az Portage csomagkezelő elog nevű feature engedélyezésével, aminek az a célja, hogy az üzeneteket lemezre mentse a későbbi áttekintés céljából. De más naplózási lehetőségek is léteznek...

Portage elog alrendszer

A Portage elog alrendszer nyomon követi azokat a konkrét, ebuild által biztosított naplóüzeneteket, amelyeket a fejlesztők a ebuild-be helyeztek el, hogy felkeltsék a rendszer adminisztrátor vagy a rendszergazda (root) felhasználó figyelmét. Gyakran ezek az üzenetek fontos vagy érdekes információkat tartalmaznak az említett csomag létrehozásával kapcsolatban.

Beállítást

Válassza ki, hogy a PORTAGE_ELOG_CLASSES változón keresztül milyen információkat kell naplózni. Lehetséges értékek a info, warn, error, log, és qa:

PORTAGE_ELOG_CLASSES="log warn error"

Fájl alapú tárolás beállítása

A Portage számos módon tudja kezelni az elog eseményeket.

Az elog események lemezre mentéséhez engedélyezze a save modult a PORTAGE_ELOG_SYSTEM változóban:

FILE /etc/portage/make.conf
# Warning: just 'save' won't show messages on emerging! Add 'echo' to save *AND* show.
#PORTAGE_ELOG_SYSTEM="save"

# Show messages after emerging *and* save
PORTAGE_ELOG_SYSTEM="echo save"

Az üzenetek a /var/log/portage/elog vagy a ${PORTAGE_LOGDIR}/elog könyvtárba kerülnek mentésre, ha az említett változó be van állítva.

Kategóriánkénti elog fájlok létrehozásához engedélyezze a split-elog Portage lehetőséget. Arra kényszeríti a Portage csomagtárolót, hogy kategória alapú alkönyvtárakat hozzon létre az /var/log/portage/elog helyhez.

Emellett kategóriánkénti összeállítási naplók létrehozásához engedélyezze a split-log Portage szolgáltatást. Arra kényszeríti a Portage-et, hogy kategória alapú alkönyvtárakat hozzon létre a /var/log/portage/build helyhez.

Szkript a naplók kereséséhez

Amikor a naplófájlok szét vannak osztva, akkor kicsit idegesítő lehet egyenként végignézni őket. Itt van egy példaszkript a dátumozott módon történő fájlba íráshoz:

FILE print-elog-messages.sh
#!/bin/bash

# This script is assuming that portage is configured to log in
# /var/log/portage/elog and that it's configured to split the logged files.
#
# If you want specific dates, run the script like so:
# GET_DATES="20230101 20230102" ./print_elog_messages.sh
#
# If you want all files to be printed, run the script like so:
# GET_ALL="true" ./print_elog_messages.sh
#
# If the script filename is different, adjust accordingly!

# Check if running as root and stop if it is.
current_user=$(whoami)
[ -z "$current_user" ] && echo "whoami returns an empty string" && exit 1
[ "$current_user" == "root" ] && echo "Don't run as root, there's no need!" && exit 1

# Set periods to check. These strings are interpreted by the "date" tool.
declare -a days=("today" "yesterday")

# Change the array to the custom dates if they're declared.
[ -n "$GET_DATES" ] && declare -a days=("$GET_DATES")

# If we're printing everything, there's no reason to loop multiple times and
# it would make sense to change the period to "all".
[ "$GET_ALL" == "true" ] && declare -a days=("all")

# Go through the periods set in the array "days" and format to find filenames
# containing YYYYmmdd, for example 20221215, since that's the format that's
# part of the filenames by default. After this, run the command cat with the
# found filenames as arguments, which adds the file contents
# to the terminal output. Remove the -n argument from cat if you don't want
# it to print the line numbers as well.
for val in ${days[@]}; do
	echo "          ===== $val ====="
	find /var/log/portage/elog -name \
		"*$([ "$GET_ALL" == "true" ] || date --date=$val +%Y%m%d)*" \
		-type f -print -exec cat -n '{}' \;
done

Konfigurálás e-mail -ekbe történő elküldésre

A naplófájlok e-mail címzetteknek történő elküldéséhez engedélyezze a mail modult. A mail opció néhány további változót igényel. További információkért olvassa el a /usr/share/portage/config/make.conf.example leírást.

Alább látható egy példabeállítás, amely remélhetőleg magától értetődő:

FILE /etc/portage/make.conf
# This will _only_ email; you may want to do "mail save" or similar instead.
PORTAGE_ELOG_SYSTEM="mail"
# First the mail-to address, then the SMTP server
PORTAGE_ELOG_MAILURI="log-intake@example.com mail.example.com"
PORTAGE_ELOG_MAILFROM="portage@$(hostname).example.com"
PORTAGE_ELOG_MAILSUBJECT="\${PACKAGE} is \${ACTION} on \${HOST}"

Másik példa a nullmailer-re vagy a sendmail-re:

FILE /etc/portage/make.conf
# This will _only_ email; you may want to do "mail save" or similar instead.
PORTAGE_ELOG_SYSTEM="mail"
# First the mail-to address, then the SMTP server
PORTAGE_ELOG_MAILURI="users@host /usr/sbin/sendmail"
PORTAGE_ELOG_MAILFROM="portage@$(hostname).example.com"
PORTAGE_ELOG_MAILSUBJECT="\${PACKAGE} is \${ACTION} on \${HOST}"

Kapcsolódó szoftver

A következő lista az elog-hoz kapcsolódó szoftvercsomagról készült:

Naplók építése

A csomagösszeállítási naplók elmenthetők lemezre vagy elküldhetők távoli címzettnek az make.conf változók beállításával. Ez lehetővé teszi a rendszergazdák számára, hogy később áttekintsék a csomaglétrehozások folyamairól készült naplókat.

Alapértelmezés szerint, amikor az emerge fut, a Portage ideiglenesen elmenti a csomaglétrehozási naplóját a /var/tmp/portage/<category>/<packagename-version>/temp/build.log mappába. A csomaglétrehozási könyvtár törlődik, amikor az emerge sikeresen befejeződik, így a sikeres csomaglétrehozási naplók elvesznek. Ha azonban egy csomaglétrehozás meghiúsul, akkor a naplók megmaradnak, így a build.log továbbra is elérhető lesz. Ezáltal a támogatási jegyekhez csatolható.

Jól jegyezze meg: A build.log-ot egy extra kiterjesztés követheti, ha a compress-build-logs be van állítva a FEATURES-ban. Az alapértelmezett PORTAGE_TMPDIR a /var/tmp. Ennek megfelelően állítsa be az elérési utat, ha valami másra van állítva a make.conf fájlban.

Mindig mentse az csomaglétrehozási naplókat

Az csomag létrehozási naplók mentésének engedélyezéséhez szerkessze a /etc/portage/make.conf fájlt, és állítsa be a PORTAGE_LOGDIR változót arra a helyre, ahová a naplófájlokat tárolni szeretné:

FILE /etc/portage/make.conf
PORTAGE_LOGDIR="/var/log/portage"

A naplófájlok helyeként szokás a /var/log/portage lehetőséget választani, mert itt lenne az elog alrendszer elog könyvtára, ha PORTAGE_LOGDIR korábban üres vagy nem beállított volt.

Számos FEATURES beállítás megadható a /etc/portage/make.conf fájlban, amelyek befolyásolják, hogy a Portage hogyan kezeli az csomaglétrehozási naplókat:

  • With binpkg-logs set, even binary package deployments will have their logs saved.
  • When clean-logs is set, regular log file clean operations are executed. The command that is executed is defined by PORTAGE_LOGDIR_CLEAN and defaults to a retention of the files of 7 days.
  • With split-elog set, elog notices are stored in category-named subdirectories of ${PORTAGE_LOGDIR}/elog
  • WIth split-log set, build logs are stored in category-named subdirectories of ${PORTAGE_LOGDIR}/build

A Portage 2.3.53-as verziójáig a PORTAGE_LOGDIR változó neve PORT_LOGDIR volt. Ez a régi név mára elavult.

Takarítás

Ha a clean-logs engedélyezve van a FEATURES változóban a /etc/portage/make.conf változóban, akkor a Portage a PORTAGE_LOGDIR_CLEAN által meghatározott parancsot hajtja végre minden csomaglétrehozási vagy csomagszétbontási művelet után. Alapértelmezés szerint a következő parancsot használják:

FILE /usr/share/portage/config/make.globals
PORTAGE_LOGDIR_CLEAN="find \"\${PORTAGE_LOGDIR}\" -type f ! -name \"summary.log*\" -mtime +7 -delete"

Egyéni parancs definiálásakor ne felejtsd el kihagyni a PORTAGE_LOGDIR változót (vagy azonnal megadni kézileg a megfelelő helyet).

A Portage 2.3.53-as verziójáig a PORTAGE_LOGDIR_CLEAN változó neve PORT_LOGDIR_CLEAN volt. Ez a régi név mára elavult.

További Portage naplófájl

A Portage a /var/log/emerge.log és a /var/log/emerge-fetch.log helyeken is tartalmazhat naplófájlokat.

További olvasnivaló a témában

  • Elogv — a curses-based tool that parses the contents of elogs created by Portage.

Külső források