Instalación de Coreutils-5.0

Tiempo estimado de construcción:		0.9 SBU
Estimación del espacio necesario en disco:	69 MB

Contenido de Coreutils

El paquete Coreutils contiene un completo conjunto de utilidades básicas para el intérprete de comandos.

Programas instalados: basename, cat, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, hostid, hostname, id, install, join, kill, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, sort, split, stat, stty, su, sum, sync, tac, tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq, unlink, uptime, users, vdir, wc, who, whoami y yes

Dependencias de instalación de Coreutils

Coreutils depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.

Instalación de Coreutils

Normalmente, el comando uname no funciona como debiera, ya que la opción -p siempre devuelve "unknown" (desconocido). Este parche corrige su funcionamiento en arquitecturas Intel:

patch -Np1 -i ../coreutils-5.0-uname.patch

No queremos que Coreutils instale su versión de hostname, pues es inferior a la versión suministrada por Net-tools. Evita su instalación aplicando este parche:

patch -Np1 -i ../coreutils-5.0-hostname-2.patch

Prepara Coreutils para su compilación:

./configure --prefix=/usr

Compila el paquete:

make

El programa su de Coreutils no se instaló en el Capítulo 5 debido a que necesita privilegios de root. Vamos a necesitarlo dentro de unos momentos para el banco de pruebas. Así que solucionemos el problema instalándolo ahora:

make install-root

Este paquete contiene un banco de pruebas que puede realizar una serie de comprobaciones para asegurar que se ha construido correctamente. Sin embargo, este banco de pruebas en particular hace ciertas suposiciones relativas a la presencia de usuarios y grupos que no sean root y que no son de aplicación en esta temprana fase de la construcción de LFS. Por tanto crearemos un usuario del sistema ficticio y dos grupos ficticios para permitir que las pruebas se realicen correctamente. Si decides no ejecutar el banco de pruebas, salta hasta "Instala el paquete". Los siguientes comandos harán los preparativos para el banco de pruebas. Crea dos grupos y un nombre de usuario ficticios:

echo "dummy1:x:1000" >> /etc/group
echo "dummy2:x:1001:dummy" >> /etc/group
echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd

Algunas pruebas requieren que se ejecuten como root:

make check-root

El resto de las pruebas se ejecutan como usuario dummy:

su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"

Elimina los grupos y el nombre de usuario ficticios:

sed -i.bak '/dummy/d' /etc/passwd /etc/group

Instala el paquete:

make install

Mueve algunos programas a sus ubicaciones adecuadas:

mv /usr/bin/{basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
mv /usr/bin/{dir,dircolors,du,date,echo,false,head} /bin
mv /usr/bin/{install,ln,ls,mkdir,mkfifo,mknod,mv,pwd} /bin
mv /usr/bin/{rm,rmdir,shred,sync,sleep,stty,su,test} /bin
mv /usr/bin/{touch,true,uname,vdir} /bin
mv /usr/bin/chroot /usr/sbin

Finalmente, crea algunos enlaces necesarios:

ln -s test /bin/[
ln -s ../../bin/install /usr/bin