Linux From Scratch: Versión 5.0 | ||
---|---|---|
Anterior | Capítulo 6. Instalación de los programas del sistema base | Siguiente |
Tiempo estimado de construcción: 0.9 SBU Estimación del espacio necesario en disco: 69 MB |
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
Coreutils depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.
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 |