Share
Embed
Transcript
23 slides
-
Introduction ELOG Ebuild Phase Hook emerge ͷϩάͱ௨ ELOG ͱ Ebuild
Phase Hook ʹ͍ͭͯௐͨ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 2014-05-11 Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook 1 Introduction 2 ELOG 3
Ebuild Phase Hook Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ࣗݾհ Yasuhiro Asaka ϓϩάϥϚ (ϑϦʔϥϯε)
Gentoo, Funtoo StumpWM, Xterm Dvorak, Vim Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook తɺௐͨ͜ͱ emerge ͷϩάΛऔΓ͍ͨɺྃΛΓ͍ͨ ELOG ͰϞδϡʔϧΛ͏
ELOG ͰΧελϜίϚϯυͰΛ͏ emerge ͷϑΣʔζͷܦաΛΓ͍ͨ Ebuild Phase Hook Λ͏ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ༰ ELOG ͷϩΪϯάػೳ ELOG ͬͯͲΜͳͷ͔
ϞδϡʔϧΛ͏ ΧελϜίϚϯυ Λ͏ Ebuild Phase Hook Ebuild Phase Hook ͬͯͲ Μͳͷ͔ ύοέʔδຖʹ༻ҙͯ͠ ͏ /etc/portage/bashrc ʹ͓͍ ͯ͏ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ༰ ELOG ͷϩΪϯάػೳ ELOG ͬͯͲΜͳͷ͔
ϞδϡʔϧΛ͏ ΧελϜίϚϯυ Λ͏ Ebuild Phase Hook Ebuild Phase Hook ͬͯͲ Μͳͷ͔ ύοέʔδຖʹ༻ҙͯ͠ ͏ /etc/portage/bashrc ʹ͓͍ ͯ͏ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ELOG ͬͯͲΜͳͷ͔ Portage-2.0.* Ͱ enotice
ͱ͍͏ ebuild ͕͋ͬͨ ELOG ʹͳͬͯ Portage ʹΈࠐ·Εͨ (enotice ͱඇޓ) อଘ͞Εͨϩά eread Ͱ֬ೝͰ͖Δ ઃఆʹ͏ม (make.conf) PORTAGE_ELOG_CLASSES ELOG ରΛࢦఆ͢Δ (info, warn, error ͳͲ) PORTAGE_ELOG_SYSTEM ϞδϡʔϧΛࢦఆ͢Δ (ۭͩͱ ELOG disabled) PORTAGE_ELOG_COMMAND $PACKAGE ($PF, $PN-$PVR) ͱ $LOGFILE (ύε) ͷ 2 ͭͷΛͤΔ (ਖ਼نදݱ) Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ELOG ͬͯͲΜͳͷ͔ ઃఆྫ e.g. GentWoo
PORTAGE_ELOG_CLASSES="log warn error qa" PORTAGE_ELOG_SYSTEM="custom:* echo save" PORTAGE_ELOG_COMMAND="/usr/bin/gentwoo ’${PACKAGE}’ ’${LOGFILE}’" Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ϞδϡʔϧΛ͏ ҰʹෳͷϞδϡʔϧΛ͏͜ͱ͕Ͱ͖Δ ίϩϯͰ۠ͬͯɺPORTAGE_ELOG_CLASSES Λ্ॻ͖Ͱ͖Δ "echo
save:log mail:*" ίʔυ /usr/lib/portage/pym/portage/elog/ ʹ͋Δ (Python) ඪ४Ͱ༻ҙ͞Ε͍ͯΔ echo, save, custom, syslog, mail, mail_summary, save, save_summary PORTAGE_ELOG_COMMAND Λ͏ʹ custom Λࢦఆ͢Δ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ϞδϡʔϧΛ͏ Email Ϟδϡʔϧ PORTAGE_ELOG_SYSTEM ʹ
mail ·ͨ mail_summary ϞδϡʔϧΛՃͯ͠͏ mail_summary emerge ͕ऴྃ͢Δͱ ͯ͢ͷϝοηʔδΛ 1 ௨ʹ·ͱΊͯૹΔ ${ACTION} (merge, unmerge) mail ͰͷΈ͑Δ PORTAGE_ELOG_MAILURI /usr/share/portage/config/make.conf.example ࢀর PORTAGE_ELOG_MAILFROM "portageexample.org" PORTAGE_ELOG_MAILSUBJECT "[portage] euild log for ${ACTION} ${PACKAGE} on ${HOST}" Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook email Ϟδϡʔϧͷҙɺ·ͱΊ SystemExit ͳͲͰதࢭͯ͠ૹΒΕΔ (൱ʹΑΒͳ͍)
ೝূͳͲͰࣦഊ͢Δͱྫ֎ͷϝοηʔδΛग़ͯ͘͠ΕΔ !!! An error occured while trying to send logmail: ... Sure you configured PORTAGE_LOG_MAILURI correctly? Python (socket.getfqdn()) Ͱɺ/etc/hosts ΛͪΌΜͱಡΊΔ͔ ֬ೝ͓ͯ͘͠ (${HOST}) portage 2.1.1 ͔Β ΞυϨεͷ user ෦ʹ ͕͑Δ (gmail ͩͱ, [email protected]@gmail.com:100587) port SMTP ೝূΛ͏߹ 465 587 ͡Όͳͯ͘ɺ 100465 ͱ͔ 100587 ʹ͢Δ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ϞδϡʔϧΛ͏ ϩά (௨) ྫ: Email
Ϟδϡʔϧ INFO: setup Package: app-editors/vim-7.4.273 Repository: gentoo Maintainer: [email protected] USE: X acl amd64 cscope elibc_glibc kernel_linux lua ... \ racket userland_GNU FEATURES: preserve-libs sandbox INFO: prepare Applying vim-patches-7.4.273.patch ... INFO: postinst Updating documentation tags in /usr/share/vim/vim74 Calling eselect vi update... Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook jabber Ϟδϡʔϧ http://projects.usrportage.de/index.fcgi/ portage-mod-jabber/wiki %
epkginfo portage-mod_jabber * app-portage/portage-mod_jabber [gentoo] Maintainer: [email protected] Upstream: None specified Homepage: http://usrportage.de/ Location: /usr/portage/app-portage/portage-mod_jabber Keywords: 0.0.3:0: Keywords: 0.0.5.1:0: ~amd64 ~arm ~x86 License: GPL-2 # configuration (make.conf) PORTAGE_ELOG_SYSTEM="jabber" PORTAGE_ELOG_JABBERFROM="sender:[email protected][/resource]" PORTAGE_ELOG_JABBERTO="[email protected] [email protected] [email protected]" Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ϞδϡʔϧΛ͏ ΧελϜίϚϯυͰ௨͢Δ root ϢʔβͷϓϩηεʹͳΔ X-Session
ʹଓ͢Δ͕ඞཁ DISPLAY ":0.0" XAUTHORITY "/home/user/.Xauthority" (X-session ͷΫοΩʔ) #!/bin/sh if [ $# -lt 1 ]; then echo "Usage: ‘basename $0‘ command" >&2 exit 2 fi su -c "exec env DISPLAY=’$DISPLAY’ XAUTHORITY=’$XAUTHORITY’ ’$SHELL’ -c ’$*’" Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook σϞ Stumpish ͷྫ https://gist.github.com/grauwoelfchen/4f64480526d8aa1b15b4 https://gist.github.com/grauwoelfchen/3d64c13cf473667123d6
# xroot-stumpish ’package name’ ’log file name’ +--------------------+ | package name | | log file name | +--------------------+ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook Ebuild Phase Hook ͱ Ebuild
ͷ֤ஈ֊ͷલޙ (pre, post) ͰධՁ͞ΕΕΔ Bash εΫϦϓτ Ebuild Λॻ͖͑ͨΓͤͣʹ֤ Phase ͰڥมͳͲΛ ্ॻ͖ͨ͠ΓͰ͖Δ ΧςΰϦ SLOT ΛߜͬͯධՁ͞ΕΔΑ͏ʹͰ͖Δ Ebuild ͰΘΕΔมͷ΄͔ϔϧύʔؔ (einfo ͳͲ) ͑Δ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook bashrc ͷॴͱॱং ධՁ͞ΕΔॱং (্͔Β) $PN
Package name $P Package name and version $PF Full-Package name (${PN}-${PVR}) 1 /etc/portage/bashrc 2 /etc/portage/env/${CATEGORY}/${PN} 3 /etc/portage/env/${CATEGORY}/${PN}:${SLOT} 4 /etc/portage/env/${CATEGORY}/${P} 5 /etc/portage/env/${CATEGORY}/${PF} Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook Ebuild Phase Hook ͷྫ ML
(gentoo-portage-dev) ʹ͋ͬͨྫ $ cat /etc/portage/env/sys-libs/glibc pre_pkg_setup() { local x for x in installsources splitdebug ; do if ! has $x $FEATURES ; then elog "bashrc is adding $x to FEATURES for $PN" FEATURES="$FEATURES $x" fi done ... } Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook Ebuild Phase Hook ͷྫ άϩʔόϧͰϑοΫ͢Δྫ
$ cat /etc/portage/bashrc if [ "${EBUILD_PHASE}" == "postinst" ]; then einfo "postinst" ... elif [ "${EBUILD_PHASE}" == "postrm" ]; then einfo "postrm" ... fi ... Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook Ebuild Phase ͷҰཡ 1 pretend
2 clean 3 setup 4 unpack 5 prepare 6 configure 7 compile 8 test 9 install 10 ? 11 preinst 12 ? 13 prerm 14 postrm 15 cleanrm 16 postinst 17 ? 18 clean Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook Ebuild Phase Hook ͷҙɺ·ͱΊ ಉظత
ʹݺΕΔ (sleep ͢Δͱ emerge ͱ·ͬͪΌ͏) ରͷ Phase ͕ఆٛ͞Ε͍ͯͳ͍߹͋Δ (ebuild ʹΑΔ) ${EBUILD_PHASE} ͕ۭจࣈྻͰݺΕΔ͕࣌͋Δ ? ຊདྷ Ebuild ΛϋοΫͤͣʹɺڥมઃఆͳͲΛ ߦ͏ͷ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ࢀߟϦϯΫ Portage Documentation http://dev.gentoo.org/~zmedico/portage/doc/ Ebuild
Phase Hook http://dev.gentoo.org/~zmedico/portage/doc/ch01s02.html Ebuild Phases http://dev.gentoo.org/~zmedico/portage/doc/ch06.html#package-ebuild-phases Helper Functions http://dev.gentoo.org/~zmedico/portage/doc/ch06s02.html Ebuild Writing http://devmanual.gentoo.org/ebuild-writing/index.html EAPI http://devmanual.gentoo.org/ebuild-writing/eapi/ Variables http://devmanual.gentoo.org/ebuild-writing/variables/ Working with Portage > Files and Directories http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3&chap=1 Gentoo Wiki - Project:Portage http://wiki.gentoo.org/wiki/Project:Portage Portage log http://wiki.gentoo.org/wiki/Portage_log mod_jabber for Portage http://projects.usrportage.de/index.fcgi/portage-mod-jabber/wiki Remote X Apps mini-HOWTO http://zweije.home.xs4all.nl/xauth.html#toc7 7. X Applications from Another User-id http://zweije.home.xs4all.nl/xauth-7.html Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨ -
Introduction ELOG Ebuild Phase Hook ͓ΘΓ ͋Γ͕ͱ͏͍͟͝·ͨ͠ Gentoo Security Team
ͷํ࡞ͷ LaTeX ςʔϚΛ ΘͤͯΒ͍·ͨ͠ http://a3li.li/2014/04/gentoo-latex-beamer-theme/ Yasuhiro Asaka @grauwoelfchen Gentoo ษڧձ #2 emerge ͷϩάͱ௨