Coreutilsは、Linux系OSの基本的なコマンド群です。 cat コマンド、cp コマンド、df コマンドなどが含まれます。
最初に、ビルド・インストール前リストを生成します。
/sources/genprevlist.sh > /dev/null 2>&1
ソースファイルを展開します。
cd /sources tar xvf coreutils-8.23.tar.xz cd coreutils-8.23
展開したソースファイルにパッチを適用します。
patch -Np1 < ../coreutils-8.23-i18n-1.patch
configureを実行します。
FORCE_UNSAFE_CONFIGURE=1 ./configure \ --prefix=/usr \ --enable-no-install-program=kill,uptime > ../../logs/configurelog.coreutils 2>&1
configureが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。
cat ../../logs/configurelog.coreutils
テストを行います。 root ユーザでのテストです。
make NON_ROOT_USERNAME=nobody check-root 2>&1 | tee ../../logs/checklog.coreutils-root
テストが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。
sed -e '1,/^Testsuite summary/d' ../../logs/checklog.coreutils-root | grep '^#.*:'
なお、筆者の環境(仮想マシン)では以下のように1件のエラーが発生します。
# TOTAL: 29 # PASS: 16 # SKIP: 12 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0
さらに、テストを行います。 続いては、nobody ユーザでのテストです。
echo "dummy:x:1000:nobody" >> /etc/group chown -vR nobody . su nobody -s /bin/bash -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" 2>&1 | tee ../../logs/checklog.coreutils sed -i -e '/dummy:x:1000:nobody/d' /etc/group
テストが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。
sed -e '1,/^Testsuite summary/d' ../../logs/checklog.coreutils | grep '^#.*:'
以下のように、"FAIL" と "ERROR" が 0(ゼロ) であれば問題ありません。
# TOTAL: 564 # PASS: 443 # SKIP: 121 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 # TOTAL: 306 # PASS: 294 # SKIP: 12 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0
インストール後の追加作業を行います。 実行ファイルを、本来あるべきディレクトリに移動します。
mv -v /usr/bin/cat /bin/ mv -v /usr/bin/chgrp /bin/ mv -v /usr/bin/chmod /bin/ mv -v /usr/bin/chown /bin/ mv -v /usr/bin/cp /bin/ mv -v /usr/bin/date /bin/ mv -v /usr/bin/dd /bin/ mv -v /usr/bin/df /bin/ mv -v /usr/bin/echo /bin/ mv -v /usr/bin/false /bin/ mv -v /usr/bin/ln /bin/ mv -v /usr/bin/ls /bin/ mv -v /usr/bin/mkdir /bin/ mv -v /usr/bin/mknod /bin/ mv -v /usr/bin/mv /bin/ mv -v /usr/bin/pwd /bin/ mv -v /usr/bin/rm /bin/ mv -v /usr/bin/rmdir /bin/ mv -v /usr/bin/stty /bin/ mv -v /usr/bin/sync /bin/ mv -v /usr/bin/true /bin/ mv -v /usr/bin/uname /bin/ mv -v /usr/bin/chroot /usr/sbin/ mv -v /usr/bin/head /bin/ mv -v /usr/bin/sleep /bin/ mv -v /usr/bin/nice /bin/
ソースファイルに付属している文書のインストールを行います。
mkdir -vp /usr/share/doc/coreutils-8.23 cp -va ABOUT-NLS /usr/share/doc/coreutils-8.23 cp -va AUTHORS /usr/share/doc/coreutils-8.23 cp -va COPYING /usr/share/doc/coreutils-8.23 cp -va ChangeLog /usr/share/doc/coreutils-8.23 cp -va ChangeLog-2005 /usr/share/doc/coreutils-8.23 cp -va ChangeLog-2006 /usr/share/doc/coreutils-8.23 cp -va ChangeLog-2007 /usr/share/doc/coreutils-8.23 cp -va ChangeLog-2008 /usr/share/doc/coreutils-8.23 cp -va INSTALL /usr/share/doc/coreutils-8.23 cp -va NEWS /usr/share/doc/coreutils-8.23 cp -va README /usr/share/doc/coreutils-8.23 cp -va THANKS /usr/share/doc/coreutils-8.23 cp -va THANKS-to-translators /usr/share/doc/coreutils-8.23 cp -va TODO /usr/share/doc/coreutils-8.23 cp -va doc/ChangeLog-2007 /usr/share/doc/coreutils-8.23
最後に、インストールリストを生成します。
/sources/genpostlist.sh > /dev/null 2>&1 /sources/gendifflist.sh coreutils