El resto del software básico que formará parte de nuestro sistema se instalará en esta sección. Si bien no todos los programas son necesarios se recomienda tenerlos instalados
configuremakeCuando compilo me aparece este error: mke2fs.c:142:SCSI_DISK_MAJOR not defined. Lo he solucionado de la siguiente forma:
misc/mke2fs.c y busca la primera aparición
de SCSI_DISK_MAJORPor favor, daros cuenta de que no tengo ni idea de que puede hacer esto si estás utilizando discos SCSI, pero me imagino que nada bueno. Como yo uso discos IDE este cambio no me afecta en absoulto. Si en tu caso hay discos SCSI de por medio, la solución depende de ti. Lo siento, pero no tengo ni idea de como arreglar esto. A lo mejor este problema ni siquiera aparece cuando usas discos SCSI.
make installVamos a crear un script de arranque llamado checkroot, que se encargará de chequear el sistema de ficheros raíz con fsck cada vez que arranquemos nuestro sistema LFS.
/etc/init.d/checkroot con lo siguiente:
#!/bin/sh
# Begin /etc/init.d/checkroot
echo "Activando área de intercambio (swap)..."
/sbin/swapon -av
if [ -f /fastboot ]
then
echo "Arranque rápido, sin chequeo del sistema de archivos"
else
mount -n -o remount,ro /
if [ $? = 0 ]
then
if [ -f /forcecheck ]
then
force="-f"
else
force=""
fi
echo "Chequeando sistema de ficheros raíz..."
fsck $force -a /
if [ $? -gt 1 ]
then
echo
echo "fsck ha fallado. Repare sus sistema de ficheros manualmente"
echo "ejecutando fsck sin la opción -a"
echo "Por favor, tenga en cuenta que el sistema de ficheros está"
echo "montado en modo sólo lectura."
echo "
echo "Voy a arrancar sulogin ahora. CTRL+D reiniciará el sistema."
/sbin/sulogin
/reboot -f
fi
else
echo "No se puede chequear el sistema de ficheros porqué está montado"
echo "en modo sólo lectura."
fi
fi
# End /etc/init.d/checkroot
/etc/init.d/umounts y pon estas líneas como primeras instrucciones
(bajo la línea "# Begin /etc/init.d/umountfs")
echo "Desactivando swap..." /sbin/swapoff -av
chmod 755 /etc/init.d/checkrootcd /etc/rcS.d; ln -s ../init.d/checkroot
S05checkroot
configuremakemake install
configuremakemake install
configuremake CC=/usr/gcc2723/bin/gccmake installEste paquete sólo se usa, según tengo entendido, para instalar Lilo. Una vez instalado puedes borrar los dos programas, as86 y ld86.
makeas86makeld86
makemake install
/etc/lilo.conf desde tu sistema Linux normal al
directorio /etc del sistema LFS
/boot
de tu sistema normal Linux al directorio /boot del sistema LFSNo vamos a instalar el administrador de paquetes de Debian, sino un pequeño programa incluido en este paquete que permite arrancar y parar demonios. Este programa es muy útil en scripts de arranque, por lo que lo usaremos en nuestro nuevo sistema.
make start-stop-daemonstart-stop-daemonstart-stop-daemon.8
make CC=/usr/gcc2723/bin/gccmake INSTALL=/bin/install install
/etc/syslog.conf con lo siguiente:
#!/bin/sh # Begin /etc/syslog.conf auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog daemon.* /var/log/daemon.log kern.* /var/log/kern.log mail.* /var/log/mail.log user.* /var/log/user.log mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err *.=info;*.=notice;*.=warn; \ auth,authpriv.none; \ daemon.none;mail -/var/log/messages *.emerg * # End /etc/syslog.conf
/etc/init.d/sysklogd con lo siguiente:
#!/bin/sh
# Begin /etc/init.d/sysklogd
test -f /usr/sbin/klogd || exit 0
test -f /usr/sbin/syslogd || exit 0
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "ERROR"
fi
}
case "$1" in
start)
echo -n "Arrancando demonio del diario del sistema..."
start-stop-daemon -S -q -o -x /usr/sbin/syslogd -- -m 0
check_status
echo -n "Arrancando demonio del diario del kernel..."
start-stop-daemon -S -q -o -x /usr/sbin/klogd
check_status
;;
stop)
echo -n "Deteniendo demonio del diario del kernel..."
start-stop-daemon -K -q -o -p /var/run/klogd.pid
check_status
echo -n "Deteniendo demonio del diario del sistema..."
start-stop-daemon -K -q -o -p /var/run/syslogd.pid
check_status
;;
reload)
echo -n "Cargando de nuevo el fichero de configuración del demonio de carga del sistema..."
start-stop-daemon -K -q -o -s 1 -p /var/run/syslogd.pid
check_status
;;
restart)
echo -n "Deteniendo demonio del diario del kernel..."
start-stop-daemon -K -q -o -p /var/run/klogd.pid
check_status
echo -n "Deteniendo demonio del diario del sistema..."
start-stop-daemon -K -q -o -p /var/run/syslogd.pid
check_status
sleep 1
echo -n " Arrancando demonio del diario del sistema..."
start-stop-daemon -S -q -o -x /usr/sbin/syslogd -- -m 0
check_status
echo -n " Arrancando demonio del diario del kernel..."
start-stop-daemon -S -q -o -x /usr/sbin/klogd
check_status
;;
*)
echo Usage: $0 {start|stop|reload|restart}
exit 1
;;
esac
# End /etc/init.d/sysklogd
chmod 755 /etc/init.d/sysklogd
cd /etc/rc2.d; ln -s ../init.d/sysklogd S03sysklogd cd ../rc6.d; ln -s ../init.d/sysklogd K90sysklogd cd ../rc0.d; ln -s ../init.d/sysklogd K90sysklogd
configuremakemake install
configuremakemake install
make install
make CC=/usr/gcc2723/bin/gccmake install
makemake installEste paquete contiene utilidades para modificar contraseñas, añadir usuarios y grupos, borrarlos, etc... No voy a explicar el significado de 'password shadowing' (ocultación de contraseñas). Puedes leer todo lo referente a esto en el doc/HOWTO correspondiente. Ten presente una cosa si decides usar las shadow passwords: los programas que necesiten verificar contraseñas (xdm, ftp, demonios, etc...) deben ser compatibles con shadow passwords.
Si decides no utilizarlas (una vez que hayas leído el doc/HOWTO) necesitarás igualmente instalar este paquete, ya que las utilidades que contiene también se utilizan en sistemas que no usan este tipo de contraseñas. De todas formas puedes cambiar entre unas y otras cuando quieras.
configuremakemake installlimits login.access
login.defs.linux shells suauth/etc/login.defs.linux to /etc/login.defsNow is a very good moment to read section #5 of the doc/HOWTO file. You can read how you can test if shadowing works and if not, how to disable it. If it doesn't work and you haven't tested it, you'll end up with an unusable system after you logout of all your consoles, since you won't be able to login anymore. You can easily fix this by passing the init=/sbin/sulogin parameter to the kernel, Descomprime el archivo util-linux archive, Ve al directorio login-utils directory, build the login program and replace the /bin/login by the one in the util-linux package. Things are never hopelessly messed up, but you can avoid a hassle by testing properly and reading manuals ;)
configuremakeThe installation by running make install right now will fail because it can't find all the header files that need to be copied to /usr/include/g++-v3. The thing is, the installation script tries to find the files in de src/bits src/shadow src/ext and src/backwards directories. The files are actually in de bits, shadow, ext and backwards directories in de top-level directory. I don't know who to blame; the make program, or the Makefile file. Either way, by making a few symlinks and copying some extra header files to a different directory the installation will finish properly.
To setup up the directories and file in such a way that the Makefile script can find them, execute the following commands from within the src directory:
ln -s ../bits bits ln -s ../backward backward ln -s ../ext ext ln -s ../shadow shadow cp ../stl/bits/* bits cp ../stl/backward/* backward cp ../stl/ext/* ext
Now that the files are in a place where they can be found during make install, we can proceed with this step.
make install