Document Home | Document Index
See http://www.linuxfromscratch.org/hints/downloads/files/pio-hint.txt and http://www.linuxfromscratch.org/hints/downloads/files/pio-files.
pio is meant to be run immediately before and immediately after the installation of a package (after all steps). It uses before and after file lists (made with find), and therefore depends on installations being done on a quiet system. Its record of an installation is kept as a de-installation script in which the removal of any pre-existing file is commented out.
A test using cp -p has shown that files created with old timestamps are properly recorded.
Experience with using pio in the LFS/BLFS process suggests that the pio script should be in $LFS/usr/local/bin with a symlink from /usr/bin. The directory for the generated scripts should be $LFS/usr/local/pio. Once in the chroot shell or in the new system, pio will be in /usr/local/bin which will need to be added to the PATH from the start.
The pio script contains (at least) 3 configurations which may be selected by number and are intended for the stages of the LFS process. Changes for each are in the relevant sub-sections below.
1) #PGR During LFS-Ch5 stage1 build when $LFS is defined externally VIEWPROG="less -c" SHOWRESULT=yes # default answer to 'Show it?' WATCHDIRS=$LFS - IGNOREDIRS= - SCRIPTPATH=$LFS/$SNAME ;; + IGNOREDIRS="$LFS/lost+found $LFS/sources" + SCRIPTPATH=$LFS/${SNAME} ;;
2) #PGR During LFS-Ch6 stage2 build - VIEWPROG=cat + #VIEWPROG=cat + VIEWPROG="less -c" # once it has been built SHOWRESULT=yes # default answer to 'Show it?' WATCHDIRS="/bin /boot /dev /etc /lib /opt /sbin /srv /usr /var" - IGNOREDIRS="/usr/local/src /usr/local/$SNAME /var/log" + IGNOREDIRS="/usr/local/src /usr/local/$SNAME /var/log /usr/src" SCRIPTPATH=/usr/local/$SNAME ;;
3) #PGR After LFS-Ch6 stage 2 complete, general ops VIEWPROG="less -c" SHOWRESULT=yes # default answer to 'Show it?' - WATCHDIRS="/bin /boot /dev /etc /lib /opt /sbin /srv /usr /var" + WATCHDIRS="/bin /boot /etc /lib /opt /sbin /srv /usr /var" #PGR if cups is installed, ignore cups changes [ -d /etc/cups ] && cups="/etc/cups" || cups="" [ -d /var/spool/fcron ] && fcron="/var/spool/fcron" || fcron="" - IGNOREDIRS="/usr/local/src /usr/local/$SNAME /var/log $cups $fcron" + IGNOREDIRS="/opt /srv /srv2 /usr/src /usr/local/src /usr/local/$SNAME /var/log $cups $fcron" SCRIPTPATH=/usr/local/$SNAME ;;