Más Allá de Linux From Scratch

Versión 1.0

BLFS , Equipo de Desarrollo

Traducido por el proyecto LFS-ES http://www.escomposlinux.org/lfs-es

Versión de la traducción: FINAL del 20 de mayo de 2003

Copyright (c) 2002-2003, Proyecto LFS-ES

El presente texto se distribuye bajo la Licencia GNU de documentación libre (GFDL). Para todo aquello no especificado en dicha licencia es de aplicación las condiciones de uso del documento original en el que se basa esta traducción, y que se citan a continuación.

Copyright (c) 2001-2003, BLFS Development Team

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions in any form must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Neither the name of "Linux From Scratch" nor the names of its contributors may be used to endorse or promote products derived from this material without specific prior written permission.

  • Any material derived from Linux From Scratch must contain a reference to the "Linux From Scratch" project.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



Dedicatoria

Este libro está dedicado a la comunidad LFS

Índice
Prólogo
Prefacio
Quién querría leer este libro
Organización
Parte I - Introducción
Parte II - Configuración Posterior a LFS y Software Adicional
Parte III - Librerías y Utilidades Generales
Parte IV - Conectarse a una Red
Parte V - Entorno de Red Básico
Parte VI - Servidores de Red
Parte VII - Servidores de Contenido
Parte VIII - X + Administradores de Ventanas
Parte IX - KDE
Parte X - Gnome
Parte XI - Programas para las X
Parte XII - Multimedia
Parte XIII - Impresoras, Escáneres y Generadores de documentos
Apéndices
I. Introducción
1. Bienvenido a BLFS
Convenciones usadas en este libro
Versión del libro
Agradecimientos
Créditos
Historial de modificaciones
¿Qué secciones del libro quiero?
Listas de correo y archivos
Servidor de noticias
Información de contacto
Buscando ayuda y las FAQ
2. Información Importante
Conseguir y desempaquetar el software
El debate /usr frente a /usr/local
Usar los guiones de arranque de BLFS
Ir Más Allá del BLFS
II. Configuración posterior a LFS y Software Adicional
3. Configuración posterior al LFS
/etc/issue (Personalizar tu entrada al sistema)
Los ficheros de inicio de Bash
/etc/inputrc
Generación de números aleatorios
/etc/vimrc, ~/.vimrc
Creación de un disquete de arranque personalizado
/etc/skel
4. Seguridad
Configuración de shadow
iptables-1.2.7a
Configuración de un cortafuegos
tripwire-2.3.1-2
Linux_PAM-0.77
5. Sistemas de ficheros
Ext3
reiserfs-3.6.5
xfsprogs-2.0.3
6. Editores
vim-6.1
emacs-21.3
nano-1.2.0
joe-2.9.7
7. Intérpretes de comandos
tcsh-6.12
zsh-4.0.6
III. Librerías y Utilidades Generales
8. Librerías Generales
openssl-0.9.7a
pcre-4.1
popt-1.7
slang-1.4.9
fam-2.6.9
libxml-1.8.17
libxml2-2.5.6
libxslt-1.0.29
readline-4.3
gmp-4.1.2
gdbm-1.8.3
GLib-1.2.10
GLib-2.2.1
expat-1.95.6
libesmtp-0.8.12
aspell-0.50.3
guile-1.4.1
slib-2d5
G-Wrap-1.3.4
STLport-4.5.3
9. Librerías Gráficas
lcms-1.09
libjpeg-6b
libpng-1.2.5
libtiff-3.5.7
libungif-4.1.0b1
libmng-1.0.5
imlib-1.9.14
aalib-1.4rc4
10. Utilidades Generales
bc-1.06
rep-gtk-0.17
11. Utilidades del Sistema
gpm-1.20.1
fcron-2.9.3
hdparm-5.3
which-2.14 y alternativas
unzip-5.50
zip-2.3
pciutils-2.1.10
pkgconfig-0.15.0
cpio-2.5
12. Programación
Python-2.2.2
Módulos de Perl
librep-0.16.2
j2sdk-1.4.1
ruby-1.6.8
gcc-3.2.1
gcc-2.95.3
IV. Conectarse a una red
13. Entorno de Red por Marcado Telefónico (Dial-Up)
ppp-2.4.1
wvdial-1.53
14. Clientes DHCP
Configuración de los guiones de arranque de LFS para soportar clientes DHCP
dhcp-3.0pl2
dhcpcd-1.3.22-pl4
15. Otros
V. Entorno de Red básico
16. Librerías para trabajo en Red
curl-7.10.4
wvstreams-3.70
gnet-1.1.8
17. Navegadores Web en modo texto
links-0.98
lynx-2.8.4
w3m-0.3.2.1
18. Programas Básicos para Trabajo en Red
ncftp-3.1.5
Cliente OpenSSH-3.6.1p1
cvs-1.11.5
wget-1.8.2
tcpwrappers-7.6
portmap-5
inetutils-1.4.2
19. Utilidades Básicas para el trabajo en Red
traceroute-1.4a12
nmap-3.20
whois-4.6.3
20. Programas de Trabajo en Red básicos
procmail-3.22
fetchmail-6.2.2
mutt-1.4.1i
pine-4.53
slrn-0.9.7.4
Otros programas de correo y noticias
21. Utilidades DJB
daemontools-0.76
daemontools-man-0.76
ucspi-tcp-0.88
VI. Servidores de Red
22. Servidores de Correo
postfix-2.0.7
qmail-1.03
sendmail-8.12.9
exim-4.14
qpopper-4.0.5
23. Otros servidores
BIND 9.2.2
Ejecutar un servidor CVS
dhcp-3.0pl2
leafnode-1.9.33
OpenSSH-3.6.1p1
openldap-2.1.17
Samba-2.2.8a
xinetd-2.3.10
VII. Servidores de Contenidos
24. Bases de Datos
db-4.1.25
db-3.3.11
MySQL-3.23.55
PostgreSQL-7.3.2
25. Servicios de Web
Apache-1.3.27
VIII. X + Administradores de Ventanas
26. Instalación de las X
XFree86-4.3.0
Configuración de los componentes de XFree86
27. Librerías X
lesstif-0.93.36
freetype-2.1.3
qt-3.1.2
GTK+-1.2.10
Pango-1.2.1
ATK-1.2.0
GTK+-2.2.1
startup-notification-0.5
28. Administradores de Ventanas
sawfish-1.3
fluxbox-0.1.14
xfce-3.8.18
metacity-2.4.34
IX. KDE
29. Paquetes Base de KDE
aRts-1.1
kdelibs-3.1
kdebase-3.1
Configuración de los paquetes base de KDE
30. Paquetes KDE Adicionales
kdemultimedia-3.1
kdenetwork-3.1
kdegraphics-3.1
kdepim-3.1
kdeadmin-3.1
kdegames-3.1
kdeutils-3.1
kdeedu-3.1
kdeartwork-3.1
kdetoys-3.1
kdeaddons-3.1
31. Otros Paquetes KDE
kdoc
X. Gnome
32. Librerías Gnome
Configuración previa a la instalación
gtk-doc-1.0
linc-1.0.1
libIDL-0.8.0
ORBit2-2.6.1
intltool-0.25
bonobo-activation-2.2.1.1
libbonobo-2.2.1
GConf-2.2.0
gnome-mime-data-2.2.0
gnome-vfs-2.2.3
libgnome-2.2.0.1
libart_lgpl-2.3.11
libglade-2.0.1
libgnomecanvas-2.2.0.2
libbonoboui-2.2.0.1
gnome-icon-themes-1.0.1
libgnomeui-2.2.0.1
libwnck-2.2.1
gtk-engines-2.2.0
gtk-thinice-engine-2.0.2
gnome-themes-2.2.1
scrollkeeper-0.3.11
vte-0.10.26
libgtop-2.0.1
gail-1.2.0
at-spi-1.1.8
libgail-gnome-1.0.2
librsvg-2.2.4
eel-2.2.2
libgtkhtml-2.2.1
libgnomeprint-2.2.1.2
libgnomeprintui-2.2.1.2
33. Gnome base
gnome-desktop-2.2.1
gnome-panel-2.2.1
gnome-session-2.2.1
control-center-2.2.1
34. Paquetes adicionales de Gnome
gnome-terminal-2.2.1
gnome-system-monitor-2.0.4
gnome-applets-2.2.1
gnome-utils-2.2.1
gnome-games-2.2.0
nautilus-2.2.2
yelp-2.2.0
bug-buddy-2.2.103
gedit-2.2.1
eog-2.2.1
gstreamer-0.6.0
gst-plugins-0.6.0
gnome-media-2.2.1.1
nautilus-media-0.2.1
gnome2-user-docs-2.0.6
35. Otros Paquetes de Gnome
gconf-editor-0.4.0
gdm-2.4.1.3
36. Configuración de Gnome
Configuración de los paquetes básicos de GNOME
37. Librerías de Gnome 1.4
Configuración previa a la instalación
ORBit-0.5.17
oaf-0.6.10
gnome-libs-1.4.2
gdk-pixbuf-0.22.0
GConf-1.0.9
gnome-vfs-1.0.5
gnome-print-0.37
libglade-0.17
libcapplet-1.5.11
gal-0.22
gtkhtml-1.1.7
libghttp-1.0.9
bonobo-1.0.22
guppi-0.40.3
bonobo-conf-0.16
soup-0.7.4
XI. Programas para las X
38. Programas de Oficina Individuales
AbiWord-1.0.4
gnumeric-1.0.12
gnucash-1.8.2
gimp-1.2.3
evolution-1.2.1
39. Paquetes de oficina
koffice-1.2.1
openoffice-1.0.2
40. Navegadores Gráficos
mozilla-1.3
galeon-1.3.3
konqueror-3.1
41. Otros Programas de Internet basados en las X
pan-0.13.4
Balsa-2.0.10
XII. Multimedia
42. Controladores y Librerías Multimedia
alsa-0.9.2
alsa-driver-0.9.2
alsa-lib-0.9.2
alsa-utils-0.9.2
alsa-tools-0.9.1
alsa-oss-0.9.1
aRts-1.1
audiofile-0.2.3
esound-0.2.29
SDL-1.2.5
libao-0.8.3
libogg-1.0
libvorbis-1.0
nas-1.6
43. Utilidades de sonido
mpg123-0.59r
vorbistools-1.0
xmms-1.2.7
lame-3.93.1
CDParanoia-III-9.8
44. Utilidades de Vídeo
xvid-0.9.1
ffmpeg-0.4.6
avifile-0.7.34
MPlayer-0.90
xine-lib-1-beta9
xine-ui-0.9.19
transcode-0.6.2
45. Utilidades para grabar CDs
Configuración del núcleo para grabar CDs
cdrtools-2.0
cdrdao-1.1.7
XIII. Impresoras, Escáneres y Generadores de Documentos
46. Impresión
cups-1.1.18
Ghostscript-8.00
Ghostscript-7.05.5
LPRng-3.8.20
47. Escáneres
sane-1.0.9
xsane-0.90
48. Lenguaje de Marcas Estándar Generalizado (SGML)
sgml-common-0.6.3
sgml-dtd-3.1
sgml-dtd-4.2
OpenSP-1.5
OpenJade-1.3.2
docbook-dsssl-1.78
49. Lenguaje de Marcas Extensible (XML)
xml-dtd-4.2
docbook-xsl-1.60.1
50. Postscript
a2ps-4.13b
enscript-1.6.1
gsview-4.3
psutils-p17
xpdf-2.02
51. Generación de Documentos
tex-2.0.2
XIV. Apéndices
A. Listado de los enlaces simbólicos en rc?.d usados en LFS/BLFS
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
B. Instalar en una localización no estándar
Lista de tablas
4-1. Opciones de configuración esenciales para un núcleo con la función de cortafuegos activada
4-2. Traducción de las opciones del núcleo
A-1. Enlaces simbólicos en rc0.d
A-2. Enlaces simbólicos en rc1.d
A-3. Enlaces simbólicos en rc2.d
A-4. Enlaces simbólicos en rc3.d
A-5. Enlaces simbólicos en rc4.d
A-6. Enlaces simbólicos en rc5.d
A-7. Enlaces simbólicos en rc6.d

Prólogo

Prefacio

Mientras ayudaba con LinuxFromScratch por algún tiempo, noté que estábamos recibiendo muchas preguntas sobre cómo hacer cosas más allá del sistema LFS base. Por aquellas fechas, la única ayuda expresamente ofrecida relacionada con LFS eran las recetas LFS (http://hints.linuxfromscratch.org, en inglés. Hay un buen número de ellas traducidas al castellano en http://www.escomposlinux.org/lfs-es/recetas). La mayoría de las recetas LFS son sumamente buenas y están bien escritas, pero yo (y otros) pudimos ver todavía una necesidad de una ayuda más amplia para ir Más Allá de LFS - de aquí el nombre de BLFS (Beyond LFS).

BLFS pretende ser más que las recetas LFS convertidas a XML, aunque mucho de nuestro trabajo está basado en las recetas y, en efecto, algunos autores escriben tanto las recetas como las secciones de BLFS pertinentes. Esperamos poder proporcionarte suficiente información, no sólo para lograr construir tu sistema hasta donde quieras, ya sea un servidor web o un ordenador multimedia, sino también para que aprendas mucho sobre la configuración del sistema mientras lo haces.

Las gracias, como siempre, van dirigidas a todos los miembros de la comunidad LFS/BLFS, especialmente a aquellos que han aportado instrucciones, escrito el texto, contestado preguntas y, en general, ¡gritado cuando las cosas han ido mal!

Finalmente, te animamos a implicarte en la comunidad; pregunta en la lista de correo o en la pasarela de noticias y únete a la diversión en #lfs en irc.linuxfromscratch.org. Encontrarás más detalles sobre todo esto en la sección Introducción del libro.

Diviértete utilizando BLFS.

Mark Hymers <markh@linuxfromscratch.org> Editor del BLFS (Julio de 2001 - Marzo de 2003)


Organización

Este libro se divide en las siguientes partes.


Capítulo 1. Bienvenido a BLFS

El libro Más Allá de LinuxFromScratch está pensado para conducirte a partir del punto en el que el libro LFS te deja. A diferencia del libro LFS, no está diseñado para seguirse de forma correlativa. La lectura de ¿Qué secciones del libro quiero?, que es parte de este capítulo, debería servirte de guía a través del libro.

Por favor, lee esta parte del libro cuidadosamente, pues explica muchas de las convenciones usadas a lo largo del mismo.


Versión del libro

Este es el BLFS-BOOK versión 1.0 con fecha 25 de abril de 2003. Si esta versión tiene más de un mes, posiblemente se encuentre ya disponible para descargar una nueva versión. Comprueba uno de los servidores alternativos listados a continuación para obtener las versiones actualizadas.

A continuación hay una lista de los servidores alternativos HTTP y FTP a 29 de Septiembre de 2002. Esta lista puede no estar al día. La información más reciente puedes encontrarla en nuestro sitio web: http://beyond.linuxfromscratch.org.


Agradecimientos

Agradecemos a las siguientes personas y organizaciones su contribución al proyecto LFS-ES:

  • Gerard Beekmans, por crear el apasionante proyecto Linux From Scratch.

  • El equipo del BLFS, por su incansable trabajo en la ampliación y mejora del número de paquetes incluidos en el BLFS-Book.

  • Red ECOLNET, por prestarnos su apoyo incondicional desde el primer momento y facilitarnos los servicios de CVS, listas de correo y espacio web, que tan vitales son para realizar nuestro trabajo.

  • A todos aquellos que leen nuestros textos con interés, pues es para ellos para quienes los escribimos.

Queremos dar las gracias a las siguientes personas y organizaciones por su contribución a los proyectos BLFS y LFS:

  • Todas aquellas personas listadas en la página Créditos, por proporcionar parches, instrucciones y correciones al libro. El editor actual quiere agradecer especialmente a Bruce, Larry y Billy su enorme impulso al proyecto.

  • Mark Stone <mstone@linux.com> por donar los servidores para linuxfromscratch.org.

  • Gerard Beekmans <gerard@linuxfromscratch.org> por iniciar y escribir gran parte del proyecto LFS.

  • Jesse Tie-Ten-Quee <highos@linuxfromscratch.org> por responder muchas cuestiones en el irc, demostrando mucha paciencia, y ¡por no matar al editor actual por el chiste en el anuncio original del BLFS!

  • DREAMWVR.COM por su actual patrocinio mediante la donación de varios recursos al LFS y subproyectos relacionados.

  • Robert Briggs por donar los nombres de dominio linuxfromscratch.org y linuxfromscratch.com.

  • Frank Skettino <bkenoah@oswd.org> en OSWD por hacer los diseños iniciales de los sitios web de LFS y BLFS.

  • Garrett LeSage <garrett@linux.com> por crear el logotipo de LFS.

  • Jeff Bauman (anterior coeditor del libro) por su ayuda para conseguir que el BLFS saliera a la luz.

  • Muchas otras personas en las listas de correo de LFS y BLFS que han hecho posible este libro mediante sus sugerencias, probándolo y enviando informes de errores.


Créditos

Mucha gente ha contribuido directa o indirectamente al BLFS. Esta página enumera todos los que recordamos. Puede que hayamos olvidado a alguien y si te encuentras en esta situación, mándanos una línea. Muchas gracias a toda la comunidad LFS por su apoyo a este proyecto. Si estás en la lista y deseas que se incluya tu dirección de correo, por favor, manda igualmente una línea a larry@linuxfromscratch.org y estaremos felices de incluirla. No incluimos direcciones de correo por defecto, así que si quieres que se incluya indícalo, por favor, cuando contactes con nosotros.


Editores


Autores de las Instrucciones de Instalación


Reconocimientos Generales


Historial de modificaciones

Por favor, ten en cuenta que el historial de modificaciones sólo refleja qué editor fue el responsable de poner los cambios en el CVS. Lee en la página de Créditos en el Capítulo 1 los detalles de quién escribió qué.

1.0 - 25 de abril de 2003

0.99.2 - 22 de abril de 2003

0.99.1 - 16 de Abril de 2003


¿Qué secciones del libro quiero?

A diferencia del libro LinuxFromScratch, BLFS no está diseñado para seguirlo de forma lineal. Esto es porque LFS facilita instrucciones sobre cómo crear un sistema base que es capaz de convertirse en cualquier cosa, desde un servidor web hasta un sistema de escritorio multimedia. En BLFS intentamos guiarte en el camino que hay del sistema base al destino deseado, por eso la elección está mucho más involucrada.

Todo el que lea el libro querrá leer ciertas secciones. La parte Introducción - que estás leyendo en este momento - contiene información genérica. Toma especial nota de lo que se dice en Información Importante (Capítulo 2), pues contiene comentarios sobre cómo desempaquetar el software y otros aspectos varios que se aplican a lo largo del libro.

La parte Configuración posterior al LFS y Software adicional es por la que muchos querreis continuar. No trata sólo de configuración, también de Seguridad (Capítulo 4), Sistemas de Ficheros (Capítulo 5), Editores (Capítulo 6) e Intérpretes de Comandos (Capítulo 7). De hecho, puede que desees consultar ciertas partes de este capítulo (sobre todo las secciones de Editores y Sistemas de Ficheros) mientras construyes tu sistema LFS.

Siguiendo los temas básicos, muchos querreis navegar al menos por la parte Librerías y Utilidades Generales del libro. Esta parte contiene información sobre muchos elementos que son prerrequisitos para otras secciones del libro, al igual que cuestiones (como Programación (Capítulo 12) que son útiles por derecho propio. Advierte que no tienes que instalar necesariamente todas las librerías y paquetes que encuentres en esta parte. Cada proceso de instalación del BLFS te indica de qué paquetes depende para que puedas elegir el programa que quieres instalar y ver lo que necesita.

Igualmente, muchos posiblemente querreis mirar las partes Conectarse a una Red y Entorno de Red básico. La primera trata sobre la conexión a Internet o a tu LAN local utilizando una variedad de métodos como DHCP (Capítulo 14) y Conexión por Marcado (Capítulo 13). La segunda trata de temas como Librerías para el Entorno de Red (Capítulo 16) y varios programas y utilidades básicas para el trabajo en red.

Una vez que hayas terminado con estas cuestiones básicas, puede que quieras configurar servicios de red más avanzados. Esto se cubre en las partes Servidores de Red y Servidores de Contenido del libro. Quien quiera construir servidores encontrará aquí suficiente información como punto de partida. Ten en cuenta que Servidores de Contenido también contiene información sobre varios paquetes de bases de datos.

Las siguientes partes del libro tratan, principalmente, de los sistemas de escritorio. Comenzamos con una parte que habla sobre X y Administradores de Ventanas. Esta parte también trata algunas librerías genéricas basadas en las X (Capítulo 27). A continuación, KDE y Gnome tienen sus propias partes, a las que sigue Programas para las X.

Entonces nos movemos para tratar sobre los paquetes Multimedia. Advertimos que muchos querreis utilizar las instrucciones de alsa-0.9.2 de este capítulo al principio de vuestro viaje por el BLFS. Están aquí simplemente porque es el sitio más lógico.

La parte final del libro BLFS trata sobre Impresoras, Escáneres y Generadores de Documentos. Eso es útil para aquellos con sistemas de escritorio, y también los que esteis creando sistemas servidores lo encontrareis útil.

Finalmente, los Apéndices contienen varias piezas de información útil que puedes necesitar como referencia.

Esperamos que te diviertas usando BLFS y lo encuentres útil.


Listas de correo y archivos

El servidor linuxfromscratch.org hospeda las siguientes listas de correo de acceso público:


Otros modos de las listas

Para que el usuario active los distintos modos de uso debe enviar un mensaje a listar@linuxfromscratch.org. Los modos de uso se establecen poniendo el comando apropiado como asunto del mensaje.

El comando Set indica que se activa un modo de uso. El comando Unset indica que se desactiva un modo de uso.

La palabra "nombre_de_la_lista" en los asuntos de ejemplo mostrados a continuación debe reemplazarse con el nombre de la lista a la que se desea aplicar ese modo de uso. Si se necesita activar en un solo mensaje más de un modo de uso (en la misma lista o en varias listas) puede hacerse dejando el asunto en blanco y escribiendo los comandos en el cuerpo del mensaje.


Información de contacto

Por favor, dirige tus mensajes a una de las listas de correo de BLFS. Mira Listas de correo y archivos para más información sobre las listas de correo disponibles.

El actual coordinador de BLFS es Larry Lawrence. Si necesitas contactar con Larry, envía un mensaje a larry@linuxfromscratch.org.


Buscando ayuda y las FAQ

Si encuentras algún problema al usar este libro, y tu problema no está en las FAQ (http://www.escomposlinux.org/lfs-es/faq, el original en inglés se encuentra en http://www.linuxfromscratch.org/faq), verás que mucha gente en el Internet Relay Chat (IRC) y en las listas de correo estará encantada de ayudarte. Hay un resumen de las listas de correo del LFS en Listas de correo y archivos. Para ayudarnos a diagnosticar y resolver tu problema, incluye toda la información relevante que puedas en tu petición de ayuda.


Cosas que mencionar

Además de una breve explicación del problema que tienes, las cosas escenciales a incluir en tu petición son:

(Advierte que el hecho de haberte desviado del libro no significa que no te ayudemos. Simplemente nos sirve para ver qué otras cosas pueden dar lugar a tu problema.)

Espera recibir orientaciones en lugar de instrucciones específicas. Si se te indica que leas algo, por favor hazlo. Generalmente implica que la respuesta era demasiado obvia y que la pregunta no debería haberse realizado si se hubiese hecho una búsqueda antes de preguntar. Los voluntarios en la lista de correo prefieren no ser usados como una alternativa a hacer una búsqueda razonable por tu parte. Por otro lado, la calidad de tu experiencia con BLFS también aumenta con estas búsquedas, y la calidad de los voluntarios mejora debido a que no sienten que se abusa de su tiempo, por lo que están más dispuestos a participar.

Eric S. Raymond ha escrito un artículo excelente sobre cómo pedir ayuda en general en Internet. Está disponible en línea en http://www.catb.org/~esr/faqs/smart-questions.html. Léelo y sigue las pistas que se mencionan en el documento, de esa forma tendrás más posibilidades de obtener una respuesta y conseguir la ayuda que necesites.


Capítulo 2. Información Importante

Conseguir y desempaquetar el software

Aquellas personas que hayan construido un sistema LFS estarán familiarizados con los principios generales de la descarga y desempaquetado del software. Sin embargo, repetiremos aquí parte de esa información para aquellos que sean nuevos construyendo su propio software.

Una diferencia con el Libro LFS es que nosotros no replicamos los paquetes en el sitio web de BLFS. En su lugar, cada conjunto de instrucciones de instalación contiene una URL desde la que puedes descargar el paquete. Sin embargo, guardamos una selección de parches disponible por http/ftp. Estos se mencionan en las instrucciones de instalación cuando son necesarios.

Aunque puedes guardar los paquetes con las fuentes donde quieras, asumimos que los desempaquetas y descomprimas los parches necesarios en /usr/src.

Nunca podremos hacer suficiente hincapié en que debes comenzar con un árbol de fuentes limpio cada vez. Esto significa que, si tienes un error, usualmente es mejor borrar el árbol de las fuentes y volver a desempaquetarlo antes de probar de nuevo. Obviamente, esto no es aplicable si eres un usuario avanzado retocando los Makefiles y el código C, pero en caso de duda, comienza con un árbol limpio.


El debate /usr frente a /usr/local

¿Debería instalar XXX en /usr o en /usr/local?

Esta es una cuestión sin respuesta obvia para un sistema basado en LFS

En los sistemas Unix tradicionales, /usr normalmente contiene los ficheros que vienen con la distribución, y el árbol /usr/local queda libre para que el administrador local añada cosas. En realidad, la única regla dura y rápida es que las distribuciones Unix no deberían tocar /usr/local, excepto, por supuesto, para crear los directorios básicos que contiene.

Con las distribuciones Linux, como RedHat, Debian, etc. una posible regla es que /usr está manejado por el sistema de paquetes de la distribución, y /usr/local no. De este modo, la base datos del administrador de paquetes conoce cada fichero que se encuentra en /usr.

Los usuarios de LFS construyen su propio sistema, y por eso decidir dónde termina el sistema y comienzan los ficheros locales no es sencillo. Por tanto debe hacerse la elección para que las cosas sean más fáciles de administrar. Hay varias razones para dividir los ficheros entre /usr y /usr/local.

Algunas personas preguntan: ¿por qué no usar su propio árbol de directorios, por ejemplo /usr/site, en lugar de /usr/local?

Nada te lo impide, muchos sitios crean sus propios árboles, sin embargo esto complica la instalación de nuevo software. Los instaladores automáticos con frecuencia buscan las dependencias en /usr y /usr/local, y si el fichero que buscan se encuentra en /usr/site el instalador seguramente falle hasta que le especifiques en dónde debe mirar.

¿Cuál es la postura de BLFS sobre esto?

Todas las instrucciones del BLFS instalan los programas en /usr a menos que se especifique otra cosa. Hay ejemplos en los que ciertos ficheros son colocados en la jerarquía /usr/local, pero están documentados y, generalmente, es por una buena razón. Estas excepciones deberían estar bien documentadas en el libro. Si encuentras alguna que no lo esté, por favor ¡dínoslo!


Usar los guiones de arranque de BLFS

Los guiones incluidos para los paquetes como gpm-1.20.1 y alsa-0.9.2 están basados en la plantilla suministrada con el paquete lfs-bootscripts de la versión 3.2 y posteriores del Libro LFS. Ten en cuenta que se trata de lfs-bootscripts-1.6 y posteriores (la vieja numeración cambió a partir del LFS-3.2). Estos guiones no funcionarán con versiones del LFS anteriores a la 3.2 debido a un cambio en la organización de los nuevos guiones. Sin embargo, debería ser trivial adaptar los guiones si se necesitan para una versión antigua del LFS.


Ir Más Allá del BLFS

Los paquetes que se instalan en este libro son sólo la punta del iceberg. Esperamos que la experiencia que obtengas con los libros LFS y BLFS te den el respaldo necesario para compilar, instalar y configurar aquellos paquetes que no se incluyen en este libro.

Si estás buscando un paquete que no se incluye en el libro, lo siguiente son diferentes caminos por los que puedes buscar dicho paquete.

Algunos consejos generales para el manejo de nuevos paquetes:

  • Muchos de los más nuevos paquetes siguen el baile de la rutina ./configure && make && make install. La ayuda sobre las opciones soportadas por configure se puede obtener mediante el comando ./configure --help.

  • Muchos de los paquetes contienen documentación sobre cómo compilarlo e instalarlo. Algunos de los documentos son excelentes, otros no tanto. Comprueba en la página oficial del paquete si hay consejos adicionales y actualizados para compilar y configurar el paquete.

  • Si tienes problemas para compilar un paquete, consulta si aparece el error en los archivos de lfs en http://search.linuxfromscratch.org/ y si esto falla prueba a buscarlo en Google. Si todo esto falla, inténtalo en la lista de correo/grupo de noticias de soporte del blfs.

Sugerencia: Si encuentras un paquete que sólo está disponible en formato .deb o .rpm, hay dos pequeños guiones rpm2targz y deb2targz, disponibles en http://www.linuxfromscratch.org/~tushar/downloads/, para convertir los archivos a formato tar.gz.


Capítulo 3. Configuración posterior al LFS

El propósito de LFS es proporcionar un sistema básico sobre el que puedas seguir construyendo. Hay varias cosas que mucha gente se pregunta sobre cómo poner en orden su sistema una vez tienen ya la instalación base. Esperamos cubrir estos asuntos en este capítulo.

La mayoría de la gente que llega a Linux desde una formación en Windows, encuentra algo extraño el concepto de ficheros de configuración sólo de texto. En Linux, casi toda la configuración se hace utilizando ficheros de texto. La mayoría de estos ficheros se pueden encontrar en la jerarquía /etc. A menudo, hay disponibles programas gráficos de configuración para distintos subsistemas, pero casi siempre son simples (pero agradables) frontales (frontends) del proceso de editar el fichero. La ventaja de la configuración utilizando sólo texto es que puedes editar los parámetros usando tu editor de texto favorito, ya sea vim, emacs o cualquier otro.


/etc/issue (Personalizar tu entrada al sistema)

Cuando inicies por primera vez tu nuevo sistema LFS, la pantalla de entrada al sistema será bien sencilla (como debe ser en un sistema esencial). Sin embargo, mucha gente querrá que su sistema muestre alguna información en el mensaje de entrada. Esto se puede conseguir utilizando el fichero /etc/issue.

El fichero /etc/issue es un fichero de texto plano que también aceptará algunas secuencias de Escape (ver más abajo) para insertar información sobre el sistema. Además existe el fichero issue.net que puede usarse cuando se ingresa en el sistema remotamente. Sin embargo, SSH sólo lo usará si estableces la opción en el fichero de configuración y, además, no interpretará las secuencias de escape que se describen más abajo.

Una de las cosas más comunes que la gente quiere hacer es borrar la pantalla en cada entrada al sistema. La forma más fácil de hacer eso es poner una secuencia de escape "clear" (borrar) en /etc/issue. Una forma simple de hacer esto es ejecutar clear > /etc/issue. Esto insertará el código de escape pertinente al principio del fichero /etc/issue. Advierte que, si haces esto, cuando edites el fichero, deberías dejar el carácter ^[c de la primera línea.

agetty (el programa que, normalmente, analiza /etc/issue) reconoce las siguientes secuencias de escape. Esta información proviene de man agetty, dónde puedes encontrar información adicional sobre el proceso de entrada al sistema.

El fichero issue puede contener ciertos códigos de escape para mostrar diferente información. Todos los códigos de escape consisten en una barra invertida (\) seguida de una de las letras que se explican más abajo (por lo que \d en /etc/issue insertaría la fecha actual).

b   Inserta la velocidad en baudios de la línea actual.
d   Inserta la fecha actual.
s   Inserta el nombre del sistema, el nombre del sistema operativo.
l   Inserta el nombre de la línea tty actual.
m   Inserta el identificador de la arquitectura de la máquina, i486 por ejemplo.
n   Inserta el nombre de nodo de la máquina, también conocido como
     nombre de máquina (hostname).
o   Inserta el nombre del dominio de la máquina.
r   Inserta la versión del núcleo, por ejemplo 2.4.16.
t   Inserta la hora actual.
u   Inserta el número de usuarios conectados en ese momento.
U   Inserta la cadena "1 user" o "<n> users" dónde <n> es el
     número de usuarios conectados en ese momento.
v   Inserta la versión del SO, por ejemplo la fecha de creación, etc.


Los ficheros de inicio de Bash

El intérprete de comandos /bin/bash (de aquí en adelante nos referiremos a él como "el intérprete") usa una colección de ficheros de inicio para ayudar a crear un entorno en el que ejecutarse. Cada fichero tiene un uso específico y puede afectar de manera diferente a entornos interactivos y de conexión.

Un intérprete interactivo de conexión se ejecuta después de una entrada al sistema correcta, mediante /bin/login, leyendo el fichero /etc/passwd. Un intérprete interactivo de no conexión se ejecuta mediante la línea de comandos (por ejemplo, [prompt]$/bin/bash). Un intérprete no interactivo está presente normalmente cuando se ejecuta un guión. Es no interactivo porque está procesando un guión y no está esperando a que el usuario introduzca un comando.

Para más información, consulta info bash -- Nodos: Bash Startup Files e Interactive Shells (Ficheros de inicio de Bash e Intérpretes Interactivos)

Se necesitan los siguientes ficheros para asegurarse que se lee el entorno correcto para cada una de las formas en que el intérprete puede ser invocado: /etc/profile, /etc/bashrc, ~/.bash_profile y ~/.bashrc. El fichero ~/.bash_logout no se usa para la invocación del intérprete. Es leído por este cuando un usuario sale del sistema. Los ficheros /etc/profile y ~/.bash_profile son leídos cuando se ejecuta un intérprete interactivo de conexión. El fichero ~/.bashrc es leído cuando se ejecuta un intérprete interactivo de no conexion.

Aquí se muestra un fichero /etc/profile básico. Los comentarios en el fichero deberían explicar todo lo que necesitas. Para más información de las secuencias de escape que puedes usar para el indicador del sistema (p.e la variable de entorno PS1) consulta info bash -- Nodo: Printing a Prompt.

# Inicio de /etc/profile
# Escrito para Más Allá de Linux From Scratch
# por James Robertson <jameswrobertson@earthlink.net>

# Variables de entorno del sistema y programas de inicio.

# Alias del sistema y funciones deberían estar en /etc/bashrc. Variables
# de entorno personales y programas de inicio deberían estar en
# ~/.bash_profile. Alias personales y funciones deberían estar en
# ~/.bashrc.

# Función para ayudarnos a manejar rutas
pathman () {
	if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
		if [ "$2" = "last" ] ; then
			PATH=$PATH:$1
		else
			PATH=$1:$PATH
		fi
	fi
}

# Añade a la ruta estándar.
if [ $(id -u) = 0 ] ; then
	if [ -d "/usr/local/sbin" ] ; then
		pathman /usr/local/sbin last
	fi
fi

if [ $(id -u) != 0 ] ; then
	if [ -d "/usr/local/bin" ] ; then
		pathman /usr/local/bin last
	fi
fi

if [ -d "/usr/X11R6/bin" ] ; then
	pathman /usr/X11R6/bin last
fi

# Define algunas variables de entorno.
HISTSIZE=1000
PS1="[\u@\h \w]\\$ "

# Define la variable de entorno INPUTRC.
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then
	INPUTRC=/etc/inputrc
fi

# Configuración de /bin/ls para soportar colores. Los alias están en /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
	eval $(dircolors -b /etc/dircolors)

	if [ -f "$HOME/.dircolors" ] ; then
		eval $(dircolors -b $HOME/.dircolors)
	fi
fi

export PATH HISTSIZE PS1 LS_COLORS INPUTRC

# Fin de /etc/profile

Aquí se muestra un fichero /etc/bashrc básico. Los comentarios en el fichero deberían explicar todo lo que necesitas.

# Inicio de /etc/bashrc 
# Escrito para Más Allá de Linux From Scratch 
# por James Robertson <jameswrobertson@earthlink.net>

# Alias del sistema y funciones.

# Variables de entorno del sistema y programas de inicio deberían estar en
# /etc/profile. Variables de entorno personales y programas de inicio deberían
# estar en ~/.bash_profile. Alias personales y funciones deberían estar en
# ~/.bashrc.

# Queremos configurar umask por defecto
# Incluso para intérpretes no interactivos y de no conexión.
if [ "$(id -gn)" = "$(id -un)" -a $(id -u) -gt 99 ] ; then
	umask 002
else
	umask 022
fi

# Proporciona un comando /bin/ls con colores. Usado junto con el código
# que está en /etc/profile.
alias ls='ls --color=auto'

# Fin de /etc/bashrc

Aquí se muestra un fichero ~/.bash_profile básico. Los comentarios en el fichero deberían explicar todo lo que necesitas.

# Inicio de ~/.bash_profile
# Escrito para Más Allá de Linux From Scratch 
# por James Robertson <jameswrobertson@earthlink.net>

# Variables de entorno personales y programas de inicio

# Alias personales y funciones deberían estar en ~/.bashrc. Variables de
# entorno del sistema y programas de inicio deberían estar en /etc/profile.
# Alias del sistema y funciones están en /etc/bashrc.

if [ -f "$HOME/.bashrc" ] ; then
	source $HOME/.bashrc
fi

if [ -d "$HOME/bin" ] ; then
	pathman $HOME/bin last
fi

export PATH 

# Fin de ~/.bash_profile

Aquí se muestra un fichero ~/.bashrc básico. Los comentarios en el fichero deberían explicar todo lo que necesitas.

# Inicio de ~/.bashrc
# Escrito para Más Allá de Linux From Scratch 
# por James Robertson <jameswrobertson@earthlink.net>

# Alias personales y funciones

# Variables de entorno personales y programas de inicio deberían estar en
# ~/.bash_profile.  Variables de entorno del sistema y programas de inicio
# están en /etc/profile.  Alias del sistema y funciones están en 
# /etc/bashrc. 

if [ -f "/etc/bashrc" ] ; then
	source /etc/bashrc
fi

# Fin de ~/.bashrc

Aquí se muestra un fichero ~/.bash_logout básico. Los comentarios en el fichero deberían explicar todo lo que necesitas. Comprobarás que el fichero ~/.bash_logout no incluye un comando clear. Esto es porque el borrado de la pantalla se indica en el fichero /etc/issue.

# Inicio de ~/.bash_logout
# Escrito para Más Allá de Linux From Scratch 
# por James Robertson <jameswrobertson@earthlink.net>

# Cosas que hacer cuando se salga del sistema.

# Fin de ~/.bash_logout

Si quieres usar los ficheros /etc/dircolors o ~/.dircolors llamándolos desde /etc/profile, entonces ejecuta lo siguiente: /bin/dircolors -p > /etc/dircolors o /bin/dircolors -p > ~/.dircolors respectívamente. El fichero en el directorio /etc debería ser usado para configuraciones globales y si existe uno en tu directorio home entonces este sobreescribirá las configuraciones globales. Sería una buena idea crear un fichero .dircolors básico y situarlo en el directorio /etc/skel para los nuevos usuarios.

Ian Macdonald ha escrito una excelente colección de consejos y trucos para mejorar el entorno del intérprete de comandos. Puedes consultarla en http://www.caliban.org/bash/index.shtml


/etc/inputrc

El fichero inputrc se ocupa del mapeado del teclado en ciertas situaciones. Este fichero es el fichero de inicio utilizado por readline - la librería relacionada con la entrada usada por bash y la mayoría de los demás intérpretes de comandos.

Para más información mira info bash -- Nodo: Readline Init, así como info readline. Son muchas las cosas que pueden hacerse con este único fichero rc.

Lo siguiente es un /etc/inputrc base, junto con comentarios que explican lo que hacen las diferentes opciones.

Ten en cuenta que en el fichero inputrc los comentarios no pueden estar en la misma línea que los comandos.

# Inicio de /etc/inputrc

# Nos aseguramos de que no se muestre todo en la primera línea
set horizontal-scroll-mode Off

# Activa la entrada de 8bit
set meta-flag On 
set input-meta On

# Desactiva el borrado del octavo bit
set convert-meta Off

# Mantiene el octavo bit al mostrar el carácter
set output-meta On

# Avisos del sistema: ninguno (none), visible o audible
set bell-style none

# Todo lo siguiente mapea la secuencia de escape del valor contenido en
# el primer argumento a las funciones de readline especificadas

"\eOd": backward-word
"\eOc": forward-word

# para la consola linux
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert

# para xterm
"\eOH": beginning-of-line
"\eOF": end-of-line

# Fin de /etc/inputrc

Los valores globales se establecen en /etc/inputrc. Los falores para uso personal se establecen en ~/.inputrc. El fichero ~/.inputrc sobreescribirá los valores del fichero global. En la página anterior se configura Bash para que use /etc/inputrc por defecto. Si quieres que tu sistema utilice ambos, puede ser una buena idea poner un .inputrc por defecto en el directorio /etc/skel para que lo utilicen los nuevos usuarios.


Generación de números aleatorios

El núcleo Linux proporciona un generador de números aleatorios al que puede accederse a través de /dev/random y /dev/urandom. Los programas que utilizan los dispositivos random y urandom, como OpenSSH, se beneficiarán de estas instrucciones.

Cuando un sistema Linux comienza sin mucha interacción del operador, el fondo de entropía (los datos usados para calcular un número aleatorio) puede estar en un estado fácilmente predecible. Esto crea la posibilidad real de que el número generado al inicio pueda ser siempre el mismo. Para contrarrestar este efecto, deberías propagar la información del fondo de entropía a través de los apagados e inicios del sistema. El siguiente guión init.d y sus enlaces efectuarán esta función automáticamente.

cat > /etc/rc.d/init.d/random << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/random

# Basado en el guión de sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org
# Elementos del guión de números aleatorios por Larry Lawrence

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Inicializando el generador de números aleatorios del núcleo..."
                if [ -f /var/tmp/random-seed ]; then
	                cat /var/tmp/random-seed >/dev/urandom
		fi
		dd if=/dev/urandom of=/var/tmp/random-seed count=1 &>/dev/null
		evaluate_retval
		;;
		
	stop)
		echo "Salvando la semilla de números aleatorios..."
		dd if=/dev/urandom of=/var/tmp/random-seed count=1 &>/dev/null
		evaluate_retval
		;;

        *)
                echo "Uso: $0 {start|stop}"
                exit 1
                ;;
esac

# Fin de $rc_base/init.d/random
EOF
chmod 755 /etc/rc.d/init.d/random

Crea los enlaces simbólicos a este fichero en los directorios rc.d pertinentes con los siguientes comandos:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/random ../rc0.d/K45random &&
ln -sf ../init.d/random ../rc2.d/S25random &&
ln -sf ../init.d/random ../rc3.d/S25random &&
ln -sf ../init.d/random ../rc4.d/S25random &&
ln -sf ../init.d/random ../rc5.d/S25random &&
ln -sf ../init.d/random ../rc6.d/K45random


/etc/vimrc, ~/.vimrc

El libro LFS instala vim como editor. En este punto, deberíamos aclarar que hay muchos otros editores, incluyendo a emacs, nano, joe y muchos más. Cualquiera que haya indagado por Internet (especialmente por usenet), aunque sea por poco tiempo, seguramente haya observado, por lo menos, una disputa, ¡normalmente entre usuarios de vim y emacs!

El libro LFS contiene un fichero vimrc básico. Aquí, intentaremos mejorar ese fichero. Al inicio, vim lee los ficheros /etc/vimrc y ~/.vimrc (es decir, el vimrc global y el específico del usuario). Advierte que esto sólo es cierto si has compilado vim utilizando LFS-3.1 o posterior. Antes de esto, el vimrc global era /usr/share/vim/vimrc.

Aquí tienes un ejemplo de un vimrc ligeramente ampliado:

" Inicio de .vimrc

set nocompatible
set bs=2
set columns=80
set background=dark
set tabstop=8
set wrapmargin=8
set nobk
syntax on
set ruler
set noexpandtab

" Fin de .vimrc

Una de las FAQ de las listas lfs contempla las marcas de comentarios del fichero vimrc. Advierte que son " en lugar de las más usuales # o //. Esto es correcto. La sintaxis de vimrc es ligeramente inusual.

Vamos a realizar una rápida explicación de lo que significa cada una de las opciones de este fichero de ejemplo:

Se puede encontrar más imformación sobre las muchas opciones de vim leyendo la ayuda que se encuentra dentro del mismo vim. Utilízala escribiendo :help en vim para conseguir la ayuda general, o escribiendo :help usr_toc.txt para ver el Índice del Manual del Usuario.


Creación de un disquete de arranque personalizado

Cómo crear un disquete de arranque decente

Aquí la intención es crear un "disco de rescate" que cargará suficiente 'linux' para permitirte hacer operaciones de rescate. Con lo que aquí se presenta serás capaz de manipular ficheros, montar y desmontar, y otras tareas. Sin embargo, este no es el límite. Aquí se describe el disco mínimo, y puedes añadir todo lo que puedas meter en el disquete.

Disco de Arranque/Disco de Rescate

Primero crearemos un fichero de bucle cerrado (loopback) en el que construiremos nuestro disco de rescate. Después crearemos un sistema de ficheros en el fichero imagen. Entonces usaremos 'mount' para montar el fichero como un disco normal, permitiéndonos leer y escribir ficheros desde el fichero de bucle cerrado. Los siguientes comandos nos construirá una imagen de 4MB.

dd if=/dev/zero of=/tmp/rfloppy bs=1k count=4096 &&
mke2fs -m 0 -N 2000 /tmp/rfloppy &&
mount -o loop /tmp/rfloppy /mnt/loop1 &&
rmdir /mnt/loop1/lost+found/

Ahora que tenemos un fichero montado y utilizable, vamos a prepararlo para meter material útil. Puesto que solamente es un disquete de rescate, sólo necesitamos establecer los directorios fundamentales.

mkdir /mnt/loop1/{dev,proc,etc,sbin,bin,lib,mnt,usr,var}

Lo siguiente es configurar los ficheros de dispositivo. Yo utilizo devfs en mi sistema, por lo que el siguiente comando me funciona bien y sólo tengo los dispositivos que utilizo. Si usaste MAKEDEV para crear tus dispositivos, querrás purgar el directorio /mnt/loop1/dev para recuperar el espacio gastado por los inodos de todos los dispositivos que no utilices.

cp -dpR /dev/* /mnt/loop1/dev

Ahora pasemos al directorio /etc. Para empezar, todo lo que tenemos que hacer es utilizar los ficheros passwd y group que funcionaban con nuestro entorno chroot estático cuando construimos LFS. También copiaremos los guiones de arranque y unos cuantos ficheros que servirán como punto de partida.

cp -ax /etc/rc* /mnt/loop1/etc
cp -ax /etc/fstab /mnt/loop1/etc
echo "root:x:0:0:root:/root:/bin/bash" > /mnt/loop1/etc/passwd
cat > /mnt/loop1/etc/group << "EOF"
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
tty:x:4:
tape:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
EOF

Para prevenir el montaje automático de las particiones del disco duro, asegúrate de añadir la opción noauto a sus entradas en fstab. También, añade las siguientes entradas a /mnt/loop1/etc/fstab para ayudarle con el montaje de nuestro disquete y la imagen RAM:

/dev/ram0       /               ext2    defaults
/dev/fd0        /               ext2    defaults

A continuación instalaremos busybox sobre la imagen. Busybox incorpora muchas de las funciones Unix dentro de un fichero ejecutable pequeño.

make &&
make PREFIX=/mnt/loop1 install &&
cp -ax /var/utmp /mnt/loop1/var &&
mkdir /mnt/loop1/var/log

También, sin olvidar tus limitaciones de espacio, copia a la imagen cualquier otro binario y librería que necesites. Utiliza el comando ldd para ver qué librerías necesitarás copiar para los ejecutables.

Ahora, puesto que yo uso devfs para crear dispositivos al vuelo y liberar preciosos inodos en el disquete, instalaremos también devfsd para suministrar los dispositivos que busybox espera encontrar.

mv GNUmakefile Makefile &&
make &&
make PREFIX=/mnt/loop1 install &&
cp /lib/libc.so.6 /lib/ld-linux.so.2 /lib/libdl.so.2 /tmp &&
strip --strip-deb /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libdl.so.2 &&
mv /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libdl.so.2 /mnt/loop1/lib/

También necesitaremos configurar un guión rc para manejar el arranque de devfsd. Pon esto en /mnt/loop1/etc/init.d/rcS

#!/bin/sh
mount -t devfs devfs /dev
/sbin/devfsd /dev

Seguidamente crea tu sistema de ficheros raíz comprimido. Utilizamos -9 con gzip para hacer la imagen comprimida lo más pequeña posible.

umount /mnt/loop1 && dd if=/tmp/rfloppy bs=1k | gzip -v9 > rootfs.gz
ls -l rootfs.gz
# para asegurarte de que cabe en el disquete.

Crea un núcleo personalizado optimizado en el tamaño. Incluye sólo aquellas características que necesitarás para rescatar tu sistema. No tiene sentido incluir soporte para cosas como xfree86, dri, etc, pues la mayoría de rescates se realizan mediante la línea de comandos.

dd if=rescueimg of=/dev/floppy/0 bs=1k
        429+1 records in
        429+1 records out
rdev /dev/floppy/0 /dev/floppy/0
rdev -R /dev/floppy/0 0

En este ejemplo, rescueimage (EL NÚCLEO) tenía un tamaño de 429+1 bloques. Recordaremos esto para el siguiente comando. Ahora escribimos en el disquete el sistema de ficheros raíz a continuación del núcleo, haciendo 16384+429+1=16814

rdev -r /dev/floppy/0 16814
dd if=rootfs.gz of=/dev/floppy/0 bs=1k seek=430

En este comando usamos seek para encontrar el final del núcleo (429+1) y escribir el sistema de ficheros raíz al disquete.


/etc/skel

El directorio /etc/skel es bastante simple de configurar y usar. Proporciona una forma de estar seguro de que todos los nuevos usuarios de tu sistema LFS tienen la misma configuración inicial. El directorio /etc/skel es usado por el programa /usr/sbin/useradd.

Para más información, consulta man useradd.

Para empezar, crea un directorio /etc/skel. La mejor forma de hacerlo es como usuario root. Después copia en /etc/skel aquellos ficheros que quieras que cada nuevo usuario tenga en su directorio home. Por ejemplo, .bash_profile, .bashrc, .bash_logout, dircolors, .inputrc, y .vimrc.

Cuando crees un nuevo usuario con /usr/sbin/useradd usa el parámetro -m. Por ejemplo:

useradd -m -s/bin/bash jwrober

El programa /usr/sbin/useradd usa una serie de valores por defecto. Los leerá del fichero /etc/default/useradd, si este existe. Si no existe, entonces utiliza algunos valores internos por defecto, que pueden verse ejecutando /usr/sbin/useradd -D.

Para cambiar estos valores, crea un fichero /etc/default/useradd con los mismos valores que la salida de /usr/sbin/useradd -D. Aquí se muestra un ejemplo.

# Inicio de /etc/default/useradd

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=
SKEL=/etc/skel

# Fin de /etc/default/useradd

La única cosa que falta en el fichero es un intérprete de comandos por defecto. Añádelo ejecutando:

/usr/sbin/useradd -D -s/bin/bash

Esto sustituirá la línea SHELL= por SHELL=/bin/bash. Este cambio hace incluso más fácil añadir nuevos usuarios a tu sistema LFS. El programa /usr/sbin/useradd tiene muchos parámetros que pueden especificarse en el fichero /etc/default/useradd. Consulta la página de manual para más detalles.


Capítulo 4. Seguridad

Configuración de shadow

Fichero de configuración de shadow

/etc/login.defs

Activación de las contraseñas MD5

Para activar las contraseñas MD5, modifica la línea del fichero login.defs que pone:
#MD5_CRYPT_ENAB no
para que ponga:
MD5_CRYPT_ENAB yes

Las contraseñas creadas después de este cambio serán encriptadas usando MD5 en lugar de usar la encriptación DES.


Reinstalación de shadow para utilizar PAM

shadow necesitará:
Linux_PAM-0.77

Descarga el parche para shadow desde http://downloads.linuxfromscratch.org/blfs-patches

Reinstala shadow ejecutando los siguientes comandos:

patch -Np1 -i ../shadow-4.0.3.patch &&
autoconf &&
LDFLAGS="-lpam -lpam_misc" ./configure --prefix=/usr --enable-shared --with-libpam &&
make &&
make install &&
rm /bin/vipw &&
rm /bin/sg &&
mv /lib/{libmisc.*a,libshadow.*a} /usr/lib &&
mv /lib/{libmisc.so,libshadow.so} /usr/lib &&
ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so &&
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so &&
cp debian/securetty /etc/securetty


Configuración de PAM para trabajar con shadow


Información sobre la configuración

Añade los siguientes ficheros de configuración de PAM a /etc/pam.d (o añádelos a /etc/pam.conf con el campo adicional para el programa).

cat > /etc/pam.d/login << "EOF"
# Inicio de /etc/pam.d/login

auth        requisite      pam_securetty.so
auth        requisite      pam_nologin.so
auth        required       pam_env.so
auth        required       pam_unix.so
account     required       pam_access.so
account     required       pam_unix.so
session     required       pam_motd.so
session     required       pam_limits.so
session     optional       pam_mail.so     dir=/var/mail standard
session     optional       pam_lastlog.so
session     required       pam_unix.so

# Fin de /etc/pam.d/login
EOF
cat > /etc/pam.d/passwd << "EOF"
# Inicio de /etc/pam.d/passwd

password    required       pam_unix.so     md5 shadow use_authtok

# Fin de /etc/pam.d/passwd
EOF
cat > /etc/pam.d/shadow << "EOF"
# Inicio de /etc/pam.d/shadow

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so
password    required        pam_permit.so

# Fin de /etc/pam.d/shadow
EOF
cat > /etc/pam.d/su << "EOF"
# Inicio de /etc/pam.d/su

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so

# Fin de /etc/pam.d/su
EOF
cat > /etc/pam.d/useradd << "EOF"
# Inicio de /etc/pam.d/useradd

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so
password    required        pam_permit.so

# Fin de /etc/pam.d/useradd
EOF
cat > /etc/pam.d/chage << "EOF"
# Inicio de /etc/pam.d/chage

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so
password    required        pam_permit.so

# Fin de /etc/pam.d/chage
EOF

Actualmente, /etc/pam.d/other está configurado para permitir a cualquiera con una cuenta en la máquina usar programas que no tienen un fichero de configuración propio. Después de comprobar que PAM está correctamente configurado, puede cambiarse de la siguiente forma:

cat > /etc/pam.d/other << "EOF"
# Inicio de /etc/pam.d/other

auth        required        pam_deny.so
auth        required        pam_warn.so
account     required        pam_deny.so
session     required        pam_deny.so
password    required        pam_deny.so
password    required        pam_warn.so

# Fin de /etc/pam.d/other
EOF

Por último, edita /etc/login.defs añadiendo '#' al comienzo de las siguientes líneas:

DIALUPS_CHECK_ENAB
LASTLOG_ENAB
MAIL_CHECK_ENAB
PORTTIME_CHECKS_ENAB
CONSOLE
MOTD_FILE
NOLOGINS_FILE
PASS_MIN_LEN
SU_WHEEL_ONLY
MD5_CRYPT_ENAB
CONSOLE_GROUPS
ENVIRON_FILE

Esto hace que login no realice estas funciones, ya que ahora lo harán los módulos PAM.


iptables-1.2.7a

La siguiente parte de este capítulo trata sobre cortafuegos (firewalls). La herramienta fundamental para crear cortafuegos en Linux, a partir de las versiones 2.4 del núcleo, es iptables. Reemplaza a ipchains (de las versiones 2.2) e ipfwadm (de las versiones 2.0). Necesitarás instalar iptables si pretendes crear cualquier tipo de cortafuegos.


Introducción a iptables

Localización de descarga (HTTP):		http://www.iptables.org/files/iptables-1.2.7a.tar.bz2
Localización de descarga (FTP):			ftp://ftp.netfilter.org/pub/iptables/iptables-1.2.7a.tar.bz2
Versión usada:					1.2.7a
Tamaño del paquete:				115 KB
Estimación del espacio necesario en disco:	2.4 MB

Para crear un cortafuegos, además de instalar iptables, necesitarás configurar las opciones correspondientes en tu núcleo. Esto se discute en la siguiente parte de este capítulo - Crear un Núcleo con el cortafuegos activado.

Si pretendes usar IPv6 podrías considerar ampliar la funcionalidad del núcleo ejecutando make patch-o-matic en el directorio de nivel superior de las fuentes de iptables. Si vas a hacer esto en un núcleo recién descomprimido, necesitas ejecutar primero yes "" | make config && make dep porque de otra forma el comando patch-o-matic fallará mientras establece algunas dependencias.

Si vas a aplicarle algún parche al núcleo, necesitarás hacerlo antes de compilar iptables, porque durante la compilación se comprueban las fuentes del núcleo (si están disponibles en /usr/src/linux) para ver qué características están disponibles. Sólo se incluirá en iptables el soporte para las características reconocidas en tiempo de compilación. Aplicar un parche al núcleo puede hacer que se produzcan errores, a menudo debido a que los enganches (hooks) para los parches han cambiado o porque el guión de ejecución no se da cuenta de que ya se ha incluido un parche.

Ten en cuenta que, para la mayoría de la gente, aplicar un parche al núcleo es innecesario. Con los últimos núcleos 2.4.x, gran parte de la funcionalidad ya está disponible y aquellos que necesitan aplicar un parche son los que necesitan una característica específica. Si no sabes por qué necesitas aplicar un parche al núcleo, ¡probablemente no lo necesitas!.


Configuración de un cortafuegos

Antes de que leas esta parte del capítulo, ten en cuenta que asumimos que ya has instalado iptables como se describe en la sección anterior.


Introducción a los cortafuegos

El propósito principal de un cortafuegos es proteger una red contra accesos maliciosos, utilizando una única máquina como cortafuegos. Esto implica que el cortafuegos pasará a considerarse un punto único de fallo, pero puede facilitar mucho la vida a los administradores.

En un mundo perfecto, donde sabes que cada demonio o servicio de cada máquina está perfectamente configurado y es inmune a, por ejemplo, desbordamientos de memoria intermedia (buffer overflows) o cualquier otro problema imaginable respecto a su seguridad; y donde confías en que cada usuario que accede a tus servicios no pretende dañarlo, ¡no necesitarías un cortafuegos! Sin embargo, en el mundo real, los demonios pueden estar mal configurados, los agujeros de seguridad de servicios esenciales están disponibles libremente... Por ello, puedes querer escoger qué servicios son accesibles para ciertas máquinas, puedes querer limitar qué máquinas o aplicaciones permites que tengan acceso a Internet o, simplemente, puede que no confíes en algunas aplicaciones o usuarios. En estas situaciones, podrías beneficiarte utilizando un cortafuegos.

Sin embargo, no asumas que tener un cortafuegos hace redundante una configuración cuidadosa, ni que convierte en inofensiva una configuración negligente, ni que previene de que cualquiera explote un agujero de seguridad en un servicio que ofreces pero que no has actualizado o parcheado después de publicarse ese agujero de seguridad. A pesar de tener un cortafuegos, necesitas tener bien configuradas y actualizadas las aplicaciones y los demonios de tu sistema; ¡un cortafuegos no es la panacea!


Significado de la palabra cortafuegos.

La palabra cortafuegos puede tener varios significados diferentes.


Personal Firewall

Esto es una configuración o programa (si es para Windows, vendido comercialmente por compañías como Symantec), que afirma o pretende asegurar un ordenador casero o de sobremesa con acceso a Internet. Este asunto es importante para aquellos usuarios que no saben las formas en que se puede acceder a sus ordenadores a través de Internet y cómo desactivarlas, especialmente si están siempre conectados y además a través de enlaces de banda ancha.


Masquerading Router

Esto es una máquina situada entre Internet y una intranet. Para minimizar el riesgo de comprometer al mismo cortafuegos, debería, generalmente, tener sólo un papel: proteger la red interna. Aunque no está completamente exento de riesgos, las tareas de efectuar el encaminamiento y, ocasionalmente, el enmascaramiento IP[1] se consideran, comúnmente, inocuas.


BusyBox

Esto es, a menudo, un viejo ordenador que puede que hayas retirado y casi olvidado, que realiza enmascaramiento y funciones de encaminamiento, pero que, además, ofrece una serie de servicios, por ejemplo, almacenamiento de páginas web, correo, etc. Esto suele usarse para redes caseras, pero no puede seguir considerándose tan seguro, porque la combinación de servidor y encaminador en una sola máquina aumenta la complejidad de la configuración.


Filtrado de paquetes / red parcialmente accesible [se describe parcialmente aquí, ver BusyBox]

Efectúa encaminamiento o enmascaramiento, pero sólo permite el acceso a ciertos servicios, y a veces sólo a usuarios o máquinas específicas; mayormente usado en contextos empresariales que necesitan alta seguridad, a veces desconfiando de los empleados. Esta era la configuración más común de un cortafuegos en la época del núcleo Linux 2.2. Todavía es posible configurar un cortafuegos de esta manera, pero hace las reglas bastante complejas y largas.


Crear un Núcleo con el cortafuegos activado

Si quieres que tu sistema Linux haga la función de cortafuegos debes empezar asegurándote de que tu núcleo ha sido compilado con las opciones pertinentes activadas [2].

Cómo configurar el núcleo, activando las opciones que se compilarán en el núcleo o como módulos, depende de tus preferencias y experiencia personales. Ten en cuenta que, para los guiones mencionados, se supone que se cargan antes los módulos necesarios.


Ahora puedes empezar a construir tu cortafuegos

Cortafuegos Personal

Se supone que un Cortafuegos Personal debe permitirte acceder a todos los servicios ofrecidos en internet, pero protegiendo tu sistema y tus datos.

A continuación incluimos una versión ligeramente modificada de la recomendada por Rusty Russell en Linux 2.4 Packet Filtering HOWTO (Filtrado de paquetes de Linux 2.4):

cat > /etc/rc.d/init.d/firewall << "EOF"
#!/bin/sh

# Inicio de $rc_base/init.d/firewall

# Inserta los módulos de seguimiento de la conexión (no es necesario si
# se compilaron en el kernel).
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe ipt_LOG

# Permite conexiones locales
iptables -A INPUT  -i lo -j ACCEPT
# Permite la salida por cualquier interfaz hacia cualquier ip para
# cualquier servicio (igual que -P ACCEPT)
iptables -A OUTPUT -j ACCEPT

# Permite responder a conexiones ya establecidas y permite conexiones
# nuevas relacionadas con otras ya establecidas (por ejemplo, ftp
# activo)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Registra todo lo demás: ¿Cuál es la última vulnerabilidad explotable
# de Windows?
iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT "

# Establece una política sana:    no se acepta nada > /dev/null
iptables -P INPUT    DROP
iptables -P FORWARD  DROP
iptables -P OUTPUT   DROP

# muestra más información para direcciones ip dinámicas (no es necesario si se
# posee una dirección IP estática)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr

# desactiva la Notificación de Congestión Explícita - demasiados
# enrutadores todavía lo ignoran
echo 0 > /proc/sys/net/ipv4/tcp_ecn

# Fin de $rc_base/init.d/firewall
EOF

Su guión es bastante simple, ignora todo el tráfico que llega a tu ordenador que no ha sido iniciado por él, pero si simplemente está navegando por internet, es improbable que excedas sus límites.

Si te encuentras frecuentemente con retrasos al acceder a servidores ftp, por favor, consulta BusyBox - ejemplo Nª 4.

Incluso si tienes demonios o servicios ejecutándose en tu sistema, deberían ser inaccesibles desde cualquier parte que no sea tu propio ordenador. Si quieres permitir el acceso a ciertos servicios de tu máquina, como ssh o ping, echa un vistazo a BusyBox.


Encaminador (router) con enmascaramiento

Un cortafuegos real tiene dos interfaces: uno conectado a una red interna, en este ejemplo eth0; y uno conectado a Internet, aquí ppp0. Para proporcionar la máxima seguridad contra accesos al cortafuegos, asegúrate de que no existen servidores ejecutándose en él, especialmente X11 y otros. Y, como regla general, el cortafuegos no debería acceder a ningún servicio que no sea de confianza[3].

cat > /etc/rc.d/init.d/firewall << "EOF"
#!/bin/sh

# Inicio de $rc_base/init.d/firewall

echo
echo "Estás utilizando la configuración de ejemplo para un cortafuegos"
echo "de la receta de cortafuegos escrita para LinuxFromScratch."
echo "Este ejemplo está lejos de ser completo, sólo está pensado"
echo "como referencia."
echo "La seguridad de un cortafuegos es una cuestión compleja, que"
echo "sobrepasa el alcance de las reglas de configuración citadas."
echo "Puedes encontrar información algo más detallada sobre"
echo "cortafuegos en el Capítulo 4 del libro BLFS."
echo "http://beyond.linuxfromscratch.org/"
echo

# Incluye los módulos de iptables (no es necesario si se compilaron
# dentro del núcleo).

modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_MASQUERADE
modprobe ipt_LOG
modprobe ipt_REJECT

# Permitir conexiones estrictamente locales
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Permitir reenvío
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state NEW -i ! ppp+	 -j ACCEPT

# Hacer enmascaramiento (no es necesario si la red interna no usa
# direcciones ip privadas)
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE

# Registra todo para el depurado (la última de todas las reglas, pero
# antes de DROP/REJECT)
iptables -A INPUT   -j LOG --log-prefix "FIREWALL:INPUT  "
iptables -A FORWARD -j LOG --log-prefix "FIREWALL:FORWARD"
iptables -A OUTPUT  -j LOG --log-prefix "FIREWALL:OUTPUT "

# Establece una política sensata
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

# Muestra más información para direcciones ip dinámicas (no es necesario en el
# caso de IP estáticas)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr

# Desactiva ExplicitCongestionNotification (Notificación Explícita de
# Congestión)
echo 0 > /proc/sys/net/ipv4/tcp_ecn

# Activa TCPsyncookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Activa Verificación de ruta = Protección contra engaños IP (IP spoofing)
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
	echo 1 > $f
done

# Activa el reenvío IP (IP forwarding)
echo 1 > /proc/sys/net/ipv4/ip_forward
EOF

Con este guión, tu red interna debería ser suficientemente segura contra ataques externos: nadie debería poder establecer una conexión nueva con ningún servicio interno y, si está enmascarado, incluso es invisible; además, tu cortafuegos debería ser casi inmune porque no hay servicios ejecutándose que un cracker pueda atacar.

Nota: Si la interfaz con la que estás conectando a Internet no utiliza ppp, necesitarás cambiar ppp+ por el nombre de la interfaz que estés utilizando. Si estás utilizando la misma interfaz para conectarte tanto a la red interna como a Internet, necesitas utilizar el nombre verdadero de la interfaz, como eth0, en ambas interfaces.

Si necesitas una seguridad más fuerte (por ejemplo, contra DOS - Denegación de Servicio - , robo de conexión, engaños, etc.) echa un vistazo a la lista de Enlaces para lecturas adicionales al final de esta sección.


BusyBox

Este escenario no es muy diferente al Masquerading Router, pero en este caso quieres ofrecer algunos servicios a tu red interna. Un ejemplo de esto es cuando quieres administrar tu máquina desde otro ordenador de tu red interna, o utilizarla como servidor intermedio (proxy) o servidor de nombres. Advertencia: Describir cómo proteger un servidor que ofrece servicios en Internet va mucho más allá del alcance de este documento, mira la Limitación de responsabilidad.

Se cauteloso. Cada servicio que ofrezcas y tengas activado hace tu configuración más compleja y tu máquina menos segura. Calcula los riesgos de servicios mal configurados o de ejecutar un servicio con un fallo explotable, riesgos ambos a los que, principalmente, un cortafuegos debería ser inmune. Mira la introducción a Masquerading Router para más detalles.

Si los servicios que quieres ofrecer no necesitan acceder a Internet, como un servidor samba o un servidor de nombres de uso sólo interno, esto es bastante simple y todavía podría ser aceptable desde el punto de vista de la seguridad. Basta añadir, dentro del guión, las siguientes líneas antes de las reglas de registro.
iptables -A INPUT	-i ! ppp+				-j ACCEPT
iptables -A OUTPUT	-o ! ppp+				-j ACCEPT

Si tus demonios tienen que acceder a la red, como puede necesitar squid, podrías abrir en general OUTPUT y restringir INPUT.
iptables -A INPUT	-m state --state ESTABLISHED,RELATED	-j ACCEPT
iptables -A OUTPUT						-j ACCEPT

Sin embargo, no es recomendable en general dejar OUTPUT sin restricciones: pierdes cualquier control sobre troyanos que quieran "llamar a casa", y algo de redundancia en caso de que tengas (mal) configurado un servicio que mande avisos de su existencia al mundo.

Si prefieres tener esta protección, puedes restringir INPUT y OUTPUT en todos los puertos, excepto aquellos que sea absolutamente necesario tener abiertos. Qué puertos tener abiertos depende de tus necesidades: mayormente los encontrarás buscando los accesos fallidos en tus ficheros de registro.

Examina los siguientes ejemplos:

  1. Squid está almacenando la web:

    iptables -A OUTPUT	-p tcp --dport 80			-j ACCEPT
    iptables -A INPUT	-p tcp --sport 80	-m state --state ESTABLISHED \
       -j ACCEPT

  2. Tu servidor de nombres caché (por ej., dnscache) hace sus consultas mediante udp:

    iptables -A OUTPUT	-p udp --dport 53			-j ACCEPT
    iptables -A INPUT	-p udp --sport 53	-m state --state ESTABLISHED \
       -j ACCEPT

  3. Alternativamente, si queres poder hacer ping a tu máquina para asegurarte de que está viva:

    iptables -A INPUT	-p icmp	-m icmp --icmp-type echo-request	\
       -j ACCEPT
    iptables -A OUTPUT	-p icmp	-m icmp --icmp-type echo-reply	-j 
    ACCEPT

  4. Si accedes frecuentemente a servidores ftp o IRC, puedes advertir ciertos retardos debido a que, algunas implementaciones de estos demonios tienen la característica de consultar el nombre de usuario de tu máquina, utilizando identd. Aunque en realidad esto no es peligroso, tener un identd en ejecución no es recomendable, pues se sabe que algunas implementaciones son vulnerables.

    Para evitar estos retardos puedes rechazar las peticiones con un 'tcp-reset':

    iptables -A INPUT	-p tcp --dport 113			-j REJECT \
       --reject-with tcp-reset
    iptables -A OUTPUT	-p tcp --sport 113	-m state --state RELATED \
       -j ACCEPT

  5. Para registrar y descartar paquetes inválidos, sobre todo paquetes inofensivos que llegaron tarde al filtro de red, o exploraciones de puertos:

    iptables -I INPUT 1	-p tcp	-m state --state INVALID	-j LOG \
       --log-prefix "FIREWALL:INVALID"
    iptables -I INPUT 2	-p tcp	-m state --state INVALID	-j
    DROP

  6. Todo lo que venga del exterior no debería tener una dirección privada. Este es un ataque común llamado IP-spoofing:

    iptables -t nat -A PREROUTING	-i ppp+	-s 10.0.0.0/8		-j DROP
    iptables -t nat -A PREROUTING	-i ppp+	-s 172.16.0.0/12	-j DROP
    iptables -t nat -A PREROUTING	-i ppp+	-s 192.168.0.0/16	-j
    DROP

  7. Para simplificar la depuración y ser justos con aquellos que quieren acceder a un servicio que tienes inhabilitado, adrede o por error, deberías usar REJECT en aquellos paquetes que son anulados.

    Obviamente, esto debe hacerse directamente después de registrarlos, como últimas líneas antes de que los paquetes sean anulados:

    iptables -A INPUT						-j REJECT
    iptables -A OUTPUT		-p icmp --icmp-type 3		-j ACCEPT

Esto son sólo ejemplos para mostrarte las capacidades del nuevo código de cortafuegos en los núcleos Linux-2.4. Consulta la página de manual de iptables. Allí encontrarás más. Los números de puerto que necesitarás para esto puedes encontrarlos en /etc/services, en caso de que no los hayas encontrado mediante "prueba y error" en tus ficheros de registro.

Si añades tus servicos ofrecidos o accedidos como se muestra anteriormente, quizás incluso en FORWARD o para comunicación de la red interna, y borras las cláusulas generales, obtienes un filtrado de paquetes al estilo antiguo.


Información Extra


firewall.status

Si quieres examinar las cadenas que componen tu cortafuegos y el orden en el que las reglas hacen efecto:

cat > /etc/rc.d/init.d/firewall.status << "EOF"
#!/bin/sh

# Inicio $rc_base/init.d/firewall.status

echo "iptables.mangling:"
iptables -t mangle  -v -L -n --line-numbers

echo
echo "iptables.nat:"
iptables -t nat	    -v -L -n --line-numbers

echo
echo "iptables.filter:"
iptables	    -v -L -n --line-numbers
EOF


firewall.stop

Si necesitas desactivar el cortafuegos, este guión lo hará:

cat > /etc/rc.d/init.d/firewall.stop << "EOF"
#!/bin/sh

# Inicio $rc_base/init.d/firewall.stop

# desactivar IP-Forwarding 
echo 0 > /proc/sys/net/ipv4/ip_forward

iptables -Z
iptables -F
iptables -t nat         -F PREROUTING
iptables -t nat         -F OUTPUT
iptables -t nat         -F POSTROUTING
iptables -t mangle      -F PREROUTING
iptables -t mangle      -F OUTPUT
iptables -X
iptables -P INPUT       ACCEPT
iptables -P FORWARD     ACCEPT
iptables -P OUTPUT      ACCEPT
EOF


tripwire-2.3.1-2

Introducción a tripwire

Localización de descarga (HTTP):		http://telia.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.3.1-2.tar.gz
Localización de descarga (FTP):			
Versión usada:					2.3.1-2
Tamaño del paquete:				1.5 MB
Estimación del espacio necesario en disco:	63 MB

El paquete tripwire contiene los programas de tripwire que se usan para verificar la integridad de los ficheros en un sistema.

tripwire depende de:
gcc-2.95.3

Instalación de tripwire

Descarga el parche para la configuración de tripwire desde http://downloads.linuxfromscratch.org/blfs-patches.

Instala tripwire ejecutando los siguientes comandos:

export PATH_HOLD=$PATH &&
export PATH=/opt/gcc2/bin:$PATH &&
ln -s make /usr/bin/gmake &&
cd src &&
gmake release &&
cd .. &&
cp install/install.{sh,cfg} . &&
patch -Np0 -i ../tripwire-cfg.patch &&
./install.sh &&
cp /etc/tripwire/tw.cfg /usr/sbin &&
cp policy/*.txt /usr/share/doc/tripwire

Deshaz las modificaciones anteriores:
rm /usr/bin/gmake &&
export PATH=$PATH_HOLD


Configuración de tripwire


Información sobre la configuración

Tripwire usa un fichero de políticas para determinar a qué ficheros se les chequeará su integridad. El fichero de políticas por defecto (twpol.txt en /etc/tripwire/) es para una instalación por defecto de Redhat 7.0 y está muy desactualizado.

Los ficheros de políticas son personales y deberían ser adaptados a cada distribución y/o instalación en particular. Encontrarás algunos de estos ficheros personalizados aquí abajo:

http://home.iprimus.com.au/glombowski/blfs/twpol-all.txt
Comprueba la integridad de todos los ficheros
http://home.iprimus.com.au/glombowski/blfs/twpol-lfs.txt
Fichero de políticas adaptado para un sistema LFS 3.0 base
http://home.iprimus.com.au/glombowski/blfs/twpol-suse7.2.txt
Fichero de políticas adaptado para un sistema SuSE 7.2

Descarga el fichero de políticas que quieras probar, cópialo a /etc/tripwire/, y úsalo en lugar de twpol.txt. Sin embargo, recomendamos que crees tu propio fichero de políticas personalizado basándote en las ideas que aportan los ficheros anteriores y leyendo /usr/share/doc/tripwire/policyguide.txt. twpol.txt es un buen fichero de políticas para principiantes, ya que advertirá sobre cualquier cambio en el sistema de ficheros y puede incluso servir como una forma molesta de rastrear los cambios producidos al desinstalar software.

Después de copiar tu fichero de políticas a /etc/tripwire/ puedes comenzar con la configuración:

twadmin -m P /etc/tripwire/twpol.txt &&
tripwire -m i

Durante la configuración tripwire creará 2 claves: una para el sitio y una local, que serán almacenadas en /etc/tripwire/.


Linux_PAM-0.77


Instalación de Linux_PAM

Instala Linux_PAM ejecutando los siguientes comandos:

./configure --enable-static-libpam --with-mailspool=/var/mail \
--enable-read-both-confs --sysconfdir=/etc &&
make &&
make install &&
mv /lib/libpam.a /lib/libpam_misc.a /lib/libpamc.a /usr/lib &&
ln -sf ../../lib/libpam.so.0.77 /usr/lib/libpam.so &&
ln -sf ../../lib/libpam_misc.so.0.77 /usr/lib/libpam_misc.so &&
ln -sf ../../lib/libpamc.so.0.77 /usr/lib/libpamc.so


Configuración de Linux_PAM


Información sobre la configuración

La información de la configuración se situa en /etc/pam.d o /etc/pam.conf dependiendo de la aplicación que está usando PAM. A continuación hay ficheros de ejempo de cada tipo:

# Inicio de /etc/pam.d/other

auth            required        pam_unix.so     nullok
account         required        pam_unix.so
session         required        pam_unix.so
password        required        pam_unix.so     nullok

# Fin de /etc/pam.d/other

# Inicio de /etc/pam.conf

other           auth            required        pam_unix.so     nullok
other           account         required        pam_unix.so
other           session         required        pam_unix.so
other           password        required        pam_unix.so     nullok

# Fin de /etc/pam.conf

La página de manual de pam facilita un buen punto de partida para las descripciones de los campos y las entradas permitidas. El Linux-PAM guide for system administrators (Guía de Linux-PAM para administradores de sistemas) y dos recetas de PAM en http://hints.linuxfromscratch.org estan también disponibles como lectura adicional (la versión en castellano está en http://www.escomposlinux.org/lfs-es/recetas/).


Capítulo 5. Sistemas de ficheros

Los sistemas de ficheros transaccionales (journaling) reducen el tiempo necesario para recuperar un sistema de ficheros que no fue desmontado correctamente. Mientras que esto puede ser muy importante para minimizar el tiempo de caída de los servidores, también se ha popularizado en los sistemas de escritorio. Este capítulo trata una variedad de sistemas de ficheros transaccionales.


Ext3

Ext3 es un sistema de ficheros transaccional (journaling) que es una extensión del sistema de ficheros ext2. Es compatible hacia atrás con ext2 y la conversión de ext2 a ext3 es trivial.

No necesitas instalar nada para usar ext3. Todos los paquetes necesarios están disponibles con el sistema base LFS.

Cuando construyas el núcleo, asegúrate de que tienes compilado el soporte para ext3. Si quieres que tu partición raíz sea ext3, entonces compila el soporte dentro del núcleo, en caso contrario puedes compilarlo como módulo. Recompila el núcleo si es necesario.

Edita tu /etc/fstab. Para cada partición que quieras convertir a ext3, edita su entrada para que tenga un aspecto similar a la siguiente línea.

/dev/hdXX /mnt_point ext3 defaults 1 0

En la línea anterior, sustituye /dev/hdXX por la partición (p.e. /dev/hda2) y /mnt_point por el punto de montaje (p.e. /home). El 0 en el último campo asegura que el guión checkfs no comprobará la consistencia de la partición durante el arranque. En lo anterior puedes sustituir ext3 por auto si quieres asegurarte de que la partición se monte aunque, accidentalmente, olvides activar el soporte ext3 en el núcleo.

Para cada partición que hayas convertido a ext3 en /etc/fstab, activa las transaciones para la partición ejecutando el siguiente comando.

tune2fs -j /dev/hdXX

Remonta las particiones implicadas o, simplemente, reinicia si has recompilado el núcleo para activar el soporte ext3.

Hay más información disponible en http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html


reiserfs-3.6.5

Introducción a reiserfsutils

Localización de descarga (HTTP):		http://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.5.tar.gz
Localización de descarga (FTP):			ftp://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.5.tar.gz
Versión usada:					3.6.5
Tamaño del paquete:				356 KB
Estimación del espacio necesario en disco:	3.6 MB
Estimación del tiempo de construcción:		0.43 SBU
Descarga adicional:
parche para corregir el error "flush_buffers"

El paquete reiserfsutils contiene varias utilidades que se usan con el sistema de ficheros reiser.


Instalación de reiserfs

Instala reiserfs ejecutando los siguientes comandos:

patch -Np1 -i ../reiserfsprogs-3.6.5-flush_buffers-bug.patch &&
./configure --prefix=/usr --sbindir=/sbin &&
make &&
make install &&
ln -sf reiserfsck /sbin/fsck.reiserfs &&
ln -sf mkreiserfs /sbin/mkfs.reiserfs


xfsprogs-2.0.3

Parche del núcleo para XFS

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://oss.sgi.com/projects/xfs/download/patches/2.4.20/xfs-2.4.20-all-i386.bz2
Versión usada:					2.4.20
Tamaño del paquete:				840 KB
Estimación del espacio necesario en disco:	Varía según las opciones

El parche del núcleo para XFS debe aplicarse para usar sistemas de ficheros XFS.


Parchear Linux-2.4.20 para XFS

Construye un núcleo Linux-2.4.20 con soporte XFS mediante los siguientes comandos:

cd /usr/src/linux &&
make mrproper &&
bzcat ../xfs-2.4.20-all-i386.bz2 | patch -Np1 &&
make menuconfig &&
make dep &&
make bzImage &&
make modules &&
make modules_install &&
cp arch/i386/boot/bzImage /boot/vmlinuz-xfs &&
cp System.map /boot/System.map-xfs


Introducción a XFS

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://oss.sgi.com/projects/xfs/download/Release-1.1/cmd_tars/xfsprogs-2.0.3.src.tar.gz
Versión usada:					2.0.3
Tamaño del paquete:				740 KB
Estimación del espacio necesario en disco:	31 MB

El paquete xfsprogs contiene herramientas de administración y depuración para los sistemas de ficheros XFS.


Capítulo 6. Editores

Desde el punto de vista de un desarrollador, este es el único programa que realmente importa. Pasamos tanto tiempo usándolo que es indispensable que nos sintamos cómodos con él. Este capítulo se referencia en el Libro LFS para aquellos que desean utilizar otros editores en su sistema LFS. Además, tenemos la oportunidad de mostrarte cómo algunos programas instalados en el LFS se benefician al recompilarlos luego de instalar las librerías gráficas.


vim-6.1


Instalación de vim

Instala vim ejecutando los siguientes comandos:

patch -Np1 -i ../vim-6.1-fhs-compliant-vimrc.patch &&
./configure --prefix=/usr \
   --with-features=huge &&
make &&
make install


emacs-21.3

Introducción a emacs

Localización de descarga (HTTP):		http://ftp.gnu.org/pub/gnu/emacs/emacs-21.3.tar.gz
Localización de descarga (FTP):			ftp://ftp.gnu.org/pub/gnu/emacs/emacs-21.3.tar.gz
Versión usada:					21.3
Tamaño del paquete:				20 MB
Estimación del espacio necesario en disco:	92.5 MB
Estimación del tiempo de construcción:		8.40 SBU

El paquete emacs contiene emacs, un editor de pantalla completa extensible, personalizable y autodocumentado.

emacs utilizará:
xfree86-4.3.0, libjpeg-6b, libpng-1.2.5, 
libtiff-3.5.7 y libungif-4.1.0b1

Instalación de emacs

Instala emacs ejecutando los siguientes comandos:

./configure --prefix=/usr \
   --libexecdir=/usr/sbin &&
make bootstrap &&
make install


Descripciones


Capítulo 7. Intérpretes de comandos

Estamos familiarizados con el intérprete de comandos Bourne Again (bash), pero hay otros dos intérpretes considerados modernos y útiles -- el intérprete UNIX C de Berkeley y el intérprete Korn. En este capítulo se instalan paquetes compatibles con estos tipos de intérpretes adicionales.


tcsh-6.12


Instalación de tcsh

Instala tcsh ejecutando los siguientes comandos:

./configure --prefix=/usr &&
make &&
make install &&
cp tcsh.man /usr/share/man/man1/tcsh.1 &&
ln -s /usr/bin/tcsh /bin/csh


Capítulo 8. Librerías Generales

Las librerías contienen código que con frecuencia es usado por más de un programa. Esto tiene la ventaja de que cada programa no necesita duplicar el código (y el riesgo de introducir errores), sino que le basta con llamar a las funciones de las librerías instaladas en el sistema. El ejemplo más obvio de este grupo de librerías es glibc, que se instala en el libro LFS. Esta contiene todas las funciones de la librería C que utilizan los programas.

Hay dos tipos de librerías, estáticas y compartidas. Las librerías compartidas (normalmente libXXX.so) son cargadas en memoria en tiempo de ejecución a partir de una copia compartida (de aquí el nombre). Las librerías estáticas (libXXX.a) en realidad se enlazan dentro del propio ejecutable, lo que hace que el fichero del programa sea más grande. Con frecuencia, encontrarás en tu sistema las copias estática y compartida de la misma librería.

Generalmente, sólo necesitas instalar librerías cuando instalas software que necesita la funcionalidad que proporcionan. En el libro BLFS, cada paquete se lista con sus dependencias (conocidas). Así, puedes hacerte una idea de qué librerías necesitas antes de instalar ese programa. Si instalas algo sin usar las instrucciones del BLFS, normalmente los ficheros README o INSTALL contendrán detalles de los requisitos del programa.

Hay ciertas librerías que casi con seguridad todos necesitamos en algún momento. En este capítulo mencionamos estas y algunas otras, y explicamos por qué puedes querer instalarlas.


openssl-0.9.7a


Instalación de openssl

Instala openssl ejecutando los siguientes comandos:

sed 's/^passwd/openssl-passwd/' doc/apps/passwd.pod \
> doc/apps/openssl-passwd.pod &&
rm doc/apps/passwd.pod &&
./Configure linux-elf  --openssldir=/etc/ssl --prefix=/usr shared &&
make MANDIR=/usr/share/man &&
make MANDIR=/usr/share/man install &&
rmdir /etc/ssl/lib


fam-2.6.9

Introducción a fam

Localización de descarga (HTTP):		http://oss.sgi.com/projects/fam/download/fam-2.6.9.tar.gz
Localización de descarga (FTP):			ftp://oss.sgi.com/projects/fam/download/fam-2.6.9.tar.gz
Versión usada:					2.6.9
Tamaño del paquete:				300 KB
Estimación del espacio necesario en disco:	350 KB

El paquete fam contiene un supervisor de alteración de ficheros.

fam depende de:
portmap-5

Instalación de fam

Descarga los parches para fam desde http://downloads.linuxfromscratch.org/blfs-patches.

Instala fam ejecutando los siguientes comandos:

Nota: Recibirás advertencias sobre que make install no puede combinar las entradas en /etc/rpc. Puedes ignorarlas junto con cualquier advertencia de IMON o inetd.conf, pues configuraremos estos archivos después de la instalación.

patch -Np1 -i ../fam-dnotify.patch &&
patch -Np1 -i ../fam-gcc3.patch &&
./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


Configuración de fam


Información sobre la configuración

Configuración del supervisor de alteración de ficheros.

Si utilizas inetd, añade la entrada fam a /etc/inetd.conf con el siguiente comando:

echo "sgi_fam/1-2 stream  rpc/tcp wait root /usr/bin/fam fam" >> /etc/inetd.conf

Si utilizas xinetd, añade una entrada en /etc/xinetd.conf con el siguiente comando (asegúrate que el grupo "nogroup" existe):

cat >> /etc/xinetd.conf << "EOF"
# descripción: FAM - supervisor de alteración de ficheros
    service sgi_fam
    {
        type            = RPC UNLISTED
        socket_type     = stream
        user            = root
        group           = nogroup
        server          = /usr/bin/fam
        wait            = yes
        protocol        = tcp
        rpc_version     = 2
        rpc_number      = 391002
    }
EOF


guile-1.4.1

Introducción a Guile

Localización de descarga (HTTP):		http://ftp.gnu.org/pub/gnu/guile/guile-1.4.1.tar.gz
Localización de descarga (FTP):			ftp://ftp.gnu.org/pub/gnu/guile/guile-1.4.1.tar.gz
Versión usada:					1.4.1
Tamaño del paquete:				1.4 MB
Estimación del espacio de disco requerido:	12 MB

El paquete Guile contiene la librería del lenguaje de extensión del Proyecto GNU. Guile también contiene un intérprete autónomo de Scheme.

Guile utilizará:
readline-4.3

Instalación de Guile

Instala Guile ejecutando los siguientes comandos:

./configure --prefix=/usr &&
make &&
make install


slib-2d5

Introducción a slib2d5

Localización de descarga (HTTP):		http://www.swiss.ai.mit.edu/ftpdir/scm/slib2d5.tar.gz
Localización de descarga (FTP):			
Versión usada:					2d5
Tamaño del paquete:				620 KB
Estimación del espacio de disco requerido:	2.9 MB

El paquete slib es una librería de Scheme usada con Guile.

slib depende de:
guile-1.4.1

STLport-4.5.3


Instalación de STLport

Instala STLport ejecutando los siguientes comandos:

patch -Np1 -i ../STLport-4.5.3-gcc3.patch &&
patch -Np1 -i ../STLport-4.5.3-g++-inc.patch &&
GCC_VERSION=`gcc -v 2>&1 | grep "gcc version " | sed -e "s:gcc version ::"` &&
cp stlport/config/stl_gcc.h stlport/config/stl_gcc.h.orig &&
sed -e "s:@GCC_VERSION@:$GCC_VERSION:" \
stlport/config/stl_gcc.h.orig > stlport/config/stl_gcc.h &&
cd src &&
ln -sf gcc-linux.mak Makefile &&
make &&
make INSTALLDIR=/usr install


Capítulo 9. Librerías Gráficas

Dependiendo de para lo que vayas a usar tu sistema, puede que necesites o no las librerías gráficas. Muchas máquinas de escritorio las querrán para utilizar aplicaciones gráficas. Por otro lado, la mayoría de los servidores no las necesitarán.


libjpeg-6b

Introducción a libjpeg

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
Versión usada:					6b
Tamaño del paquete:				599 KB
Estimación del espacio necesario en disco:	3.7 MB
Estimación del tiempo de construcción:		0.51 SBU

El paquete libjpeg contiene las librerías jpeg, que permiten la compresión de ficheros de imagen basándose en el estándar del Joint Photographic Experts Group. Es un algoritmo de compresión "con pérdidas".


Instalación de libjpeg

Instala libjpeg ejecutando los siguientes comandos:

./configure --enable-static --enable-shared --prefix=/usr &&
make &&
make install


libpng-1.2.5


Instalación de libpng

Instala libpng ejecutando los siguientes comandos:

patch -Np0 -i ../libpng-1.2.5-lz.patch &&
make prefix=/usr \
   ZLIBINC=/usr/include ZLIBLIB=/usr/lib -f scripts/makefile.linux &&
make prefix=/usr install -f scripts/makefile.linux


libtiff-3.5.7

Introducción a libtiff

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.remotesensing.org/pub/libtiff/tiff-v3.5.7.tar.gz
Versión usada:					3.5.7
Tamaño del paquete:				928 KB
Estimación del espacio necesario en disco:	5.9 MB
Estimación del tiempo de construcción:		0.26 SBU

El paquete libtiff contiene las librerías tiff y aplicaciones asociadas. Las librerías las utilizan muchos programas para leer y escribir ficheros tiff, y las aplicaciones son útiles para todo tipo de operaciones con ficheros tiff.


Instalación de libtiff

Instala libtiff ejecutando los siguientes comandos:

./configure --prefix=/usr --noninteractive \
   --with-DIR_MAN=/usr/share/man &&
make &&
make install


libungif-4.1.0b1


Descripciones


imlib-1.9.14


Instalación de imlib

Instala imlib ejecutando los siguientes comandos:

CPPFLAGS=-w ./configure --prefix=/usr --sysconfdir=/etc/imlib &&
make &&
make install


aalib-1.4rc4

Introducción a aalib

Localización de descarga (HTTP):		http://telia.dl.sourceforge.net/sourceforge/aa-project/aalib-1.4rc4.tar.gz
Localización de descarga (FTP):			ftp://ftp.sourceforge.net/pub/sourceforge/aa-project/aalib-1.4rc4.tar.gz
Versión usada:					1.4rc4
Tamaño del paquete:				382 KB
Estimación del espacio de disco requerido:	1.2 MB
Estimación del tiempo de construcción:		0.31 SBU

aalib es una librería para representar cualquier gráfico en arte ascii.

aalib utilizará:
xfree86-4.3.0

Instalación de aalib

Instala aalib ejecutando los siguientes comandos:

./configure --prefix=/usr && 
make &&
make install


Capítulo 10. Utilidades Generales

bc-1.06

Introducción a bc

Localización de descarga (HTTP):		http://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz
Localización de descarga (FTP):			ftp://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz
Versión usada:					1.06
Tamaño del paquete:				280 KB
Estimación del espacio necesario en disco:	1.6 MB
Estimación del tiempo de construcción:		0.07 SBU

El paquete bc contiene bc. Es un lenguaje de procesado numérico de precisión arbitraria.

bc depende de:
readline-4.3

Instalación de bc

Descarga los parches para bc de http://downloads.linuxfromscratch.org/blfs-patches.

Instala bc ejecutando los siguientes comandos:

patch -Np1 -i ../bc-1.06-flex-invocation.patch &&
patch -Np1 -i ../bc-1.06-info.patch &&
patch -Np1 -i ../bc-1.06-readline.patch &&
./configure --prefix=/usr --with-readline &&
make &&
make install


Capítulo 11. Utilidades del Sistema

gpm-1.20.1

Gpm (el demonio de ratón de propósito general) es un servidor de ratón para aplicaciones que se ejecutan en la consola. No sólo proporciona soporte para cortar y pegar, sino que su librería se usa en varios programas como links para proporcionar soporte de ratón a la aplicación. Es útil en ordenadores de escritorio, especialmente si sigues las instrucciones de (Más Allá de) LinuxFromScratch ¡a menudo es mucho más fácil (y menos propenso a error) cortar y pegar entre dos consolas que teclear todo a mano!


Configuración de gpm

Guión gpm para init.d

El guión gpm para init.d puede crearse usando los siguientes comandos: (Se asume que has seguido la indicación de LFS sobre tener tu $rc_base establecido a /etc/rc.d)

cat > /etc/rc.d/init.d/gpm << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/gpm

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org
# Partes específicas de GPM por Mark Hymers - markh@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

if [ -f /etc/sysconfig/mouse ]
	then
        source /etc/sysconfig/mouse
fi

if [ -z "$MDEVICE" ] || [ -z "$PROTOCOL" ]
	then
	echo "Por favor crea un fichero /etc/sysconfig/mouse que contenga"
	echo "los valores de MDEVICE y PROTOCOL"
	exit 1;
fi

case "$1" in
        start)
                echo "Iniciando gpm..."
                loadproc gpm -m $MDEVICE -t $PROTOCOL
                ;;

        stop)
                echo "Parando gpm..."
                killproc gpm
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc gpm
                ;;

        *)
                echo "Uso: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# Fin de $rc_base/init.d/gpm
EOF
chmod 755 /etc/rc.d/init.d/gpm

Ahora necesitas crear los enlaces simbólicos a este fichero en los directorios correspondientes de rc.d. Por ejemplo:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/gpm ../rc0.d/K10gpm &&
ln -sf ../init.d/gpm ../rc1.d/K10gpm &&
ln -sf ../init.d/gpm ../rc2.d/K10gpm &&
ln -sf ../init.d/gpm ../rc3.d/S70gpm &&
ln -sf ../init.d/gpm ../rc4.d/S70gpm &&
ln -sf ../init.d/gpm ../rc5.d/S70gpm &&
ln -sf ../init.d/gpm ../rc6.d/K10gpm


Ficheros de configuración

/etc/sysconfig/mouse Este fichero contiene el nombre del dispositivo de ratón y el protocolo que utiliza. Para crear este fichero ejecuta lo siguiente:

cat > /etc/sysconfig/mouse << "EOF" 
# Inicio de /etc/sysconfig/mouse
MDEVICE=tudispositivo
PROTOCOL=tuprotocolo
# Fin de /etc/sysconfig/mouse
EOF


fcron-2.9.3

Introducción a fcron

Localización de descarga (HTTP):		http://fcron.free.fr/fcron-2.9.3.src.tar.gz
Localización de descarga (FTP):			ftp://ftp.seul.org/pub/fcron/fcron-2.9.3.src.tar.gz
Versión usada:					2.9.3
Tamaño del paquete:				372 KB
Estimación del espacio necesario en disco:	2.7 MB

El paquete fcron contiene el demonio fcron. Es un planificador de tareas periódicas pensado como sustituto de Vixie Cron.

fcron recomienda:
un sistema de correo local (sendmail-8.12.9 o postfix-2.0.7, por ejemplo)
fcron utilizará:
Linux_PAM-0.77, openjade-1.3.2 y docbook-dsssl-1.78

Configuración de fcron

Guión make install

Una vez instalados los ficheros, el guión make install entra en una rutina de configuración. La primera prueba será comprobar el grupo llamado fcron. Si no existe, te mostrará la línea de comando propuesta por el guión y un símbolo del sistema para que introduzcas "y" (aceptar) o "n" (rechazar). Esto se repite para crear un usuario llamado fcron y para instalar un guión en el directorio rc.d con sus correspondientes enlaces simbólicos en los niveles de arranque 2, 3, 4 y 5. El paso final de la configuración es parar cualquier proceso fcron existente y lanzar el nuevo fcron. Un "y" aquí parará los procesos fcron actuales. Los siguientes comandos sustituirán el guión fcron por uno basado en una plantilla de BLFS:

cat > /etc/rc.d/init.d/fcron << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/fcron

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Iniciando fcron..."
                loadproc fcron
                ;;

        stop)
                echo "Parando fcron..."
                killproc fcron
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc fcron
                ;;

        *)
                echo "Uso: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# Fin de $rc_base/init.d/fcron
EOF
chmod 755 /etc/rc.d/init.d/fcron &&
mv /etc/rc.d/rc0.d/K60fcron /etc/rc.d/rc0.d/K08fcron &&
mv /etc/rc.d/rc6.d/K60fcron /etc/rc.d/rc6.d/K08fcron


unzip-5.50


Instalación de unzip

Instala unzip ejecutando los siguientes comandos:

patch -Np1 -i ../unzip-5.50-fix-Makefile.patch &&
patch -Np1 -i ../unzip-5.50-fix-libz.patch &&
cp unix/Makefile . &&
make prefix=/usr linux &&
make prefix=/usr linux_shlibz &&
make prefix=/usr install &&
cp -a libunzip.so* /usr/lib


Capítulo 12. Programación


j2sdk-1.4.1

Introducción a j2sdk

Localización de descarga (HTTP):		http://freshmeat.net/projects/sunjdk
Localización de descarga (FTP):			
Versión usada (binaria):			1.4.1_02
Versión usada (fuente):				1.4.1
Tamaño del paquete (binario):			59 MB
Tamaño del paquete (fuente):			77 MB
Estimación del espacio necesario en disco:	1810 MB

El paquete j2sdk contiene el entorno de desarrollo de Java de Sun. Sirve para desarrollar programas java y proporciona el entorno de ejecución necesario para ejecutar dichos programas. También incluye un añadido (plugin) para que los navegadores puedan ejecutar programas java.

El JDK viene en dos sabores, un binario precompilado y un paquete fuente. El binario precompilado está enlazado con las librerías gcc2. Debido a incompatibilidades entre gcc2 y gcc3, el plugin java precompilado causa problemas cuando los paquetes compilados con gcc3 (por ejemplo, mozilla) intentan cargarlo. El paquete fuente requiere que te registres en el sitio de desarrolladores de Sun y que aceptes la Licencia Comunitaria de Sun (Sun Community Source License). El código fuente no puede ser descargado desde ciertos países, de modo que para los usuarios de esos países la única opción es usar el binario.

Incluso si planeas compilar el código fuente del jdk, necesitarás descargar la versión binaria para construir el jdk. Sigue el enlace de arriba para descargar los paquetes fuente y binario. Cuando descargues el código fuente descarga también el paquete con los ficheros de cabecera de mozilla, disponible en la misma dirección.

Descarga los parches para el código fuente de j2sdk en http://downloads.linuxfromscratch.org/blfs-patches.

Si tienes problemas construyendo el jdk, consulta la receta javafromscratch en http://www.linuxfromscratch.org/~tushar/ para obtener información más detallada.

Para los usuarios que no puedan descargar el código fuente del j2sdk, debido a las restricciones de la licencia, blackdown tiene una versión precompilada basada en gcc3. Mira en http://www.blackdown.org/ para más información.

j2sdk depende de:
xfree86-4.3.0, zip-2.3, unzip-5.50, 
cpio-2.5, tcsh-6.12 y gcc-2.95.3

Instalación de j2sdk

Ambas versiones se instalarán en paralelo. Puedes elegir si mantener una o ambas.

Instala la versión binaria del jdk ejecutando los siguientes comandos:

VERSION=1.4.1_02 &&
MV=`echo $VERSION | cut -d "_" -f 1,1` &&
V=`echo ${VERSION} | sed -e "s/\./_/g"` &&
T=`grep -a tail j2sdk-${V}-linux-i?86.bin | cut -f 2 -d " "` &&
tail $T j2sdk-${V}-linux-i?86.bin > install.sfx.$$ &&
chmod +x install.sfx.$$ &&
./install.sfx.$$ &&
cd j2sdk${VERSION} &&
install -d /opt/j2sdk/j2sdk-precompiled-${MV} &&
mv * /opt/j2sdk/j2sdk-precompiled-${MV}

Ahora, la versión binaria está instalada.

Si no quieres compilar el código fuente, pasa a la sección de configuración.

Añade el JDK compilado a la variable PATH.

export JAVA_HOME=/opt/j2sdk/j2sdk-precompiled-${MV} &&
export PATH=$PATH:${JAVA_HOME}/bin

Descomprime el código fuente y aplica los parches:

VERSION=1.4.1 &&
V=`echo $VERSION | sed -e "s/\./_/g"` &&
unzip j2sdk-${V}-src-scsl.zip &&
unzip j2sdk-${V}-mozilla_headers-unix.zip &&
patch -Np1 -i j2sdk-${VERSION}-fix-intl-files.patch &&
patch -Np1 -i j2sdk-${VERSION}-link-missing-libs.patch &&
patch -Np1 -i j2sdk-${VERSION}-remove-fixed-paths.patch &&
patch -Np1 -i j2sdk-${VERSION}-syntax-fixes.patch &&
patch -Np1 -i j2sdk-${VERSION}-use-included-motif.patch

Establece algunas variables que afectan a la construcción:

export ALT_BOOTDIR="$JAVA_HOME" &&
unset JAVA_HOME &&
unset CLASSPATH &&
unset CFLAGS &&
unset CXXFLAGS &&
unset LDFLAGS &&
export ALT_DEVTOOLS_PATH="/usr/bin" &&
export BUILD_NUMBER="blfs-`date +%s`" &&
export DEV_ONLY=true &&
export ALT_MOZILLA_PATH=$PWD &&
export INSANE=true &&
export MAKE_VERBOSE=true &&
export ALT_CACERTS_FILE=${ALT_BOOTDIR}/jre/lib/security/cacerts

El motif incluido no se construye correctamente con los actuales glibc y xfree86. Una solución es construir la librería de motif antes de compilar el j2sdk. Advierte que la construcción de motif falla en la primera ejecución debido a algún error de sintaxis. La solución más fácil y por fuerza bruta es volver a ejecutar el comando make :)

cd motif/lib/Xm &&
make || make &&
cd ../../..

Crea e instala el j2sdk con los siguientes comandos. Habrá un montón de mensajes sobre ficheros no encontrados que parecerán errores. Mientras la compilación no se detenga, los mensajes son inofensivos, ignóralos.

cd control/make &&
make &&
cd ../.. &&
cd control/build/linux-i?86 &&
cp -a j2sdk-image /opt/j2sdk/j2sdk-1.4.1


Explicación de los comandos

T=`grep... : Determina la parte donde empieza el fichero tar en el archivo autoextraible.

patch -Np1 -i j2sdk-${VERSION}-fix-intl-files.patch : Este parche corrige mensajes duplicados en los ficheros intl.

patch -Np1 -i j2sdk-${VERSION}-link-missing-libs.patch : Este parche añade unas librerías para corregir los símbolos sin resolver.

patch -Np1 -i j2sdk-${VERSION}-remove-fixed-paths.patch : El guión de construcción quiere que los binarios estén en lugares específicos. Este parche hace que se utilice la variable de entorno PATH para buscarlos.

patch -Np1 -i j2sdk-${VERSION}-syntax-fixes.patch : Este parche corrige la sintaxis para gcc3.

patch -Np1 -i j2sdk-${VERSION}-use-included-motif.patch : Este parche renombra la librería motif interna para evitar conflictos con una versión imcompatible instalada en el sistema.

export ALT_BOOTDIR="$JAVA_HOME" : Esta variable establece la localización del JDK precompilado que se utilizará para compilar el código fuente del JDK.

export ALT_MOZILLA_PATH=$PWD : Esto establece la variable que apunta a donde has descomprimido los ficheros de cabecera de mozilla.

export ALT_DEVTOOLS_PATH="/usr/bin" : Esto cambia la localización donde el guión de construcción encuentra los ejecutables necesarios.

export BUILD_NUMBER="blfs-`date +%s`" : Esto te ayudará a identificar esta versión compilada del entorno de ejecución y máquina virtual, añadiendo esta información a la versión, en la salida de "java -version".

export DEV_ONLY=true : Este comando evita compilar la documentación y elimina una dependencia con rpm.

unset JAVA_HOME : Esto borra la variable JAVA_HOME y evita problemas durante la compilación.

unset CLASSPATH : Esto borra la variable CLASSPATH y evita problemas durante la compilación.

unset CFLAGS... : Estas opciones causan una mala compilación. Nunca las uses.

export INSANE=true : A menos que especifiques que estás loco (insane), la compilación no procederá. La plataforma certificada para compilar es RedHat 6.1. Esta variable asegura que todos los errores por compilar en una plataforma no certificada se conviertan en advertencias.

export MAKE_VERBOSE=true : Permite que se muestre en la consola el comando actual de compilación.

export ALT_CACERTS_FILE... : Epecifica el fichero de certificados a usar.


Descripciones


gcc-3.2.1


Instalación de gcc

Instala gcc ejecutando los siguientes comandos:

PATH_HOLD=$PATH &&
export PATH=$PATH:/opt/gnat/bin &&
cd gcc/ada &&
touch treeprs.ads [es]info.h nmake.ad[bs] &&
cd ../.. &&
mkdir ../gcc-build &&
cd ../gcc-build &&
../gcc-3.2.1/configure --prefix=/usr --enable-shared \
--enable-languages=c,c++,objc,f77,ada,java --enable-threads=posix \
--enable-__cxa_atexit --enable-clocale=gnu &&
make bootstrap &&
make -C gcc gnatlib_and_tools &&
make install-no-fixedincludes &&
ln -sf g77 /usr/bin/f77 &&
export PATH=$PATH_HOLD

Ya puedes borrar la instalación de gnat:

rm -rf /opt/gnat


Descripciones

Los programas y librerías que no se describen aquí se encuentran documentados en la página gcc-3.2.1 del LFS.


gcc-2.95.3


Instalación de gcc

Aplica los dos parches, uno para corregir la compilación y el otro para evitar que se ejecute el guión fixincludes.

patch -Np1 -i ../gcc-2.95.3-1.patch &&
patch -Np1 -i ../gcc-2.95.3-no-fixinc.patch

El equipo de desarrollo de gcc recomienda que la construcción se realice en un directorio aparte.

mkdir ../gcc-build &&
cd ../gcc-build

Configura gcc para que construya los compiladores de C y C++ y active las opciones relacionadas con C++.

../gcc-2.95.3/configure \
--prefix=/opt/gcc2 \
--enable-shared --enable-languages=c,c++ \
--enable-threads=posix

Compila e instala gcc y elimina los directorios innecesarios (ajusta el identificador de la máquina de acuerdo con tu arquitectura).

make bootstrap &&
make install &&
ln -sf gcc /opt/gcc2/bin/cc &&
rm -rf /opt/gcc2/{i686-pc-linux-gnu,info,man}

Toma nota de la librería que se instaló.

L=`find /opt/gcc2/lib -name "*libstdc++*.so" -type f` &&
IL=`basename $L`

Mueve las librerías de C++ al directorio estándar de librerías para no tener que añadir /opt/gcc2/lib a /etc/ld.so.conf.

for i in /opt/gcc2/lib/*.so*; do mv -f $i /usr/lib;
ln -sf /usr/lib/`basename $i` /opt/gcc2/lib; done

Crea los enlaces requeridos por los paquetes comerciales y precompilados.

ln -sf $IL /usr/lib/libstdc++-libc6.1-1.so.2 &&
ln -sf $IL /usr/lib/libstdc++-libc6.2-2.so.3 &&
ln -sf $IL /usr/lib/libstdc++-libc6.3-2.so.3


Capítulo 13. Entorno de Red por Marcado Telefónico (Dial-Up)


Capítulo 14. Clientes DHCP

DHCP significa Protocolo de Configuración Dinámica del Anfitrión (Dynamic Host Configuration Protocol). Es un protocolo usado por muchos sitios para proporcionar automáticamente información como direcciones IP, mascaras de subred e información de encaminamiento entre computadoras. Si tu red usa DHCP, necesitarás un cliente DHCP para poder conectarte a ella. DHCP también se usa en algunos módems de cable.

En la actualidad facilitamos instrucciones de instalación para dos clientes DHCP, dhclient (del paquete dhcp) y dhcpcd. Comenzamos con una página que muestra cómo modificar los guiones de arranque de LFS para incluir soporte genérico de DHCP. Seguidamente presentamos dos lotes de instrucciones de instalación en las que también se expone cómo crear un fichero de configuración apropiado para trabajar con el cliente DHCP que elijas.


Configuración de los guiones de arranque de LFS para soportar clientes DHCP


Información sobre la configuración

Ten en cuenta que en esta y en las siguientes páginas utilizamos eth0 como ejemplo de interfaz de red. Si quieres configurar una diferente (o más de una), simplemente reemplaza eth0 con la interfaz que desees usar.

Estas instrucciones convertirán los ficheros de configuración de LFS (una configuración estática) en una configuración que utilice el protocolo DHCP. Ten en cuenta que las interfaces estáticas y DHCP pueden coexistir en un sistema LFS. Para conseguirlo, basta con hacer las modificaciones sólo en las interfaces que necesiten soporte DHCP. Todas las instrucciones de esta página son válidas sin importar el cliente DHCP que pienses utilizar.

Si la interfaz que piensas utilizar como puerta de enlace por defecto va a usar DHCP, el primer paso es eliminar las variables GATEWAY y GATEWAY_IF de /etc/sysconfig/network. Esto sólo necesitas hacerlo una vez.

cd /etc/sysconfig &&
cp network network.bak &&
sed "s/GATEWAY/# GATEWAY/" network.bak > network

Ahora necesitas crear los guiones que sobreescribirán los guiones de red por defecto y proporcionarán el soporte DHCP. Estos dos guiones son genéricos y pueden usarse con ambos clientes DHCP. Primero el guión ifup-eth0:

cat > /etc/sysconfig/network-devices/ifup-eth0 << "EOF" 
#!/bin/sh

source /etc/sysconfig/rc || exit
source $rc_functions || exit
source $network_devices/ifconfig.eth0 || exit

echo "Levantando la interfaz eth0..."
modprobe eth0
loadproc $DHCP_PROG $DHCP_START
EOF

Luego el guión ifdown-eth0:

cat > /etc/sysconfig/network-devices/ifdown-eth0 << "EOF" 
#!/bin/sh

source /etc/sysconfig/rc || exit
source $rc_functions || exit
source $network_devices/ifconfig.eth0 || exit

echo "Desactivando la interfaz eth0..."
$DHCP_PROG $DHCP_STOP
evaluate_retval
EOF

Finalmente, necesitamos hacer ejecutables estos guiones:

chmod 755 /etc/sysconfig/network-devices/ifup-eth0 &&
chmod 755 /etc/sysconfig/network-devices/ifdown-eth0


dhcp-3.0pl2

El paquete dhcp incluye tanto el programa cliente (llamado dhclient) como el servidor para usar DHCP. Si quieres instalarlo puedes encontrar las instrucciones en dhcp-3.0pl2. Ten en cuenta que si sólo quieres usar el cliente, no necesitas lanzar el servidor y, por tanto, no necesitas los guiones de arranque y enlaces suministrados para el demonio servidor. Sólo necesitas ejecutar el servidor DHCP si tú suministras este servicio a una red, y seguro que sabrás si este es el caso. Si no es así, ¡no ejecutes el servidor!. Una vez instalado el paquete, vuelve aquí para ver la información sobre cómo configurar el cliente (dhclient).

Para configurar dhclient necesitas crear dos ficheros, /etc/sysconfig/network-devices/ifconfig.eth0 y /etc/dhclient.conf.

Primero, crea el fichero ifconfig.eth0 con los siguientes comandos (advierte que esto sobreescribirá el fichero, si ya existe):

cd /etc/sysconfig/network-devices &&
cat > /etc/sysconfig/network-devices/ifconfig.eth0 << "EOF"
ONBOOT=yes
DHCP_PROG=/sbin/dhclient
DHCP_START=<parametros de inicio apropiados>
DHCP_STOP=-r
EOF

Para más información sobre los posibles valores de DHCP_START y DHCP_STOP , consulta la página de manual de dhclient.

A continuación debes crear /etc/dhclient.conf usando el siguiente comandos:

cat > /etc/dhclient.conf << "EOF"
# dhclient.conf

interface "eth0"{
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, host-name;
require subnet-mask, domain-name-servers;
}
# fin dhclient.conf
EOF


dhcpcd-1.3.22-pl4

Introducción a dhcpcd

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.phystech.com/pub/dhcpcd-1.3.22-pl4.tar.gz
Versión usada:					1.3.22-pl4
Tamaño del paquete:				145 KB
Estimación del espacio necesario en disco:	750 KB

El paquete dhcpcd contiene el cliente dhcpcd. Es útil para conectar tu ordenador a una red que utilice DHCP para asignar las direcciones de red.


Instalación de dhcpcd

Antes de instalar dhcpcd necesitas descargar dhcpcd-1.3.22-pl4.patch de http://downloads.linuxfromscratch.org/blfs-patches y colocarlo en el directorio de tus fuentes.

Instala dhcpcd ejecutando los siguientes comandos:

patch -Np1 -i ../dhcpcd-1.3.22-pl4.patch &&
./configure --prefix="" --sysconfdir=/var/lib \
--mandir=/usr/share/man &&
make &&
make install


Capítulo 16. Librerías para trabajo en Red


Capítulo 17. Navegadores Web en modo texto

Las personas nuevas en sistemas tipo Unix tienden a preguntar "¿Para qué narices quiero un navegador en modo texto? ¡Voy a compilar las X y usar Konqueror/Mozilla/LoQueSea!". Aquellos que se han movido un poco en estos sistemas saben que cuando (no "si...") estás liado con la instalación de tu navegador gráfico y necesitas buscar cierta información en la web, un navegador basado en la consola puede salvarte. También, hay gente que prefiere usar uno de estos programas como método principal para navegar, ya sea para evitar el retardo y gasto de ancho de banda de las imágenes, o porque utilicen un sintetizador texto-a-voz que lea las páginas (usados, por ejemplo, por usuarios con problemas de visión o ciegos). En estos momentos tenemos instrucciones de instalación para tres navegadores web de consola.


lynx-2.8.4

Introducción a lynx

Localización de descarga (HTTP):		http://lynx.isc.org/release/lynx2.8.4.tar.bz2
Localización de descarga (FTP):			
Versión usada:					2.8.4
Tamaño del paquete:				1.9 MB
Estimación del espacio en disco requerio:	16 MB

Lynx es un navegador web en modo texto.

lynx depende de:
openssl-0.9.7a

Instalación de lynx

Instala lynx ejecutando los siguientes comandos:

./configure --prefix=/usr --libdir=/etc --with-ssl --with-zlib &&
make &&
make install &&
make DOCDIR=/usr/share/doc/lynx-2.8.4/lynx_doc \
   HELPDIR=/usr/share/doc/lynx-2.8.4/lynx_help install-doc &&
make DOCDIR=/usr/share/doc/lynx-2.8.4/lynx_doc \
   HELPDIR=/usr/share/doc/lynx-2.8.4/lynx_help install-help &&
sed s/"t\/etc"/"t\/usr\/share\/doc\/lynx\-2\.8\.4"/ \
   /etc/lynx.cfg > /etc/lynx.bak &&
mv /etc/lynx.bak /etc/lynx.cfg


w3m-0.3.2.1

Introducción a w3m

Localización de descarga (HTTP):		http://unc.dl.sourceforge.net/sourceforge/w3m/w3m-0.3.2.1.tar.gz
Localización de descarga (FTP):			
Versión usada:					0.3.2.1
Tamaño del paquete:				1.1 MB
Estimación del espacio necesario en disco:	3 MB

w3m es un paginador y navegador web en modo texto.


Capítulo 18. Programas Básicos para Trabajo en Red

ncftp-3.1.5


Cliente OpenSSH-3.6.1p1

El cliente ssh es un sustituto seguro de telnet. Si quieres instalarlo encontrarás las instrucciones en el Capítulo 23 - openssh-3.6.1p1. Ten en cuenta que si sólo quieres usar el cliente no necesitas lanzar el servidor y, por tanto, no necesitas los guiones y enlaces de inicio. De acuerdo con las buenas costumbres, lanza el servidor solamente si lo necesitas en realidad (y si no sabes para qué puedes necesitarlo, ¡entonces es que no lo necesitas!).


cvs-1.11.5


tcpwrappers-7.6

Introducción a tcpwrappers

Localización de descarga (HTTP):		http://files.ichilton.co.uk/nfs/tcp_wrappers_7.6.tar.gz
Localización de descarga (FTP):			
Versión usada:					7.6
Tamaño del paquete:				100 KB
Estimación del espacio necesario en disco:	720 KB
Estimación del tiempo de construcción:		0.16 SBU
Parche requerido:
Localización de descarga (HTTP):		http://files.ichilton.co.uk/nfs/tcp_wrappers_7.6.diff.gz

El paquete tcpwrappers proporciona programas envoltorios para demonios, que informan sobre el nombre del cliente que solicita servicios de red y el servicio solicitado.


Instalación de tcpwrappers

.

Instala tcpwrappers con los siguientes comandos:

patch -Np1 -i ../tcp_wrappers_7.6.diff &&
make REAL_DAEMON_DIR=/usr/sbin linux &&
cp libwrap.a /usr/lib &&
cp tcpd.h /usr/include &&
cp safe_finger /usr/sbin &&
cp tcpd /usr/sbin &&
cp tcpdchk /usr/sbin &&
cp tcpdmatch /usr/sbin &&
cp try-from /usr/sbin &&
cp -av *.3 /usr/share/man/man3 &&
cp -av *.5 /usr/share/man/man5 &&
cp -av *.8 /usr/share/man/man8


portmap-5

Introducción a portmap

Localización de descarga (HTTP):		http://files.ichilton.co.uk/nfs/portmap_5.orig.tar.gz
Localización de descarga (FTP):			
Versión usada:					5
Tamaño del paquete:				20 KB
Estimación del espacio necesario en disco:	250 KB
Parche requerido:
Localización de descarga (HTTP):		http://files.ichilton.co.uk/nfs/portmap_5-1.diff.gz

El paquete portmap es un sustituto más seguro para el paquete portmap original de SUN. Portmap se utiliza para reenviar peticiones rpc a demonios rpc como NFS y NIS.

portmap depende de:
tcpwrappers-7.6


Instalación de portmap

Instala portmap con los siguientes comandos:

patch -Np1 -i ../portmap_5-1.diff &&
mkdir /usr/share/doc/portmap &&
make &&
make install


Configuración de portmap


Creación del guión de arranque de portmap

cat > /etc/rc.d/init.d/portmap << "EOF"
#!/bin/sh
# Inicio de /etc/rc.d/init.d/portmap

source /etc/rc.d/init.d/functions

case "$1" in
        start)
                echo "Iniciando RPC Portmap"
                loadproc /sbin/portmap
                ;;

        stop)
                echo "Parando Portmap"
                killproc /sbin/portmap
                ;;

        restart)
                $0 stop
                /bin/sleep 1
                $0 start
                ;;

        *)
                echo "Uso: $0 {start|stop|restart}"
                exit 1
        ;;

esac

# Fin de /etc/rc.d/init.d/portmap
EOF
chmod 754 /etc/rc.d/init.d/portmap &&
cd /etc/rc.d/init.d &&
ln -sf ../init.d/portmap ../rc0.d/K49portmap &&
ln -sf ../init.d/portmap ../rc1.d/K49portmap &&
ln -sf ../init.d/portmap ../rc2.d/K49portmap &&
ln -sf ../init.d/portmap ../rc3.d/S22portmap &&
ln -sf ../init.d/portmap ../rc4.d/S22portmap &&
ln -sf ../init.d/portmap ../rc5.d/S22portmap &&
ln -sf ../init.d/portmap ../rc6.d/K49portmap


inetutils-1.4.2

Introducción a inetutils

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.gnu.org/gnu/inetutils/inetutils-1.4.2.tar.gz
Versión usada:					1.4.2
Tamaño del paquete:				1018 KB
Estimación del espacio en dicso requerido:	2.3 MB

El paquete inetutils contiene clientes y servidores de red.

inetutils utilizará:
Linux_PAM-0.77

Instalación de inetutils

Instala inetutils ejecutando los siguientes comandos:

./configure --prefix=/usr --disable-syslogd \
	--libexecdir=/usr/sbin --infodir=/usr/share/info \
	--mandir=/usr/share/man --with-wrap &&
make &&
make install 


Capítulo 19. Utilidades Básicas para el trabajo en Red

traceroute-1.4a12


Instalación de traceroute

Instala traceroute ejecutando los siguientes comandos:

cp Makefile.in Makefile.in.bak &&
sed 's/-o bin/-o root/' Makefile.in.bak > Makefile.in &&
./configure --prefix=/usr &&
make &&
make install &&
make install-man


Capítulo 20. Programas de Trabajo en Red básicos

procmail-3.22

Introducción a procmail

Localización de descarga (HTTP):		http://www.procmail.org/procmail-3.22.tar.gz
Localización de descarga (FTP):			ftp://ftp.procmail.net/pub/procmail/procmail-3.22.tar.gz
Versión usada:					3.22
Tamaño del paquete:				338 KB
Estimación del espacio necesario en disco:	1.5 MB

El paquete procmail contiene un procesador de correo autónomo. Es útil para filtrar y clasificar el correo entrante.


fetchmail-6.2.2

Introducción a fetchmail

Localización de descarga (HTTP):		http://www.catb.org/~esr/fetchmail/fetchmail-6.2.2.tar.gz
Localización de descarga (FTP):			
Versión usada:					6.2.2
Tamaño del paquete:				1.2 MB
Estimación del espacio necesario en disco:	5.7 MB
Estimación del tiempo de construcción: 		0.22 SBU

El paquete fetchmail contiene el programa fetchmail. Recibe el correo de los servidores remotos y lo reenvía al sistema de entrega local de tu máquina, de modo que pueda ser leído por los agentes de correo de usuario normales.

fetchmail depende de:
openssl-0.9.7a y un MDA (agente de entrega de correo) local (procmail-3.22)

Instalación de fetchmail

Instala fetchmail ejecutando los siguientes comandos:

./configure --prefix=/usr --with-ssl --enable-fallback=procmail &&
make &&
make install


mutt-1.4.1i

Introducción a mutt

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.mutt.org/mutt/mutt-1.4.1i.tar.gz
Versión usada:					1.4.1i
Tamaño del paquete:				2.5 MB
Estimación del espacio necesario en disco:	12 MB
Estimación del tiempo de construcción:		0.69 SBU

El paquete mutt contiene un Agente de Correo de Usuario. Es útil para leer, escribir, responder, guardar y borrar tu correo.


Instalación de mutt

Mutt necesita un grupo lamado 'mail'. Puedes añadir este grupo, si aún no existe, con este comando:
groupadd mail

Si no instalas un MTA, como postfix-2.0.7 o sendmail-8.12.9, necesitas modificar el propietario de /var/mail con este comando:
chgrp mail /var/mail

Instala mutt ejecutando los siguientes comandos:

./configure --prefix=/usr --sysconfdir=/etc & &
make &&
make install 


pine-4.53


Instalación de Pine

Instala Pine ejecutando los siguientes comandos:

patch -Np1 -i ../pine-4.44-fhs.patch &&
./build slx DEBUG='-Os ' MAILSPOOL='/var/mail' \
    SSLDIR=/usr SSLCERTS=/etc/ssl/certs &&
cp doc/pine.1 /usr/share/man/man1 &&
cd bin &&
install pine /usr/bin


Otros programas de correo y noticias

pan-0.13.4 es un lector de noticias basado en GTK2.

KNode es un lector de noticias basado en QT incluido en kdenetwork-3.1.

KMail es un cliente de correo basado en QT incluido en kdenetwork-3.1.

balsa-2.0.10 es un cliente de correo basado en GTK2.

mozilla-1.3 incluye tanto un cliente de correo como un lector de noticias.


Capítulo 21. Utilidades DJB

daemontools-0.76

Introducción a Daemontools

Localización de descarga (HTTP):		http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
Localización de descarga (FTP):			
Versión usada:					0.76
Tamaño del paquete:				162 KB
Estimación del espacio necesario en disco:	1.8 MB
Descargas adicionales:
Parche errno para daemontools

El paquete daemontools es un sustituto para inetd o xinetd. La razón principal para utilizarlo aquí es porque se recomienda usarlo junto con qmail y djbdns.


Instalación de daemontools

Instala daemontools ejecutando los siguientes comandos:

cd admin/daemontools-0.76 &&
patch -Np1 -i ../../daemontools-0.76.errno.patch &&
package/compile &&
cd package &&
sed 's|command|usr/sbin|' boot.inittab > boot.inittab~ &&
mv boot.inittab~ boot.inittab &&
cd ../command &&
sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \
    -e 's|command|usr/sbin|' \
    -e 's|/service|/etc/service|g' svscanboot > svscanboot~ &&
mv svscanboot~ svscanboot &&
chmod 555 svscanboot &&
cp * /usr/sbin &&
cd ../package &&
cat /etc/inittab boot.inittab > /etc/inittab~ &&
mv -f /etc/inittab~ /etc/inittab &&
mkdir /etc/service &&
telinit Q


Explicación de los comandos

Lo primero que hay que entender al instalar cualquier paquete escrito por Daniel J. Bernstein, y esto incluye qmail, djbdns y ucspi-tcp aparte de daemontools, es que incumple los estándares si su idea de hacer bien las cosas difiere de un estándar en particular. El profesor Bernstein es un estándar por sí mismo en lo que a su software se refiere.

Esto implica que es necesario hacer algunos cambios en los comandos de instalación de sus paquetes para poder instalarlos de forma que cumplan el Estándar de la Jerarquía del Sistema de Ficheros (FHS). Muchos de los siguientes comandos se deben a este hecho.

cd admin/daemontools-0.76 : Primero, el paquete se desempaqueta en un directorio admin. Encontrarás el paquete en sí dos directorios por debajo de este.

package/compile : Este comando compila las fuentes y coloca los binarios en el directorio command.

Como vamos a instalar los binarios en /usr/sbin en lugar de crear un directorio /command que no es estándar, debemos cambiar varias rutas:

sed 's|command|usr/sbin|' boot.inittab > boot.inittab~
mv boot.inittab~ boot.inittab

En boot.inittab, cambiamos /command/svscanboot por /usr/sbin/svscanboot.

sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \
    -e 's|command|usr/sbin|' \
    -e 's|/service|/etc/service|g' svscanboot > svscanboot~ &&

Esto cambia varias rutas en el guión svscanboot para que svscan compruebe en el directorio /etc/service los demonios a lanzar, en lugar de usar el directorio por defecto /service.

cp * /usr/sbin : Debemos copiar manualmente los binarios al directorio /usr/sbin.

cat /etc/inittab boot.inittab > /etc/inittab~
mv -f /etc/inittab~ /etc/inittab

Estos comandos añaden una línea en /etc/inittab para que init lance el guión svscanboot.

mkdir /etc/service : Este comando crea el directorio de control de daemontools, que es necesario que exista aunque esté vacío, para que daemontools funcione correctamente.

telinit Q : Este comando le dice al proceso init que lea de nuevo su fichero de configuración (inittab) y actúe en consecuencia según los cambios que se hayan producido. Se ejecuta el guión svscanboot.


Descripciones


ucspi-tcp-0.88


Instalación de ucspi-tcp

Instala ucspi-tcp ejecutando los siguientes comandos:

patch -Np1 -i ../ucspi-tcp-0.88.errno.patch &&
sed 's|/usr/local|/usr|' conf-home > conf-home~ &&
mv conf-home~ conf-home &&
sed 's/bin/sbin/' hier.c > hier.c~ &&
mv hier.c~ hier.c &&
make &&
make setup check


Descripciones


Capítulo 22. Servidores de Correo

Los MTA son los programas que transportan el correo de una máquina a otra. El MTA tradicional es sendmail, sin embargo hay otras alternativas.

Aparte de servidores SMTP hay un servidor POP (qpopper). Hay disponible un servidor IMAP (Courier-IMAP) que se incluirá en la próxima versión.


postfix-2.0.7


Instalación de postfix

Antes de que compiles el programa, necesitas crear unos usuarios y grupos que se espera que estén en su lugar cuando se ejecute el guión de instalación. Añade los usuarios y grupos con los siguientes comandos:

groupadd postfix &&
groupadd postdrop &&
groupadd -g 65534 nogroup &&
useradd -c postfix -d /dev/null -g postfix -s /bin/false postfix &&
useradd -c nobody -d /home -g nogroup -s /bin/bash -u 65534 nobody &&
chown postfix:postfix /var/mail

Instala postfix ejecutando los siguientes comandos:

make &&
make install

El guión de instalación entrará en una fase interactiva con preguntas del tipo '*_directory:[default]input'. Las opciones por defecto pueden aceptarse todas excepto en tres casos. A continuación se muestran los tres casos y las respuestas modificadas.

daemon_directory:[/usr/libexec/postfix]/usr/sbin
manpage_directory:[/usr/local/man]/usr/share/man
sample_directory:[/etc/postfix]/usr/share/doc/postfix

El paso final de la instalación es instalar la documentación del programa con este comando:

cp -rf html/* /usr/share/doc/postfix


Configuración de postfix


Información sobre la configuración

cat > /etc/aliases << "EOF"
# Inicio de /etc/aliases

MAILER-DAEMON:    postmaster
postmaster:       root

root:             LOGIN
# Fin de /etc/aliases
EOF

El fichero /etc/aliases que acabamos de crear, main.cf y master.cf deben personalizarse para tu sistema. El fichero aliases necesita una identidad distinta de root para que el correo dirigido a root pueda ser reenviado a un usuario. El fichero main.cf necesita el nombre cualificado completo de tu máquina. Todas estas modificaciones pueden hacerse con comandos sed introducidos en la consola con las sustituciones apropiadas de tu nombre distinto de root por [user] y el nombre cualificado completo de tu máquina por [localhost.localdomain]. Encontrarás que el fichero main.cf está autodocumentado, por lo que puedes cargarlo en tu editor para hacer los cambios específicos para tus necesidades.

cp /etc/aliases /etc/aliases.bak
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
cp /etc/postfix/master.cf /etc/postfix/master.cf.bak
sed "s/LOGIN/[user]/" /etc/aliases.bak > /etc/aliases
sed "s/#myhostname = host.domain.tld/myhostname = \
	[localhost.localdomain]/" \
	/etc/postfix/main.cf.bak > /etc/postfix/main.cf
/usr/bin/newaliases
/usr/sbin/postfix start


Guión postfix para init.d

Para automatizar la ejecución de postfix, utiliza los siguientes comandos para crear el guión de init.d:

cat > /etc/rc.d/init.d/postfix << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/postfix

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in

        start)
        echo "Iniciando Postfix..."
        loadproc postfix start
        ;;

        stop)
        echo "Parando Postfix..."
        loadproc postfix stop
        ;;

        reload)
        echo "Recargando Postfix..."
        loadproc postfix reload
        ;;

        restart)
        $0 stop
        sleep 1
        $0 start
        ;;

        *)
        echo "Uso: $0 {start|stop|reload|restart}"
        exit 1
        ;;
esac

# Fin de $rc_base/init.d/postfix
EOF
chmod 755 /etc/rc.d/init.d/postfix

Crea los enlaces simbólicos a este fichero en los directorios apropiados de rc.d con los siguientes comandos:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/postfix ../rc0.d/K25postfix &&
ln -sf ../init.d/postfix ../rc1.d/K25postfix &&
ln -sf ../init.d/postfix ../rc2.d/K25postfix &&
ln -sf ../init.d/postfix ../rc3.d/S35postfix &&
ln -sf ../init.d/postfix ../rc4.d/S35postfix &&
ln -sf ../init.d/postfix ../rc5.d/S35postfix &&
ln -sf ../init.d/postfix ../rc6.d/K25postfix


Descripciones


qmail-1.03

Introducción a qmail

Localización de descarga (HTTP):		http://www.qmail.org/qmail-1.03.tar.gz
Localización de descarga (FTP):			
Versión usada:					1.03
Tamaño del paquete:				225 KB
Estimación del espacio necesario en disco:	4.6 MB
Descarga adicional:
parche errno para qmail

El paquete qmail contiene el Agente de Transporte de Correo (MTA) de Dan Bernstein. qmail proporciona entrega/retransmisión de correo local y remoto.


Instalación de qmail

qmail necesita que se añadan ciertas cuentas de usuario y grupos antes de instalar el software. Añade los usuarios y grupos con los siguientes comandos:

mkdir /var/qmail &&
groupadd nofiles &&
useradd -g nofiles -d /var/qmail/alias alias &&
useradd -g nofiles -d /var/qmail qmaild &&
useradd -g nofiles -d /var/qmail qmaill &&
useradd -g nofiles -d /var/qmail qmailp &&
groupadd qmail &&
useradd -g qmail -d /var/qmail qmailq &&
useradd -g qmail -d /var/qmail qmailr &&
useradd -g qmail -d /var/qmail qmails

Instala qmail ejecutando los siguientes comandos:

patch -Np1 -i ../qmail-1.03.errno.patch &&
make setup check &&
./config-fast `hostname` &&
cd /var/qmail &&
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root &&
chmod 644 .qmail-* &&
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail &&
mv /var/qmail/boot/home /var/qmail/rc &&
for mandir in 1 5 7 8; do mv /var/qmail/man/man$mandir/* \
    /usr/man/man$mandir; done &&
rm -rf /var/qmail/man


Configuración de qmail


Información sobre la configuración

Si utilizas inetd, el siguiente comando añadirá la entrada qmaild a /etc/inetd.conf:

echo "smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env \
tcp-env /var/qmail/bin/qmail-smtpd" >> /etc/inetd.conf

Si utilizas xinetd, el siguiente comando añadirá la entrada qmaild a /etc/xinetd.conf:

cat >> /etc/xinetd.conf << "EOF"
service smtp
{
    disable = no
    identifier              = smtp-local
    socket_type             = stream
    protocol                = tcp
    wait                    = no
    user                    = qmaild
    server                  = /var/qmail/bin/tcp-env
    server_args             = /var/qmail/bin/qmail-smtpd
    env                     = RELAYCLIENT=
    only_from               = 127.0.0.1
    log_on_failture         += USERID
}
EOF

Para automatizar la ejecución de qmail, utiliza los siguientes comandos para crear el guión de init.d:

cat > /etc/rc.d/init.d/qmail << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/qmail

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in

        start)
        echo "Iniciando Qmail..."
	/var/qmail/rc &
        ;;

        stop)
        echo "Parando Qmail..."
        killall qmail-send
        ;;
		
        restart)
        $0 stop
        sleep 1
        $0 start
        ;;

        *)
        echo "Uso: $0 {start|stop|restart}"
        exit 1
        ;;
esac

# Fin de $rc_base/init.d/qmail
EOF
chmod 755 /etc/rc.d/init.d/qmail

Crea los enlaces simbólicos a este fichero en los directorios apropiados de rc.d con los siguientes comandos:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/qmail ../rc0.d/K25qmail &&
ln -sf ../init.d/qmail ../rc1.d/K25qmail &&
ln -sf ../init.d/qmail ../rc2.d/K25qmail &&
ln -sf ../init.d/qmail ../rc3.d/S35qmail &&
ln -sf ../init.d/qmail ../rc4.d/S35qmail &&
ln -sf ../init.d/qmail ../rc5.d/S35qmail &&
ln -sf ../init.d/qmail ../rc6.d/K25qmail


Descripciones


sendmail-8.12.9

Introducción a sendmail

Localización de descarga (HTTP):		http://www.sendmail.org/ftp/sendmail.8.12.9.tar.gz
Localización de descarga (FTP):			ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.12.9.tar.gz
Versión usada:					8.12.9
Tamaño del paquete:				1.9 MB
Estimación del espacio necesario en disco:	13 MB

El paquete sendmail contiene un Agente de Transporte de Correo (MTA).

sendmail depende de: 
db-4.1.25 y procmail-3.22

Instalación de sendmail

Antes de construir sendmail, necesitamos crear los usuarios, grupos y directorios que este necesita, mediante los siguientes comandos:

groupadd smmsp &&
groupadd mail &&
useradd -g smmsp -G mail smmsp &&
chmod 1777 /tmp &&
chmod 1777 /var/mail &&
mkdir /var/spool/mqueue

Instala sendmail con los siguientes comandos:

cat > devtools/Site/site.config.m4 << "EOF"
define(`confMANGRP',`root')
define(`confMANOWN',`root')
define(`confSBINGRP',`root')
define(`confUBINGRP',`root')
define(`confUBINOWN',`root')
EOF
cd sendmail &&
sh Build &&
cd ../cf/cf &&
cp generic-linux.mc sendmail.mc &&
mkdir /etc/mail &&
sh Build sendmail.mc &&
sh Build install-cf &&
cd ../../ &&
sh Build install


Configuración de sendmail


Configuración de sendmail

echo `hostname` > /etc/mail/local-host-names
cat > /etc/mail/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
cd /etc/mail &&
cp -R  /usr/src/sendmail-8.12.9/cf/* . &&
cp -R  /usr/src/sendmail-8.12.9/cf/cf/submit.mc . &&
cp -R  /usr/src/sendmail-8.12.9/cf/cf/sendmail.mc . &&
newaliases -v

Para iniciar y parar sendmail durante el arranque/cierre del sistema crea el guión de arranque con los siguientes comandos:

cat > /etc/rc.d/init.d/sendmail << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/sendmail

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in

        start)
        echo "Iniciando sendmail..."
		loadproc /usr/sbin/sendmail -bs -bd -q5m start
        ;;

        stop)
        echo "Parando Sendmail..."
        killproc sendmail
        ;;
		
	status)
	statusproc sendmail
	;;
	
        restart)
        $0 stop
        sleep 1
        $0 start
        ;;

        *)
        echo "Uso: $0 {start|stop|status|restart}"
        exit 1
        ;;
esac

# Fin de $rc_base/init.d/sendmail
EOF
chmod 755 /etc/rc.d/init.d/sendmail

Crea los enlaces simbólicos en los niveles de arranque con los siguientes comandos:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/sendmail ../rc0.d/K25sendmail &&
ln -sf ../init.d/sendmail ../rc1.d/K25sendmail &&
ln -sf ../init.d/sendmail ../rc2.d/K25sendmail &&
ln -sf ../init.d/sendmail ../rc3.d/S35sendmail &&
ln -sf ../init.d/sendmail ../rc4.d/S35sendmail &&
ln -sf ../init.d/sendmail ../rc5.d/S35sendmail &&
ln -sf ../init.d/sendmail ../rc6.d/K25sendmail


exim-4.14

Introducción a exim

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.exim.org/pub/exim/exim4/exim-4.14.tar.bz2
Versión usada:					4.14
Tamaño del paquete:				1.2 MB
Estimación del espacio necesario en disco:	8.7 MB

El paquete exim contiene un Agente de Transporte de Correo escrito por la Universidad de Cambridge, liberado bajo la Licencia Pública GNU.

exim depende de:
db-4.1.25

Instalación de exim

Antes de construir exim, necesitamos crear un usuario y grupo para exim con los siguientes comandos:

groupadd exim
useradd -d /dev/null -g exim -s /bin/false exim

Instala exim con los siguientes comandos:

sed -e 's/^BIN_DIR.*$/BIN_DIRECTORY=\/usr\/sbin/' src/EDITME | \
  sed -e 's/^CONF.*$/CONFIGURE_FILE=\/etc\/exim.conf/' | \
  sed -e 's/^EXIM_USER.*$/EXIM_USER=exim/' | \
  sed -e 's/^EXIM_MONITOR/#EXIM_MONITOR/' > Local/Makefile &&
make &&
make install &&
ln -s /usr/sbin/exim /usr/sbin/sendmail


Configuración de exim


Configuración de exim

Crea los ficheros de configuración de exim con los siguientes comandos:

cat >> /etc/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
exim -v -bi &&
/usr/sbin/exim -bd -q1m

Para iniciar y parar exim durante el arranque/cierre del sistema, crea el guión de arranque de exim con los siguientes comandos:

cat > /etc/rc.d/init.d/exim << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/exim

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in

        start)
        echo "Iniciando exim..."
        loadproc /usr/sbin/exim -bd -q1m
        ;;

        stop)
        echo "Parando exim..."
        killproc exim
        ;;
		
	status)
	statusproc exim
	;;
	
        restart)
        $0 stop
        sleep 1
        $0 start
        ;;

        *)
        echo "Uso: $0 {start|stop|status|restart}"
        exit 1
        ;;
esac

# Fin de $rc_base/init.d/exim
EOF
chmod 755 /etc/rc.d/init.d/exim

Crea los enlaces simbólicos de los niveles de arranque con los siguientes comandos:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/exim ../rc0.d/K25exim &&
ln -sf ../init.d/exim ../rc1.d/K25exim &&
ln -sf ../init.d/exim ../rc2.d/K25exim &&
ln -sf ../init.d/exim ../rc3.d/S35exim &&
ln -sf ../init.d/exim ../rc4.d/S35exim &&
ln -sf ../init.d/exim ../rc5.d/S35exim &&
ln -sf ../init.d/exim ../rc6.d/K25exim


qpopper-4.0.5

Introducción a qpopper

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.0.5.tar.gz
Versión usada:					4.0.5
Tamaño del paquete:				2.2 MB
Estimación del espacio necesario en disco:	9 MB

El paquete qpopper contiene un servidor de correo POP3.

qpopper depende de:
sendmail-8.12.9, postfix-2.0.7 o qmail-1.03

Configuración de qpopper


Información sobre la configuración

Si utilizas inetd, el siguiente comando añadirá la entrada qpopper a /etc/inetd.conf:

echo "pop stream tcp nowait root /usr/sbin/popper popper" >> \
/etc/inetd.conf &&
echo "pop 110/tcp" >> /etc/services &&
killall inetd || inetd &&
echo "local0.notice;local0.debug        /var/log/POP.log" >> \
/etc/syslog.conf &&
killall -HUP  syslogd

Ejecuta killall -HUP inetd para leer de nuevo el fichero inetd.conf.

Si utilizas xinetd, el siguiente comando añadirá la entrada qpopper a /etc/xinetd.conf:

cat >> /etc/xinetd.conf << "EOF"
     service pop
     {
          port        = 110
          socket_type = stream
          protocol    = tcp
          wait        = no
          user        = root
          passenv     = PATH
          server      = /usr/sbin/popper
         server_args = popper
     }
EOF

Ejecuta killall -HUP xinetd para leer de nuevo el fichero xinetd.conf.


Capítulo 23. Otros servidores

BIND 9.2.2

Introducción a BIND 9.2.2

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.isc.org/isc/bind9/9.2.2/bind-9.2.2.tar.gz
Versión usada:					9.2.2
Tamaño del paquete:				4.8 MB
Estimación del espacio necesario en disco:	38 MB

El paquete BIND proporciona un servidor DNS y utilidades de cliente.


Instalación de BIND

Instala BIND ejecutando los siguientes comandos:

./configure --prefix=/usr &&
make &&
make install


Configuración de BIND

Configuraremos BIND para que se ejecute en una jaula chroot como usuario sin privilegios (named). Esta configuración es más segura pues un compromiso en el DNS sólo puede afectar a unos pocos ficheros en el directorio $HOME del usuario named.

Primero crearemos algunos ficheros y directorios que necesita BIND:

groupadd -g 200 named &&
useradd -m -g named -u 200 -s /bin/false named &&
cd /home/named &&
mkdir -p dev etc/namedb/slave var/run &&
mknod /home/named/dev/null c 1 3 &&
mknod /home/named/dev/random c 1 8 &&
chmod 666 /home/named/dev/{null,random} &&
mkdir /home/named/etc/namedb/pz &&
cp /etc/localtime /home/named/etc


Ficheros de configuración

named.conf, root.hints, 127.0.0 y rndc.conf

Crea el fichero named.conf con los siguientes comandos:

cat > /home/named/etc/named.conf << "EOF"
 options {
     directory "/etc/namedb";
    pid-file "/var/run/named.pid";
    statistics-file "/var/run/named.stats";
       
 };
 controls {
     inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
 };
 key "rndc_key" {
     algorithm hmac-md5;
     secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
 };
 zone "." {
     type hint;
     file "root.hints";
 };
 zone "0.0.127.in-addr.arpa" {
     type master;
     file "pz/127.0.0";
 };
EOF

Crea un fichero de zona con el siguiente contenido:

cat > /home/named/etc/namedb/pz/127.0.0 << "EOF"
$TTL 3D
@      IN      SOA     ns.local.domain. hostmaster.local.domain. (
                        1       ; Serial
                        8H      ; Refresh
                        2H      ; Retry
                        4W      ; Expire
                        1D)     ; Minimum TTL
                NS      ns.local.domain.
1               PTR     localhost.
EOF

Crea el fichero root.hints con los siguientes comandos:

cat > /home/named/etc/namedb/root.hints << "EOF"
.                       6D  IN      NS      A.ROOT-SERVERS.NET.
.                       6D  IN      NS      B.ROOT-SERVERS.NET.
.                       6D  IN      NS      C.ROOT-SERVERS.NET.
.                       6D  IN      NS      D.ROOT-SERVERS.NET.
.                       6D  IN      NS      E.ROOT-SERVERS.NET.
.                       6D  IN      NS      F.ROOT-SERVERS.NET.
.                       6D  IN      NS      G.ROOT-SERVERS.NET.
.                       6D  IN      NS      H.ROOT-SERVERS.NET.
.                       6D  IN      NS      I.ROOT-SERVERS.NET.
.                       6D  IN      NS      J.ROOT-SERVERS.NET.
.                       6D  IN      NS      K.ROOT-SERVERS.NET.
.                       6D  IN      NS      L.ROOT-SERVERS.NET.
.                       6D  IN      NS      M.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.     6D  IN      A       198.41.0.4
B.ROOT-SERVERS.NET.     6D  IN      A       128.9.0.107
C.ROOT-SERVERS.NET.     6D  IN      A       192.33.4.12
D.ROOT-SERVERS.NET.     6D  IN      A       128.8.10.90
E.ROOT-SERVERS.NET.     6D  IN      A       192.203.230.10
F.ROOT-SERVERS.NET.     6D  IN      A       192.5.5.241
G.ROOT-SERVERS.NET.     6D  IN      A       192.112.36.4
H.ROOT-SERVERS.NET.     6D  IN      A       128.63.2.53
I.ROOT-SERVERS.NET.     6D  IN      A       192.36.148.17
J.ROOT-SERVERS.NET.     6D  IN      A       192.58.128.30
K.ROOT-SERVERS.NET.     6D  IN      A       193.0.14.129
L.ROOT-SERVERS.NET.     6D  IN      A       198.32.64.12
M.ROOT-SERVERS.NET.     6D  IN      A       202.12.27.33
EOF

Crea el fichero rndc.conf con los siguientes comandos:

cat > /etc/rndc.conf << "EOF"
key rndc_key {
algorithm "hmac-md5";
    secret
    "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
    };
options {
    default-server localhost;
    default-key    rndc_key;
};
EOF

Crea o modifica resolv.conf para utilizar el nuevo servidor de nombres con los siguientes comandos:

cp /etc/resolv.conf /etc/resolv.conf.bak &&
cat > /etc/resolv.conf << "EOF"
search yourdomain.com
nameserver 127.0.0.1
EOF

Establece los permisos de la jaula chroot con el siguiente comando:

chown -R named.named /home/named

Crea el guión de arranque de BIND:

cat > /etc/rc.d/init.d/bind << "EOF"
#!/bin/bash
# Inicio $rc_base/init.d/bind
# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
	start)
		echo "Iniciando named..."
		loadproc /usr/sbin/named -u named -t /home/named -c \
		        /etc/named.conf
		;;
	stop)
		echo "Parando named..."
		killproc /usr/sbin/named
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
   reload)
                echo "Recargando named..."
                /usr/sbin/rndc -c /etc/rndc.conf reload
                ;;

	status)
		statusproc /usr/sbin/named
		;;
	*)
		echo "Uso: $0 {start|stop|restart|status}"
		exit 1
		;;
esac
# End $rc_base/init.d/bind
EOF

Añade los enlaces simbólicos en los niveles de arranque:

chmod 754 /etc/rc.d/init.d/bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc0.d/K49bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc1.d/K49bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc2.d/K49bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc3.d/S22bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc4.d/S22bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc5.d/S22bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc6.d/K49bind

Ahora inicia BIND con el nuevo guión de arranque:

/etc/rc.d/init.d/bind start


Ejecutar un servidor CVS


Activar un servidor CVS.

Expondremos la activación de un servidor CVS utilizando OpenSSH como método de acceso remoto. Otros métodos de acceso, que incluyen :pserver: y :server:, no deberían usarse como acceso de escritura al repositorio CVS. El método :pserver: envía las contraseñas por la red en texto claro y el método :server: no está soportado en todas las versiones de CVS. Pueden encontrarse instrucciones para acceso anónimo al CVS, en modo sólo lectura, utilizando :pserver:, al final de esta sección.

La configuración de nuestro servidor CVS consta de cuatro pasos:


1. Crea un repositorio.

Crea un nuevo repositorio CVS con los siguientes comandos, siendo root:

mkdir /cvsroot &&
chmod 1777 /cvsroot &&
export CVSROOT=/cvsroot &&
cvs init


dhcp-3.0pl2

Introducción a dhcp

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.isc.org/isc/dhcp/dhcp-3.0pl2.tar.gz
Versión usada:					3.0pl2
Tamaño del paquete:				852 KB
Estimación del espacio necesario en disco:	29.6 MB

El paquete dhcp contiene tanto el programa cliente como el servidor para DHCP. dhclient (el cliente) es útil para conectar tu computadora a una red que utilice DHCP para asignar las direcciones de red. dhcpd (el servidor) es útil para asignar direcciones de red en tu red privada.

dhcp no necesita nada para compilar, pero para usarlo debes tener el soporte 
para "Packet Socket"  compilado dentro del núcleo y "Socket Filtering" compilado en
el núcleo o como módulo.

Instalación de dhcp

Instala dhcp ejecutando los siguientes comandos:

./configure &&
make &&
make LIBDIR=/usr/lib INCDIR=/usr/include install


Configuración de dhcp


Información sobre la configuración

Puedes encontrar información sobre la configuración del cliente dhcp en el Capítulo 14.

Ten en cuenta que sólo querrás iniciar el servidor dhcp si quieres suministrar direcciones LAN a tu red. El cliente dhcp no necesita que se utilice este guión. Ten también en cuenta que este guión está hecho para la INTERFAZ 'eth1', por lo que puede que necesites modificarlo para la configuración de tu hardware. Con esto en mente, puedes crear el guión dhcp de init.d usando los siguientes comandos.

cat > /etc/rc.d/init.d/dhcp << "EOF"
#!/bin/sh
# Inicio $rc_base/init.d/dhcp

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Iniciando el Servidor DHCP..."
                loadproc dhcpd -q eth1
                ;;

        stop)
                echo "Parando el servidor DHCP..."
                killproc dhcpd
                ;;

        reload)
                echo "Recargando el Servidor DHCP..."
                reloadproc dhcpd
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc dhcpd
                ;;

        *)
                echo "Uso: $0 {start|stop|reload|restart|status}"
                exit 1
                ;;
esac

# Fin $rc_base/init.d/dhcp
EOF
chmod 755 /etc/rc.d/init.d/dhcp

El fichero lease debe existir en el arranque. El siguiente comando satisfará este requisito:

touch /var/state/dhcp/dhcpd.leases

Los siguientes comandos crearán un fichero de configuración base para el servidor dhcp. Hay varias opciones que puede que quieras añadir (información que es devuelta al cliente dhcp) y que están recogidas en la página de manual de dhcp.conf.

cat > /etc/dhcpd.conf << "EOF"
default-lease-time 72000;
max-lease-time 144000;
ddns-update-style ad-hoc;

subnet 192.168.5.0 netmask 255.255.255.0 {
  range 192.168.5.10 192.168.5.240;
  option broadcast-address 195.168.5.255;
  option routers 192.168.5.1;
}
EOF

Todas las direcciones deben cambiarse de acuerdo a tus circunstancias.


leafnode-1.9.33


Instalación de leafnode

Instala leafnode ejecutando los siguientes comandos:

groupadd news
useradd -g news news
./configure --localstatedir=/var --prefix=/usr \
    --sysconfdir=/etc/news --with-lockfile=/var/lock/fetchnews.lck &&
make &&
make install &&
ldconfig &&
make update


OpenSSH-3.6.1p1

Introducción a OpenSSH

Localización de descarga (HTTP):		http://sunsite.ualberta.ca/pub/OpenBSD/OpenSSH/portable/openssh-3.6.1p1.tar.gz
Localización de descarga (FTP):			ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-3.6.1p1.tar.gz
Versión usada:					3.6.1p1
Tamaño del paquete:				855 KB
Estimación del espacio necesario en disco:	8.3 MB

El paquete OpenSSH contiene clientes ssh y el demonio sshd. Es útil para encriptar todo el tráfico que se envía a la red.

OpenSSH depende de:
openssl-0.9.7a
OpenSSH utilizará:
X11-ssh-askpass y Linux_PAM-0.77

Configuración de OpenSSH


Guión sshd para init.d

Advierte que sólo querrás iniciar el servidor sshd si quieres ser capaz de acceder por ssh dentro de tu máquina. El cliente ssh no necesita que se utilice este guión. Dicho esto, si quieres lanzar el demonio ssh, puedes crear el guión sshd para init.d con los siguientes comandos:

cat > /etc/rc.d/init.d/sshd << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/sshd

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
	        echo "Iniciando el Servidor SSH..."
	        loadproc /usr/sbin/sshd
	        ;;

	stop)
	        echo "Parando el Servidor SSH..."
	        killproc /usr/sbin/sshd
	        ;;

	reload)
	        echo "Recargando el Servidor SSH..."
	        reloadproc /usr/sbin/sshd
	        ;;
	     
	restart)
	        $0 stop
	        sleep 1
	        $0 start
	        ;;

	status)
	        statusproc /usr/sbin/sshd
	        ;;

	*)
	        echo "Uso: $0 {start|stop|reload|restart|status}"
	        exit 1
	        ;;
esac

# Fin de $rc_base/init.d/sshd
EOF
chmod 755 /etc/rc.d/init.d/sshd

Crea los enlaces simbólicos a este fichero en los directorios apropiados de rc.d con los siguientes comandos:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/sshd ../rc0.d/K30sshd &&
ln -sf ../init.d/sshd ../rc1.d/K30sshd &&
ln -sf ../init.d/sshd ../rc2.d/K30sshd &&
ln -sf ../init.d/sshd ../rc3.d/S30sshd &&
ln -sf ../init.d/sshd ../rc4.d/S30sshd &&
ln -sf ../init.d/sshd ../rc5.d/S30sshd &&
ln -sf ../init.d/sshd ../rc6.d/K30sshd


openldap-2.1.17

Introducción a OpenLDAP

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.OpenLDAP.org/pub/OpenLDAP/openldap-release/openldap-2.1.17.tgz
Versión usada:					2.1.17
Tamaño del paquete:				2.0 MB
Estimación del espacio necesario en disco:	102 MB

El paquete OpenLDAP proporciona una implementación en código abierto del Protocolo Ligero de Acceso a Directorios.

OpenLDAP depende de:
db-4.1.25

Instalación de OpenLDAP

Instala OpenLDAP ejecutando los siguientes comandos:

./configure --prefix=/usr --sysconfdir=/etc --disable-debug \
   --libexecdir=/usr/sbin --enable-ldbm &&
make depend &&
make &&
make test &&
make install &&


Samba-2.2.8a

Introducción a Samba

Localización de descarga (HTTP):		http://us1.samba.org/samba/ftp/samba-2.2.8a.tar.bz2
Localización de descarga (FTP):			
Versión usada:					2.2.8a
Tamaño del paquete:				4.4 MB
Estimación del espacio necesario en disco:	43 MB
Estimación del tiempo de construcción:		5.40 SBU

El paquete Samba proporciona servicios de ficheros e impresión a clientes SMB/CIFS.


Instalación de Samba

Instala Samba ejecutando los siguientes comandos:

mkdir -p /etc/samba/private &&
mkdir -p /var/cache/samba &&
./configure \
   --prefix=/usr \
   --sysconfdir=/etc \
   --localstatedir=/var \
   --with-piddir=/var/run \
   --with-fhs \
   --with-smbmount &&
make &&
make install &&
mv /usr/bin/smbmount /usr/bin/mount.smbfs &&
rm -rf /usr/private &&
echo "swat 901/tcp" >> /etc/services &&
echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" >> \
   /etc/inetd.conf


Configuración de Samba

Configuraremos un servidor Samba (SAMBABOX) para actuar como controlador primario de dominio, así como configuraremos un cliente del dominio que ejecute Windows 2000 Server (WIN2KBOX) y actúe como servidor miembro del dominio. Se darán instrucciones detalladas para añadir WIN2KBOX al dominio, debido a los pasos extra necesarios. Se pueden encontrar instrucciones para añadir clientes Windows 95/98/XP en la documentación recién instalada, apuntando un navegador web a:

file:///usr/share/samba/swat/using_samba/ch03_01.html#ch03-55770.


Ficheros de configuración

/etc/samba/smb.conf, /etc/rc.d/init.d/samba

Primero crearemos algunos directorios que necesita Samba:

mkdir /var/lib/samba &&
mkdir /var/lib/samba/netlogon &&
mkdir /var/lib/samba/ntprofile &&
mkdir /var/lib/samba/profiles &&
chmod -R 1777 /var/lib/samba

Y el fichero de configuración de Samba:

cat > /etc/samba/smb.conf << "EOF"
[global]
    netbios name = SAMBABOX
    workgroup = DOMAIN01
    os level = 64
    preferred master = yes
    domain master = yes
    local master = yes
    security = user
    encrypt passwords = yes
    domain logons = yes
    log file = /var/log/log.%m
    log level = 1
    logon path = \\%N\home\%u
    logon drive = H:
    logon home = \\homeserver\%u
    logon script = logon.cmd
[netlogon]
      path = /var/lib/samba/netlogon
      read only = yes
      write list = ntadmin
[profiles]
      path = /var/lib/samba/ntprofile
      read only = no
      create mask = 0600
      directory mask = 0700
; Compartido escribible por todo el mundo para pruebas
[tmp]
comment = Espacio para ficheros temporales
        path = /tmp
        read only = no
        public = yes
[home]
comment = Directorios personales de los usuarios
        path = /home
        read only = no
        public = no
EOF

Ahora añade la cuenta de máquina de confianza para WIN2KBOX:

/usr/sbin/useradd -g 100 -d /dev/null -c \
    "machine nickname" -s /bin/false win2kbox$ &&
passwd -l win2kbox$ &&
smbpasswd -a -m win2kbox

Crea el guión de arranque de Samba:

cat > /etc/rc.d/init.d/samba << "EOF"
#!/bin/bash
# Inicio de $rc_base/init.d/samba
# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
	start)
		echo "Iniciando nmbd..."
		loadproc /usr/sbin/nmbd -D
		echo "Iniciando smbd..."
		loadproc /usr/sbin/smbd -D
		;;
	stop)
		echo "Parando smbd..."
		killproc /usr/sbin/smbd
		echo "Parando nmbd..."
		killproc /usr/sbin/nmbd
		;;
	reload)
		echo "Recargando smbd..."
		reloadproc /usr/sbin/smbd
		echo "Recargando nmbd..."
		reloadproc /usr/sbin/nmbd
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
	status)
		statusproc /usr/sbin/nmbd
		statusproc /usr/sbin/smbd
		;;
	*)
		echo "Uso: $0 {start|stop|reload|restart|status}"
		exit 1
		;;
esac
# Fin de $rc_base/init.d/samba
EOF

Añade los enlaces simbólicos de los niveles de arranque:

chmod 754 /etc/rc.d/init.d/samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc0.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc1.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc2.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S24samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc4.d/S24samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc5.d/S24samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc6.d/K48samba

Ahora, utilizaremos nuestro nuevo guión de arranque para iniciar Samba:

/etc/rc.d/init.d/samba start

Tenemos que añadir la cuenta root de SAMBABOX a la lista de usuarios de Samba para unir WIN2KBOX al dominio DOMAIN01:

smbpasswd -a root

Una vez ejecutado Samba y añadido root a la lista de usuarios de Samba, la primera máquina que uniremos a DOMAIN01 será WIN2KBOX, la máquina Windows 2000 Server para la que hemos creado la cuenta de máquina de confianza. En WIN2KBOX:

1.  Pulsa con el botón derecho en "Mi PC".
2.  Pulsa en "Propiedades".
3.  Pulsa en la pestaña "Identificación de red".
4.  Pulsa el botón "Propiedades".
5.  En el campo de edición "Nombre:" introduce WIN2KBOX.
6.  Pulsa el botón de radio "Dominio:", introduce DOMAIN01 en el campo de 
    edición y pulsa "Aceptar".
7.  Cuando aparezca el cuadro de diálogo "Nombre de usuario del dominio y 
    contraseña", introduce root y su contraseña en SAMBABOX, y pulsa "Aceptar".
8.  Después de que se negocie la confianza entre máquinas, pulsa el botón 
    "Aceptar" en el cuadro de diálogo de bienvenida al dominio DOMAIN01.
9.  Pulsa "Aceptar" en el cuadro de diálogo que te recuerda que reinicies.
10. Pulsa "Aceptar" para cerrar la ventana "Propiedades del Sistema".
11. Pulsa "Si" para reiniciar WIN2KBOX.


Entrar en DOMAIN01.

Ahora iniciaremos la sesión en el dominio, con nuestro usuario recién creado, de esta forma:

1. Pulsa Ctrl-Alt-Del para que aparezca el cuadro de 
	diálogo "Conectarse a Windows".
2. Introduce el nombre de usuario win2kuser01 y su contraseña.
3. Selecciona DOMAIN01 en la caja de combinación "Conectarse a:" y pulsa "Aceptar".

Añade la entrada swat a /etc/services con el siguiente comando:

echo "swat            901/tcp" >> /etc/services

Si utilizas inetd, el siguiente comando añadirá la entrada swat en /etc/inetd.conf:

echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" \
    >> /etc/inetd.conf

Si utilizas xinetd, el siguiente comando añadirá la entrada swat en /etc/xinetd.conf:

cat >> /etc/xinetd.conf << "EOF"
service swat
{
    port            = 901
    socket_type     = stream
    wait            = no
    only_from       = 127.0.0.1
    user            = root
    server          = /usr/sbin/swat
    log_on_failure  += USERID
}
EOF

La Herramienta de Administración Web de Samba, swat, puede lanzarse con el siguiente comando en SAMBABOX:

lynx http://localhost:901

El navegador lynx se utiliza en esta demostración, pero no es necesario.


Explicación de los comandos de configuración

cat > /etc/samba/smb.conf << "EOF" : Crea un fichero de configuración por defecto de Samba. Esta configuración permitirá a Samba actuar como Controlador Primario de Dominio para una red basada en Microsoft Windows. Si no deseas esto, se incluye un fichero simple smb.conf predefinido con la distribución de Samba. Mira el fichero samba2.2.8a/examples/smb.conf.default. La configuración como Controlador Primario de Dominio (PDC) es ligeramente más complicada que la configuración de un servidor ordinario, por lo que aquí se darán las instrucciones para la configuración de un PDC.

cat > /etc/rc.d/init.d/samba << "EOF" : Crea el guión de arranque de Samba, utilizado para iniciar y parar automáticamente Samba durante el arranque y cierre del sistema.

/usr/sbin/useradd -g 100 -d /dev/null -c \
    "Win2k Server" -s /bin/false win2kbox$
: Este comando crea una cuenta de máquina de confianza, necesaria sólo para que los servidores Windows 2000/NT se autentifiquen a nuestro nuevo PDC. No son necesarias cuentas de máquinas de confianza para clientes Win95/98.

echo "swat 901/tcp" >> /etc/services : Registra el programa swat para usar el puerto 901.

echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" >> /etc/inetd.conf : Indica a inetd dónde encontrar y cómo ejecutar swat.

ln -s /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S600samba, etc : Crea los guiones de arranque de Samba, usados para iniciar y parar automáticamente Samba durante el arranque y cierre del sistema.


xinetd-2.3.10

Introducción a xinetd

Localización de descarga (HTTP):		http://www.xinetd.org/xinetd-2.3.10.tar.gz
Localización de descarga (FTP):			
Versión usada:					2.3.10
Tamaño del paquete:				300 KB
Estimación del espacio necesario en disco:	1.2 MB

xinetd es el eXtended InterNET services Daemon (Demonio extendido de servicios de Internet), un sustituto seguro para inetd.


Instalación de xinetd

Instala xinetd ejecutando los siguientes comandos:

./configure --prefix=/usr &&
make &&
make install


Configuración de xinetd

Crea el fichero xinetd.conf con los siguientes comandos:

cp /etc/xinetd.conf /etc/xinetd.conf.bak
sed -e 's/etc/sbin/g' xinetd/sample.conf > /etc/xinetd.conf


Ficheros de configuración

/etc/xinetd.conf

Crea el guión de arranque xinetd:

cat > /etc/rc.d/init.d/xinetd << "EOF"
#!/bin/bash
# Inicio de $rc_base/init.d/xinetd
# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
	start)
		echo "Iniciando xinetd..."
		loadproc /usr/sbin/xinetd
		;;
	stop)
		echo "Parando xinetd..."
		killproc /usr/sbin/xinetd
		;;
	reload)
		echo "Recargando xinetd..."
		killall -HUP xinetd
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
	status)
		statusproc /usr/sbin/xinetd
		;;
	*)
		echo "Uso: $0 {start|stop|reload|restart|status}"
		exit 1
		;;
esac
# Fin de $rc_base/init.d/xinetd
EOF

Añade los enlaces simbólicos a los niveles de arranque:

chmod 754 /etc/rc.d/init.d/xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc0.d/K49xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc1.d/K49xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc2.d/K49xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc3.d/S23xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc4.d/S23xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc5.d/S23xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc6.d/K49xinetd

Ahora, utilizaremos nuestro nuevo guión de arranque para iniciar xinetd:

/etc/rc.d/init.d/xinetd start

La comprobación del fichero /var/log/daemon.log puede resultar entretenida. Este fichero puede contener entradas similares a las siguientes:

Aug 22 21:40:21 dps10 xinetd[2696]: Server /usr/sbin/in.rlogind is not 
executable [line=29]
Aug 22 21:40:21 dps10 xinetd[2696]: Error parsing attribute server - 
DISABLING SERVICE [line=29]
Aug 22 21:40:21 dps10 xinetd[2696]: Server /usr/sbin/in.rshd is not 
executable [line=42]

Estos errores se deben al hecho de que no tenemos instalados todavía muchos de los servidores que xinetd intenta controlar.


Capítulo 24. Bases de Datos

db-4.1.25


db-3.3.11

Introducción a db-3.3.11

Localización de descarga (HTTP):		http://www.sleepycat.com/update/snapshot/db-3.3.11.tar.gz
Localización de descarga (FTP):			
Versión usada:					3.3.11
Tamaño del paquete:				2.3 MB
Estimación del espacio necesario en disco:	19 MB

El paquete db-3.3.11 contiene la versión 3.3.11 de la Base de datos Berkeley.


Instalación de db-3.3.11

Instala db-3.3.11 ejecutando los siguientes comandos:

cd build_unix &&
../dist/configure --prefix=/opt/db-3.3 --enable-compat185 &&
make &&
make docdir=/opt/db-3.3/doc/Berkeley-DB install &&
cd /opt/db-3.3/lib/ &&
rm -f libdb.so &&
for i in $(ls); do mv $i /usr/lib; ln -sf /usr/lib/$i; done &&
cd /opt/db-3.3/include/ &&
sed 's/^DB185/DB/' db_185.h > db_185.h.new &&
mv db_185.h.new db_185.h &&
ln -nsf /opt/db-3.3/include /usr/include/db3


MySQL-3.23.55

Introducción a MySQL

Localización de descarga (HTTP):		http://mysql.he.net/Downloads/MySQL-3.23/mysql-3.23.55.tar.gz
Localización de descarga (FTP):			ftp://mirror.mcs.anl.gov/pub/mysql/Downloads/MySQL-3.23/mysql-3.23.55.tar.gz
Versión usada:					3.23.55
Tamaño del paquete:				11 MB
Estimación del espacio necesario en disco:	70 MB

El paquete MySQL contiene la librería mysql, el servidor y las utilidades cliente.


Instalación de mysql

Por razones de seguridad, ejecutar el servidor con un usuario y grupo sin privilegios es súmamente recomendable:

groupadd mysql &&
useradd -c mysql -d /dev/null -g mysql -s /bin/false mysql

Construye e instala mysql ejecutando los siguientes comandos:

cp configure configure.old &&
sed -e "s%mysql-test/Makefile%%" -e "s% mysql-test%%" configure.old > configure &&
./configure --prefix=/usr \
            --sysconfdir=/etc \
            --libexecdir=/usr/sbin \
            --localstatedir=/var/lib/mysql \
            --enable-thread-safe-client \
            --without-debug \
            --without-bench &&
make &&
make install

Configuración de mysql


Información sobre la configuración

Puedes usar varios ficheros con configuraciones predefinidas, que están en /usr/share/mysql.

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

Ahora podemos crear una base de datos y cambiar el propietario al usuario y grupo sin privilegios.

mysql_install_db
chown -R mysql:mysql /var/lib/mysql

Para completar la configuración es necesario que el servidor mysql se esté ejecutando:

safe_mysqld 2>&1 >/dev/null &

La instalación por defecto no establece una contraseña para el administrador. Así que nos conectaremos y le pondremos una. Sugerimos encarecidamente que cambies 'nueva-contraseña' por la tuya propia.

mysql -uroot mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.23.51-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> UPDATE user SET password=password('nueva-contraseña') WHERE user='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> EXIT;
bye

Ahora que hemos terminado la configuración del servidor podemos cerrarlo.

kill `pidof -x safe_mysqld mysqld`

Guión de init.d para mysql

Para automatizar la ejecución de mysql, usa los siguientes comandos para crear el guión init.d:

cat > /etc/rc.d/init.d/mysql << "EOF"
#!/bin/bash
# Inicio $rc_base/init.d/

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Iniciando el demonio MySQL..."
                /usr/bin/safe_mysqld 2>&1 >/dev/null &
                evaluate_retval
                ;;

        stop)
                echo "Parando el demonio MySQL..."
                killproc mysqld
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc /usr/sbin/mysqld
                ;;

        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# Fin $rc_base/init.d/
EOF
chmod 755 /etc/rc.d/init.d/mysql

Crea los enlaces simbólicos a este fichero en el directorio rc.d con los siguientes comandos:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/mysql ../rc0.d/K26mysql &&
ln -sf ../init.d/mysql ../rc1.d/K26mysql &&
ln -sf ../init.d/mysql ../rc2.d/K26mysql &&
ln -sf ../init.d/mysql ../rc3.d/S34mysql &&
ln -sf ../init.d/mysql ../rc4.d/S34mysql &&
ln -sf ../init.d/mysql ../rc5.d/S34mysql &&
ln -sf ../init.d/mysql ../rc6.d/K26mysql

PostgreSQL-7.3.2


Instalación de PostgreSQL

Instala PostgreSQL ejecutando los siguientes comandos:

./configure --prefix=/usr &&
make &&
make install

Inicializa un grupo de bases de datos con los siguientes comandos:

mkdir -p /var/pgsql/data &&
useradd -d /var/pgsql/data postgres &&
chown postgres /var/pgsql/data &&
su - postgres -c '/usr/bin/initdb -D /var/pgsql/data'

Arranca el servidor de bases de datos con el siguiente comando:

su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \
        /var/pgsql/data/logfile 2>&1 &'

Ahora podemos crear una base de datos y verificar la instalación:

su - postgres -c '/usr/bin/createdb test'
echo "create table t1 ( name varchar(20), state_province varchar(20) );" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "insert into t1 values ('Billy', 'NewYork');" \
                | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Evanidus', 'Quebec');" \
	        | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Jesse', 'Ontario');" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test')


Configuración de PostgreSQL

Ficheros de configuración

$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf, $PGDATA/postgresql.conf

La variable de entorno PGDATA se usa para distinguir un grupo de bases de datos de otro al establecer su valor al directorio que contiene el grupo deseado. Los tres ficheros de configuración se encuentran en cada directorio $PGDATA/. Los detalles sobre el formato de los ficheros y las opciones que pueden usarse se encuentran en:

file:///usr/share/doc/postgresql/html/tutorial.html

Guión postgres para init.d

Crea el guión de arranque de postgres con lo siguiente:

cat > /etc/rc.d/init.d/postgres << "EOF"
#!/bin/bash
# Inicio de $rc_base/init.d/postgres

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Iniciando el demonio PostgreSQL..."
                su - postgres -c '/usr/bin/pg_ctl start -W -D /var/pgsql/data \
                               -l /var/pgsql/data/logfile -o "-i" '
                evaluate_retval
                ;;

        stop)
                echo "Parando el demonio PostgreSQL..."
                /usr/bin/pg_ctl stop -m smart -D /var/pgsql/data
                evaluate_retval
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                /usr/bin/pg_ctl status -D /var/pgsql/data
                ;;

        *)
                echo "Uso: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# Fin de $rc_base/init.d/

EOF
chmod 755 /etc/rc.d/init.d/postgres

Crea los enlaces simbólicos a este fichero en los directorios pertinentes de rc.d con los siguientes comandos:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/postgres ../rc0.d/K26postgres &&
ln -sf ../init.d/postgres ../rc1.d/K26postgres &&
ln -sf ../init.d/postgres ../rc2.d/K26postgres &&
ln -sf ../init.d/postgres ../rc3.d/S34postgres &&
ln -sf ../init.d/postgres ../rc4.d/S34postgres &&
ln -sf ../init.d/postgres ../rc5.d/S34postgres &&
ln -sf ../init.d/postgres ../rc6.d/K26postgres

Descripciones


Capítulo 25. Servicios de Web

Apache-1.3.27


Instalación de Apache

Por cuestiones de seguridad, se recomienda encarecídamente ejecutar el servidor con usuario y grupo sin privilegios.

groupadd apache &&
useradd -c apache -d /dev/null -g apache -s /bin/false apache

Construye e instala Apache ejecutando los siguientes comandos:

./configure --prefix=/usr \
            --sbindir=/usr/sbin \
            --libexecdir=/usr/lib/apache \
            --sysconfdir=/etc/apache \
            --includedir=/usr/include/apache \
            --datadir=/var/www \
            --localstatedir=/var/www \
            --logfiledir=/var/log/apache \
            --runtimedir=/var/run \
            --enable-module=all \
            --enable-shared=max \
            --disable-module=auth_db \
            --disable-module=auth_dbm \
            --server-uid=apache \
            --server-gid=apache &&
make &&
make install

Capítulo 26. Instalación de las X

XFree86-4.3.0

Introducción a XFree86

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/
Versión usada:					4.3.0
Tamaño del paquete:				137 MB
Estimación del espacio necesario en disco:	633 MB
Estimación del tiempo de construcción:		75m (667 MHz)

XFree86 es una implementación en código abierto y de libre distribución del Sistema de Ventanas X. XFree86 proporciona una interfaz cliente/servidor entre el hardware (ratón, teclado y vídeo) y el entorno de escritorio, mientras que también proporciona la infraestructura para la creación de ventanas y una interfaz de aplicaciones estandarizada (API).

XFree86 depende de: 
freetype-2.1.3, expat-1.95.6 y libpng-1.2.5.

Son varios los ficheros que deben obtenerse de la localización de descarga:
X430src-1.tgz 10736 KB 
X430src-2.tgz  7776 KB   
X430src-3.tgz 12077 KB   
X430src-4.tgz 12604 KB   
X430src-5.tgz  4286 KB   
X430src-6.tgz  7886 KB   
X430src-7.tgz  9099 KB

Los tres primeros paquetes son los programas de XFreee86, el cuarto y el quinto son fuentes tipográficas, el sexto contiene los fuentes de la documentación y el séptimo es la documentación lista para consultar. También hay otros dos paquetes, doctools-1.3.1.tgz que contiene programas para procesar los fuentes de la documentación y utils-1.1.0.tgz que contiene gnutar y zlib que ya están instalados en un sistema LFS.

Para comprobar la integridad de los paquetes, descarga el fichero SUMS.md5sum. Luego haz:
md5sum X430src* > md5sums &&
diff md5sums SUMS.md5sum
Las únicas diferencias que deberías ver son los ficheros README, doctools-1.3.1.tgz y utils-1.1.0.tgz si no los descargaste.


Instalación de XFree86

Ajustes para la compilación del núcleo

Si tienes un Intel P6 (Pentium Pro, Pentium II y superior) es recomendable que compiles el soporte MTRR (Registros del Rango del Tipo de Memoria) dentro del núcleo. El núcleo puede mapear CPUs Cyrix y AMD en la interfaz MTRR, por lo que seleccionar esta opción también es útil para estos procesadores. Esta opción se encuentra en el menú "Processor type and features" ("Tipo de procesador y características"). Puede incrementar las prestaciones de las operaciones de escritura de imágenes 2.5 veces o más en tarjetas de vídeo PCI o AGP.

En la sección "Character Devices" ("Dispositivos de Caracteres"), activa el soporte para AGP y selecciona el soporte del chipset de tu placa base. Si no conoces el chipset puedes seleccionar todos los tipos a expensas de una tamaño mayor del núcleo. Normalmente puedes determinar el chipset de tu placa base mediante:
cat /proc/pci

En la sección "Character Devices", desactiva Direct Rendering Manager ("Administración de Representación Directa") a menos que tengas una tarjeta de vídeo con soporte para Direct Rendering Infrastructure (DRI) (Infraestructura de representación Directa). Encontrarás una lista completa de las tarjetas de vídeo que soporta DRI en la sección Status de http://dri.sourceforge.net. Por el momento, entre las tarjetas soportadas se incluyen las de 3dfx (Voodoo, Banshee), 3Dlabs, ATI (Rage Pro, Rage 128, Radeon 7X00, Radeon 2), Intel (i810, i815), y Matrox (G200, G400, G450). Adicionalmente, NVidia provee sus propios controladores binarios de código cerrado (propietarios). Si activas DRI aquí, asegúrate de seleccionar la tarjeta (o tarjetas) de vídeo para la que quieras soporte como módulo.

Si haces cualquier cambio en la configuración del núcleo, recompila con
make dep &&
make bzImage &&
make modules &&
make modules_install

Copia /usr/src/linux/arch/i386/boot/bzImage y /usr/src/linux/System.map a /boot, edita adecuádamente /etc/lilo.conf y ejecuta lilo. Si usas grub, edita /boot/grub/grub.conf y agrega el nuevo núcleo al menú de arranque.

Nota: Si construyes XFree86 en un entorno chroot, asegúrate de que la versión del núcleo del sistema base y del sistema destino es la misma. Esto es especialmente importante si activas el soporte para DRI como módulo, tal y como se ha indicado antes.


Crear host.def

Aunque XFree86 compilará sin un fichero host.def, se recomienda el siguiente fichero para personalizar la instalación. Sitúate dentro del directorio xc.

cat > config/cf/host.def << "EOF"
/* Inicio del fichero XFree86 host.def */

/* Información Relativa al Sistema. Si lees y configuras sólo una sección.
 * entonces debe ser esta. La arquitectura Intel se establece por defecto
 * para i686 y superior. Axp es para la arquitectura Alpha y Ppc es para
 * Power PC. Ten en cuenta que se ha informado que la línea de optimización
 * para Ppc provoca violaciones de segmento durante la compilación. Si esto
 * sucede, prueba a construirlo sin la línea DefaultGcc2PpcOpt. ************/

/* #define DefaultGcc2i386Opt  -O2 -fomit-frame-pointer -march=i686 */
/* #define DefaultGcc2AxpOpt   -O2 -mcpu=ev6 */
/* #define DefaultGcc2PpcOpt   -O2 -mcpu=750 */

/* Las siguientes definiciones normalmente se ajustan correctamente por
 * guiones de XFree86. Puedes descomentarlas si quieres asegurarte. ****/

/* #define HasMTRRSupport      YES  */ /* Activado en el núcleo, ver su 
 * documentación*/
/* #define HasMMXSupport        NO  */ /* Cualquier i586 o superior */
/* #define HasKatmaiSupport     NO  */ /* Instrucciones PIII SSE */
/* #define Has3DNowSupport      NO  */ /* Instrucciones AMD */

/* Estos ajustes reducen algo el tiempo de compilación al omitir dispositivos de
 * entrada de raro uso. Encontrarás la lista completa en config/cf/xfree86.cf */

#define XInputDrivers                 mouse void

/* CONTROLADORES DE VÍDEO **************************************************/

/* Si estás seguro de que sólo quieres los controladores para una o unas pocas
 * tarjetas de vídeo, puedes borrar los controladores que no quieras. *********/


#define XF86CardDrivers  mga glint nv tga s3 s3virge sis rendition \
                         neomagic i740 tdfx savage \
                         cirrus vmware tseng trident chips apm \
                         GlideDriver fbdev i128 nsc \
                         ati i810 AgpGartDrivers DevelDrivers ark \
                         cyrix siliconmotion \
                         vesa vga \
                         dummy XF86OSCardDrivers XF86ExtraCardDrivers

/* SERVIDOR DE FUENTES Y AJUSTES DE LIBRERÍAS ****************************/

/* Estos ajustes se establecen por defecto. **********************************/

/* #define BuildFontServer       YES  */ /* Para el servidor de impresión 
 * GhostScript*/
/* #define SharedLibFont            YES  */
/* #define CompressAllFonts         YES  */
/* #define GzipFontCompression      YES  */

/* Estos ajustes aseguran que utilicemos nuestras librerías ******************/
#define HasFreetype2             YES
#define HasExpat                 YES
#define HasLibpng                YES
#define HasZlib                  YES

/* La ruta de las fuentes puede redefinirse en el fichero XF86Config *********/

/*
#define DefaultFontPath                $(FONTDIR)/misc/,$(FONTDIR)/75dpi/,\
$(FONTDIR)/100dpi/,$(FONTDIR)/Type1,$(FONTDIR)/local,\
$(FONTDIR)/TrueType,$(FONTDIR)/CID,$(FONTDIR)/Speedo
*/


/* FUENTES INTERNACIONALES.  Cambia a YES si necesitas alguna. Estas son
 * las opciones por defecto. *************************************************/

/* #define BuildCyrillicFonts            NO  */
/* #define BuildArabicFonts              NO  */
/* #define BuildISO8859_6Fonts           NO  */
/* #define BuildGreekFonts               NO  */
/* #define BuildISO8859_7Fonts           NO  */
/* #define BuildHebrewFonts              NO  */
/* #define BuildISO8859_8Fonts           NO  */
/* #define BuildKOI8_RFonts              NO  */
/* #define BuildJapaneseFonts            NO  */
/* #define BuildJISX0201Fonts            NO  */
/* #define BuildKoreanFonts              NO  */
/* #define BuildChineseFonts             NO  */

/* AJUSTES PARA LA DOCUMENTACIÓN *******************************************/

/* Estos son los ajustes por defecto. *****************************************/

/* #define BuildLinuxDocHtml             NO  */  /* Documentos de X en formato 
 * HTML */
/* #define BuildLinuxDocPS               NO  */  /* Y en formato PostScript */
/* #define BuildAllSpecsDocs             NO  */  /* Varios documentos */
/* #define BuildHtmlManPages             NO  */

/* AJUSTES GENERALES: Generalmente querrás dejar esto como está cuando
 * construyas X en un sistema LFS *********************************************/

#define GccWarningOptions         -pipe /* Acelera la compilación*/
#define TermcapLibrary            -lncurses
#define XprtServer                YES /* Necesario para realplayer */
#define XnestServer               YES
#define XAppLoadDir               EtcX11Directory/app-defaults
#define VarLibDir                 /var/lib
#define XFree86Devel               NO
#define FSUseSyslog               YES
#define ThreadedX                 YES
#define HasPam                     NO        
#define SystemManDirectory        /usr/share/man /* En vez de /usr/man */
#define HasLibCrypt               YES
#define InstallXinitConfig        YES
#define InstallXdmConfig          YES
#define ForceNormalLib            YES
#define BuildSpecsDocs             NO

/* Fin del fichero XFree86 host.def */
EOF

Edita el fichero según tu hardware y preferencias.


Comandos de construcción

Instala XFree86 ejecutando los siguientes comandos:

WORLDOPTS="" make World 2>&1 | tee xfree-compile.log &&
make install &&
make install.man &&
ln -sf /usr/X11R6/bin /usr/bin/X11 &&
ln -sf /usr/X11R6/lib/X11 /usr/lib/X11 &&
ln -sf /usr/X11R6/include/X11 /usr/include/X11


Actualizar la Infraestructura de Representación Directa (DRI)

Si tienes una tarjeta de vídeo soportada por DRI y activaste los módulos DRI del núcleo como se explica más arriba, necesitas actualizar los módulos del núcleo para asegurarte que sean compatibles con la versión actual de XFree86. Para esto, haz lo siguiente:

cd programs/Xserver/hw/xfree86/os-support/linux/drm/kernel && 
make -f Makefile.linux  && 
mkdir -p /lib/modules/`uname -r`/kernel/drivers/char/drm/  && 
cp gamma.o radeon.o sis.o r128.o i810.o i830.o mga.o tdfx.o \
    /lib/modules/`uname -r`/kernel/drivers/char/drm/  && 
depmod -a

Aviso

Si recompilas o actualizas el núcleo, deberás volver a copiar los módulos controladores a la librería de módulos del núcleo y ejecutar depmod.


Explicación de los comandos

WORLDOPTS="" make World 2>&1 | tee xfree-compile.log: Este comando ejecuta múltiples makefiles para reconstruir por completo el sistema. WORLDOPTS="" desactiva el comportamiento por defecto de continuar si se produce un error. 2>&1 redirige los mensajes de error a la misma localización que la salida normal. El comando tee permite visualizar la salida mientras se registran los resultados en un fichero.

ln -sf /usr/X11R6/bin /usr/bin/X11, ln -sf /usr/X11R6/lib/X11 /usr/lib/X11, y ln -sf /usr/X11R6/include/X11 /usr/include/X11 : Estos comandos están presentes para permitir que otros paquetes (incorrectos) se construyan contra XFree86. Hacemos esto aunque el Estándar de la Jerarquía del Sistema de Ficheros (FHS) dice: "En general, el software no debe instalarse o administrarse mediante los enlaces simbólicos anteriores. Están pensados para que solamente los utilicen los usuarios."

make -f Makefile.linux : Esto construye los módulos del núcleo compatibles con XFree86.

cp gamma.o radeon.o sis.o r128.o i810.o i830.o mga.o tdfx.o /lib/modules/`uname -r`/kernel/drivers/char/drm/ : Pone los módulos del núcleo donde éste pueda encontrarlos.

depmod -a : Actualiza el fichero de administración de módulos modules.dep.


Configuración de XFree86

Edita /etc/ld.so.conf y añade /usr/X11R6/lib. Ejecuta
ldconfig

Añade /usr/X11R6/bin a tu variable de entorno PATH en .bash_profile. La sentencia debe ser similar a PATH=$PATH:/usr/X11R6/bin y colocarse antes de la sentencia export PATH.

Ejecuta
source ~/.bash_profile

Activa tu ratón
cd /dev
ln -s psaux mouse
Ajusta el enlace simbólico de la forma necesaria para otros tipos de ratón. Por ejemplo, un ratón serie en el primer puerto serie debe enlazarse a ttyS0.

Crea el fichero XF86Config con
cd ~
XFree86 -configure
La pantalla se pondrá negra y puede que oigas algunos clics del monitor. Este comando creará un fichero, XF86Config.new, en tu directorio personal.

Edita XF86Config.new para afinar tu sistema. Los detalles del fichero se encuentran en la página de manual man XF86Config. Algunas cosas que puedes querer hacer:

Comprueba el sistema con
XFree86 -xf86config ~/XF86Config.new
Sólo obtendrás un fondo de pantalla gris con un puntero de ratón en forma de X, pero esto confirma que el sistema funciona. Ciérralo con Control-Alt-Retroceso. Si el sistema no funciona, revisa /var/log/XFree86.0.log para ver qué ha ido mal.

Mueve el fichero de configuración a su localización final
mv ~/XF86Config.new /etc/X11/XF86Config-4

Crea .xinitrc
cat > ~/.xinitrc << "EOF"
# Inicio del fichero .xinitrc
xterm  -g 80x40+0+0   &
xclock -g 100x100-0+0 &
twm
EOF
Esto proporciona una pantalla inicial con una xterm y un reloj, manejados por un administrador de ventanas simple, el Tab Window Manager. Para los detalles sobre twm, mira su página de manual.

Inicia X con
startx
para tener un Sistema de Ventanas X básico y funcional.


Configuración de los componentes de XFree86


Añadir fuentes TrueType a XFree86

El soporte para fuentes TrueType está incluido en XFree86. Debes seguir los siguientes pasos para disponer de las fuentes.


Usar los recursos de XFree86

Hay muchas opciones de XFree86 y los clientes X que puedes modificar por medio de los recursos. Típicamente los recursos se configuran en el fichero ~/.Xresources.

El formato del fichero ~/.Xresources consiste en una lista de especificaciones de la siguiente forma

objeto.subobjeto[.subobjeto...].atributo: valor

Típicamente, los componentes de una especificación de recursos están vinculados por enlaces (bindings), pudiendo ser firmes, representados por un punto (.), o relajados, representados por un asterisco (*). Un enlace firme indica que los componentes a cada lado del punto deben estar directamente uno al lado del otro, como se define en una implementación específica. Un asterisco es un caracter comodín que quiere decir que cualquier número de niveles en una jerarquía definida puede estar entre dichos componentes. Por ejemplo, XFree86 nos ofrece dos nuevos punteros: un reloj rojo (redglass) y uno blanco (whiteglass). Para usar uno de estos recursos, debes añadir una línea como esta:

Xcursor.theme: whiteglass

Sin embargo, puedes especificar el fondo de pantalla para todos los clientes con:

*background: blue

Las variables de recurso más específicas prevalecen sobre nombres menos específicos.

Encontrarás las definiciones de los recursos en las páginas de manual de cada cliente en particular.

Para cargar los recursos se debe llamar al programa xrdb con los parámetros adecuados. Normalmente, la primera vez que cargues los recursos usarás:

xrdb -load <nombre_fichero>

Para agregar recursos a la base de datos en memoria de XFree86 usa:

xrdb -merge <nombre_fichero>

La instrucción xrdb suele ubicarse en ~/.xinitrc o en ~/.xsession. Para obtener más información, consulta la página de manual de xrdb.


Capítulo 27. Librerías X

lesstif-0.93.36

Introducción a lesstif

Localización de descarga (HTTP):		http://telia.dl.sourceforge.net/sourceforge/lesstif/lesstif-0.93.36.tar.bz2
Localización de descarga (FTP):			
Versión usada:					0.93.36
Tamaño del paquete:				2.4 MB
Estimación del espacio necesario en disco:	62 MB
Estimación del tiempo de construcción:		4.24 SBU

El paquete lesstif contiene una versión en Código Abierto de OSF/Motif(R).

lesstif depende de:
xfree86-4.3.0

Instalación de lesstif

Instala lesstif ejecutando los siguientes comandos:

./configure --prefix=/usr \
    --enable-build-20 \
    --enable-build-21 \
    --disable-debug \
    --enable-production \
    --disable-build-tests \
    --with-xdnd &&
make &&
make install


qt-3.1.2

Introducción a qt

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.1.2.tar.bz2
Versión usada:					3.1.2
Tamaño del paquete:				13 MB
Estimación del espacio necesario en disco:	155 MB
Estimación del tiempo de construcción:		86.40 SBU

El paquete qt contiene una librería de interfaz gráfica (GUI) de C++. Es útil para crear aplicaciones gráficas o ejecutar aplicaciones gráficas que estén enlazadas dinámicamente a la librería qt.

qt depende de:
xfree86-4.3.0, libpng-1.2.5, libmng-1.0.5, y libjpeg-6b

Instalación de qt

./configure -prefix /opt/qt-3.1.2 -qt-gif -system-libpng \
   -system-libmng -system-zlib -system-libjpeg -no-g++-exceptions \
   -thread &&
make &&
make install &&
ln -sfn /opt/qt-3.1.2 /opt/qt &&
ln -s /opt/qt/lib/libqt-mt.so /opt/qt/lib/libqt.so &&
cp -r doc/man /opt/qt/doc &&
cp -r examples /opt/qt/doc


Configuración de qt

Información sobre la configuración

Como muchas librerías, no necesita configuración, salvo que el directorio /opt/qt/lib debe aparecer en /etc/ld.so.conf para que ldd pueda encontrar las librerías. El siguiente comando lo añadirá si no aparece:

cat >> /etc/ld.so.conf << "EOF"
# Inicio de la adición de qt en /etc/ld.so.conf

/opt/qt/lib

# Fin de la adición de qt
EOF
ldconfig

Necesitas añadir la ruta a las páginas de manual de qt en el fichero man.conf. Puedes hacerlo con el siguiente comando:

cat >> /etc/man.conf << "EOF"
# Inicio de la adición de qt en man.conf

MANPATH /opt/qt/doc/man

# Fin de la adición de qt en man.conf
EOF


Pango-1.2.1

Introducción a Pango

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.gtk.org/pub/gtk/v2.2/pango-1.2.1.tar.gz
Versión usada:					1.2.1
Tamaño del paquete:				776 KB
Estimación del espacio necesario en disco:	10.1 MB
Estimación del tiempo de construcción:		0.97 SBU

El paquete Pango contiene la librería pango. Es útil para calcular la disposición y representación del texto.

Pango depende de:
GLib-2.2.1 y freetype-2.1.3
Pango utilizará:
qt-3.1.2, xfree86-4.3.0, gtk-doc-1.0 y 
xml-dtd-4.2

Capítulo 28. Administradores de Ventanas

Los administradores de ventanas y los entornos de escritorio son las interfaces de usuario primarias en el sistema de ventanas X. Un administrador de ventanas es un programa que controla el aspecto de las ventanas y proporciona los métodos mediante los que el usuario puede interactuar con ellas. Un entorno de escritorio suministra una interfaz más completa para el sistema operativo, y proporciona una gama de utilidades y aplicaciones integradas.

Hay disponibles muchos administradores de ventanas. Algunos de los más conocidos son fvwm2, Window Maker, AfterStep, Enlightenment, Sawfish, y Blackbox.

Los entornos de escritorio disponibles para Linux son GNOME, KDE, y XFce.

Elegir un administrador de ventanas o un entorno de escritorio es algo muy subjetivo. La elección depende del aspecto y comportamiento de los paquetes, los recursos (RAM, espacio en disco) necesarios, y las utilidades incluidas. Una página web que muestra un buen resumen de lo que hay disponible, capturas de pantalla y sus respectivas características es Administradores de Ventanas para X.

En este capítulo encontrarás las instrucciones de instalación para varios administradores de ventanas y un entorno de escritorio ligero. Más adelante en el libro, KDE y Gnome tienen sus propios apartados.


sawfish-1.3


Instalación de sawfish

Instala sawfish ejecutando los siguientes comandos:

./configure --prefix=/usr --libexec=/usr/sbin --infodir=/usr/share/info \
  --with-gnome-prefix=/opt/gnome-2.2 &&
make &&
make install


fluxbox-0.1.14

Introducción a fluxbox

Localización de descarga (HTTP):		http://telia.dl.sourceforge.net/sourceforge/fluxbox/fluxbox-0.1.14.tar.bz2
Localización de descarga (FTP):			
Versión usada:					0.1.14
Tamaño del paquete:				372 KB
Estimación del espacio necesario en disco:	6.5 MB
Estimación del tiempo de construcción:		2.21 SBU

El paquete fluxbox contiene un administrador de ventanas.

fluxbox depende de:
xfree86-4.3.0

Instalación de fluxbox

Instala fluxbox ejecutando los siguientes comandos:

./configure --prefix=/usr --enable-kde --enable-gnome &&
make &&
make install 


xfce-3.8.18

Introducción a XFce

Localización de descarga (HTTP):		http://telia.dl.sourceforge.net/xfce/xfce-3.8.18.tar.gz
Localización de descarga (FTP):			
Versión usada:					3.8.18
Tamaño del paquete:				5.1 MB
Estimación del espacio necesario en disco:	26.3 MB

El paquete XFce contiene un entorno de escritorio ligero.

XFce depende de:
xfree86-4.3.0, GTK+-1.2.10 y GLib-1.2.10
XFce utilizará:
gdk-pixbuf-0.22.0, imlib-1.9.14, libpng-1.2.5, 
libjpeg-6b, libungif-4.1.0b1 y libtiff-3.5.7

Instalación de XFce

Instala XFce ejecutando los siguientes comandos:

./configure --prefix=/usr --datadir=/usr/share --sysconfdir=/etc &&
make &&
make install


Descripciones

IX. KDE

Introducción a KDE

KDE depende de: xfree86-4.3.0 y qt-3.1.2

KDE es un entorno de escritorio completo que se construye sobre XFree86 y QT, proporcionando un administrador de ventanas y muchas herramientas de usuario, incluido un navegador, procesador de texto, hoja de cálculo, paquete de presentaciones, juegos y otras utilidades. Además, facilita gran cantidad de posibilidades de personalización.

Dividimos las instrucciones de KDE en tres partes. Primero, los paquetes base que necesitas para que el resto de KDE funcione. En segundo lugar, los paquetes adicionales que aportan funcionalidad en varias áreas (multimedia, gráficos, etc). Por último, describimos la instalación de otros paquetes KDE.

Mientras desarrollábamos las instrucciones de compilación e instalación para KDE, examinamos las opciones para configure, y los parámetros aquí presentados son, posiblemente, con los que compile más correctamente . En cada uno de los paquetes, otra opción que puede añadirse a configure es --enable-final. Esta opción acelera el proceso de compilación, pero requiere mucha memoria. Si tienes menos de 256 MB de RAM, esta opción puede provocar accesos a la memoria de intercambio (swapping), ralentizando significativamente la compilación.

KDE también tiene muchos paquetes de internacionalización del tipo: kde-i18n-xx-3.1.tar.bz2 donde xx son de dos a cinco letras que indican el código del país correspondiente. No cubrimos aquí la instalación de estos paquetes.

Cada paquete de KDE comprende varios componentes y por defecto se instalan la mayoría de ellos. Si quieres excluir un componente específico, la manera oficial de hacerlo es establecer la variable DO_NOT_COMPILE. Esto es de ayuda cuando hay problemas al compilar algún componente en particular.

DO_NOT_COMPILE="componente1 componente2" \
./configure --prefix=/opt/kde...

Los paquetes base de KDE hacen uso de esta variable, pero no se recomienda omitir componentes de dichos paquetes, ya que puede resultar una instalación de KDE incompleta.


Capítulo 29. Paquetes Base de KDE

aRts-1.1

Localización de descarga (FTP):			ftp://ftp.kde.org/pub/kde/stable/3.1/src/arts-1.1.tar.bz2
Versión usada:					1.1
Tamaño del paquete:				947 KB
Estimación del espacio en disco (construcción):	35 MB
Estimación del espacio en disco (instalación):	5.7 MB
Estimación del tiempo de construcción:		11 min (667 MHz)

El Sintetizador Analógico en Tiempo Real (aRts) proporciona el soporte de sonido para KDE y suministra las librerías necesarias para kdelibs. El siguiente paquete es necesario para instalar aRts:
qt-3.1.2

Utilizará los paquetes opcionales siguientes si están instalados:
alsa-0.9.2, audiofile-0.2.3 y libvorbis-1.0

Antes de que empieces a compilar, asegúrate que esté definida la variale de entorno QTDIR
export QTDIR=/opt/qt

./configure --prefix=/opt/kde-3.1 --disable-debug \
     --disable-dependency-tracking &&
make &&
make install &&
ln -sfn /opt/kde-3.1 /opt/kde


kdelibs-3.1

Localización de descarga (FTP):			ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdelibs-3.1.tar.bz2
Tamaño del paquete:				7.2 MB
Estimación del espacio en disco (construcción):	115 MB
Estimación del espacio en disco (instalación):	41 MB
Estimación del tiempo de construcción:		62 min (667 MHz)

Para instalar kdelibs se necesita este paquete:
arts-1.1

kdelibs puede usar muchas librerías y programas opcionales. Se recomiendan los siguientes:
openssl-0.9.7a, pcre-4.1, libxml2-2.5.6,
libxslt-1.0.29, libfam-2.6.9 y libart_lgpl-2.3.11

Otros programas y librerías que puede usar kdelibs son:
cups-1.1.18, sane-1.0.9 y openldap-2.1.17

Instala kdelibs con:
./configure --prefix=/opt/kde-3.1 --disable-debug \
     --disable-dependency-tracking --with-alsa --enable-fast-malloc=full &&
make &&
make install


kdebase-3.1

Localización de descarga (FTP):			ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdebase-3.1.tar.bz2
Tamaño del paquete:				12.0 MB
Estimación del espacio en disco (construcción):	132 MB
Estimación del espacio en disco (instalación):	45 MB
Estimación del tiempo de construcción:		98 min (667 MHz)

kdebase puede usar muchas librerías y programas opcionales. Se recomiendan los siguientes:
openssl-0.9.7a, lesstif-0.93.36, CDParanoia-III-9.8, libvorbis-1.0,
shadow (en el libro LFS), y cups-1.1.18

Otros programas y librerías que puede usar kdebase son:
lame-3.93.1 y Linux_PAM-0.77

Comprueba si /lib/libmisc.la existe. Si no es así, ejecuta:
ln -sf /usr/lib/libmisc.la /lib/libmisc.la

Instala kdebase con:
./configure --prefix=/opt/kde-3.1 --disable-debug \
     --disable-dependency-tracking --disable-lametest --with-shadow &&
make &&
make install


Capítulo 30. Paquetes KDE Adicionales

X. Gnome

Introducción a Gnome

Este capítulo describe como instalar un entorno de escritorio Gnome-2.2 completo y las librerías de Gnome 1.4 necesarias para ejecutar las aplicaciones de Gnome 1.4 incluídas en este libro. El orden de las páginas está pensado para seguir el orden de construcción definido por el equipo de desarrollo de Gnome, que se puede ver en las notas de la versión, con dos excepciones. Si un paquete se encuentra en la lista de construcción, pero no está en este capítulo es porque ha sido instalado en otra parte del libro.

La instalación de Gnome-2.2 es una árdua tarea y nos gustaría ver que la completas con la menor tensión posible. Una de nuestros primeros objetivos en esta instalación es proteger los programas que ya tengas instalados, especialmente si estás probando Gnome en tu máquina. Los paquetes de Gnome-2.2 usan la opción --prefix= de configure, así que la usaremos junto a una variable de entorno (GNOME_PREFIX) para que la instalación sea más flexible.

Si quieres que Gnome sea tu escritorio, te recomendamos que lo instales con --prefix=/usr. Si no estás seguro de que vayas a quedarte con Gnome, te recomendamos que lo instales con --prefix=/opt/gnome-2.2. En la página de preinstalación se explica cómo establecer la variable de entorno y las modificaciones adicionales que necesita la segunda opción.

Si eliges la segunda opción, eliminar Gnome-2.2 es tan fácil como deshacer las modificaciones de la página de preinstalación y ejecutar el siguiente comando:
rm /opt/gnome-2.2 -r 

Si tu sistema está construido por completo siguiendo las instrucciones del LFS y del BLFS, tienes muchas posibilidades de usar Gnome-2.2 después de tu primera instalación. Si eres el típico usuario de LFS y has modificado las instrucciones, debes tener estas modificaciones en cuenta para futuras instalaciones. No tendrás problemas en integrar Gnome-2.2 en tu propia configuración, pero tendrás instalados de 28 a 33 paquetes antes de que puedas hacerle alguna prueba a Gnome (asumiendo que tu administrador de ventanas está instalado y comprobado). Podemos anticipar que reconstruirás Gnome al menos una vez para hacer reajustes a tu configuración.

Si vas a construir un entorno de escritorio Gnome 1.4, deberías instalar sólo las librerías del capítulo Gnome 1.4 y todas las dependencias mostradas en dichas páginas, esten o no etiquetadas. Los paquetes de Gnome sin páginas se instalan simplemente con:
./configure --prefix=/opt/gnome &&
make &&
make install
Estas instrucciones están simplificadas para facilitar la eliminación de Gnome 1.4 del sistema BLFS cuando ya no sea necesario. Dichas instrucciones pueden ser refinadas más adelante para cumplir con los estándares de BLFS en cuanto a la ubicación de los ficheros, específicamente /opt/gnome/etc por /etc y /opt/gnome/var por /var. Deberías considerar usar la receta de Gnome 1.4, disponible en http://hints.linuxfromscratch.org/hints si no tienes interés en Gnome-2.2.

Gnome-2.2 necesita:
xfree86-4.3.0, GTK+-2.2.1, libpng-1.2.5,
libjpeg-6b, libtiff-3.5.7 y popt-1.7
Gnome-2.2 utilizará:
libxml2-2.5.6, libxslt-1.0.29, xml-dtd-4.2,
docbook-xsl-1.60.1 y libfam-2.6.9


Capítulo 32. Librerías Gnome

Configuración previa a la instalación

Establece una variable de entorno con el prefijo de destino.

Si Gnome será tu escritorio elegido:
export GNOME_PREFIX=/usr
Si sólo quieres probar Gnome:
export GNOME_PREFIX=/opt/gnome-2.2

Los paquetes de prueba también necesitarán los siguientes cambios en la configuracion:

Añade a tu fichero profile o al del sistema:

export PATH=$PATH:/opt/gnome-2.2/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome-2.2/lib/pkgconfig
export GNOME_LIBCONFIG_PATH=/usr/lib

Añade al fichero /etc/ld.so.conf:

cat >> /etc/ld.so.conf << "EOF"
# Comienzo de los añadidos de Gnome a /etc/ld.so.conf

/opt/gnome-2.2/lib

# Fin de los añadidos de Gnome
EOF

Añade al fichero /etc/man.conf:

cat >> /etc/man.conf << "EOF"
# Comienzo de los añadidos de Gnome a man.conf

MANPATH /opt/gnome-2.2/man

# Fin de los añadidos de Gnome a man.conf
EOF


scrollkeeper-0.3.11


Instalación de scrollkeeper

Instala scrollkeeper ejecutando los siguientes comandos:

./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --disable-static \
--with-omfdirs=/usr/share/omf:/opt/gnome/share/omf:\
/opt/kde/share/omf:/opt/gnome-2.2/share/omf &&
make &&
make install 


at-spi-1.1.8


Instalación de at-spi

Instala at-spi ejecutando los siguientes comandos:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--disable-gtk-doc &&
make &&
make install


librsvg-2.2.4

Introducción a librsvg

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/librsvg/2.2/librsvg-2.2.4.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/librsvg/2.2/librsvg-2.2.4.tar.bz2
Versión usada:					2.2.4
Tamaño del paquete:				218 KB
Estimación del espacio necesario en disco:	2.6 MB
Estimación del tiempo de construcción:		0.69 SBU

El paquete librsvg contiene las librerías librsvg.

librsvg depende de:
GTK+-2.2.1, libxml2-2.5.6 y libart_lgpl-2.3.11
librsvg utilizará:
libgsf

Instalación de librsvg

Instala librsvg ejecutando los siguientes comandos:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome --disable-gtk-doc &&
make &&
make install 


Capítulo 33. Gnome base

Esta sección contiene los elementos necesarios del entorno GNOME para tener un escritorio funcional.


gnome-panel-2.2.1

Introducción a gnome-panel

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/gnome-panel/2.2/gnome-panel-2.2.1.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/gnome-panel/2.2/gnome-panel-2.2.1.tar.bz2
Versión usada:					2.2.1
Tamaño del paquete:				1.8 MB
Estimación del espacio necesario en disco:	19.8 MB
Estimación del tiempo de construcción:		4.06 SBU

El paquete gnome-panel contiene el menú y los subprogramas (applets) del sistema.

gnome-panel depende de:
libgnomeui-2.2.0.1 y scrollkeeper-0.3.11
gnome-panel utilizará:
gtk-doc-1.0 y sgml-dtd-3.1

Instalación de gnome-panel

Instala gnome-panel ejecutando los siguientes comandos:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--localstatedir=/var/lib --sysconfdir=/etc/gnome --disable-gtk-doc &&
make &&
make install


gnome-session-2.2.1

Introducción a gnome-session

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/gnome-session/2.2/gnome-session-2.2.1.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/gnome-session/2.2/gnome-session-2.2.1.tar.bz2
Versión usada:					2.2.1
Tamaño del paquete:				709 KB
Estimación del espacio necesario en disco:	6.6 MB
Estimación del tiempo de construcción:		0.88 SBU

El paquete gnome-session contiene el programa de gestión de sesiones de GNOME.

gnome-session depende de:
libgnomeui-2.2.0.1

Instalación de gnome-session

Instala gnome-session ejecutando los siguientes comandos:

export PATH=$PATH:$GNOME_PREFIX/sbin:/sbin &&
./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib \
--sysconfdir=/etc/gnome  &&
make &&
make install


control-center-2.2.1

Introducción a control-center

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/control-center/2.2/control-center-2.2.1.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/control-center/2.2/control-center-2.2.1.tar.bz2
Versión usada:					2.2.1
Tamaño del paquete:				1.4 MB
Estimación del espacio necesario en disco:	18.1 MB
Estimación del tiempo de construcción:		2.95 SBU

El paquete control-center contiene los programas de configuración de GNOME.

control-center depende de:
gnome-desktop-2.2.1 y metacity-2.4.34

Instalación de control-center

Instala control-center ejecutando los siguientes comandos:

./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib \
--sysconfdir=/etc/gnome &&
make &&
make install


Capítulo 34. Paquetes adicionales de Gnome

Estos paquetes son modulares y añaden aplicaciones de escritorio al entorno GNOME. Siéntete libre de instalarlos si lo deseas o si los necesitas.


gnome-system-monitor-2.0.4

Introducción a gnome-system-monitor

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/gnome-system-monitor/2.0/gnome-system-monitor-2.0.4.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/gnome-system-monitor/2.0/gnome-system-monitor-2.0.4.tar.bz2
Versión usada:					2.0.4
Tamaño del paquete:				512 KB
Estimación del espacio necesario en disco:	3.2 MB
Estimación del tiempo de construcción:		0.30 SBU

El paquete gnome-system-monitor contiene procman, el sustituto de de gtop.

gnome-system-monitor depende de:
libgnomeui-2.2.0.1y startup-notification-0.5

gnome-applets-2.2.1


Instalación de gnome-applets

Instala gnome-applets ejecutando los siguientes comandos:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--localstatedir=/var/lib --sysconfdir=/etc/gnome &&
make &&
make install


gnome-utils-2.2.1

Introducción a gnome-utils

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/gnome-utils/2.2/gnome-utils-2.2.1.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/gnome-utils/2.2/gnome-utils-2.2.1.tar.bz2
Versión usada:					2.2.1
Tamaño del paquete:				1.5 MB
Estimación del espacio necesario en disco:	15.4 MB
Estimación del tiempo de construcción:		1.44 SBU

El paquete gnome-utils contiene una colección de pequeñas aplicaciones diseñadas para hacerte la vida un poco más facil.

gnome-utils depende de:
libgnomeui-2.2.0.1

Instalación de gnome-utils

Instala gnome-utils ejecutando los siguientes comandos:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--localstatedir=/var/lib --sysconfdir=/etc/gnome &&
make &&
make install


gst-plugins-0.6.0

Introducción a gst-plugins

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/gst-plugins/0.6/gst-plugins-0.6.0.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/gst-plugins/0.6/gst-plugins-0.6.0.tar.bz2
Versión usada:					0.6.0
Tamaño del paquete:				1.8 MB
Estimación del espacio necesario en disco:	98 MB

El paquete gst-plugins contiene interfaces de los codecs.

gst-plugins depende de:
gstreamer-0.6.0

Instalación de gst-plugins

Instala gst-plugins ejecutando los siguientes comandos:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install &&
gst-register


gnome-media-2.2.1.1

Introducción a gnome-media

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/gnome-media/2.2/gnome-media-2.2.1.1.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/gnome-media/2.2/gnome-media-2.2.1.1.tar.bz2
Versión usada:					2.2.1.1
Tamaño del paquete:				1.1 MB
Estimación del espacio necesario en disco:	12.3 MB
Estimación del tiempo de construcción:		1.76 SBU

El paquete gnome-media contiene las aplicaciones multimedia de GNOME.

gnome-media depende de:
libgnomeui-2.2.0.1 y gstreamer-0.6.0

Instalación de gnome-media

Instala gnome-media ejecutando los siguientes comandos:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome \
--localstatedir=/var/lib --libexecdir=$GNOME_PREFIX/sbin &&
make &&
make install 


Capítulo 35. Otros Paquetes de Gnome

Esta sección contiene otros paquetes de GNOME.


gdm-2.4.1.3

Introducción a gdm

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/gdm/2.4/gdm-2.4.1.3.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/gdm/2.4/gdm-2.4.1.3.tar.bz2
Versión usada:					2.4.1.3
Tamaño del paquete:				1.7 MB
Estimación del espacio necesario en disco:	34.8 MB
Estimación del tiempo de construcción:		2.28 SBU

El paquete gdm contiene el demonio de administración de pantalla de GNOME. Es útil para permitir un acceso configurable al sistema en modo gráfico.

gdm depende de:
Linux_PAM-0.77, librsvg-2.2.4 y libgnome-2.2.0.1
gdm utilizará:
tcpwrappers-7.6

Instalación de gdm

Instala gdm ejecutando los siguientes comandos:

groupadd gdm &&
useradd -c gdm -d /dev/null -g gdm -s /bin/bash gdm &&
./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome \
--localstatedir=/var/lib --with-pam-prefix=/etc &&
make &&
make install


Configuración de gdm


Información sobre la configuración

Los ficheros de configuración de PAM de gdm contienen módulos que no se encuentran en una instalación de BLFS. Los siguientes comandos reemplazarán esos ficheros:

cat > /etc/pam.d/gdm << "EOF"
auth        required    pam_unix.so
auth        required    pam_nologin.so
account     required    pam_unix.so
password    required    pam_unix.so
session     required    pam_unix.so
EOF
cat > /etc/pam.d/gdm-autologin << "EOF"
auth        required    pam_env.so
auth        required    pam_nologin.so
auth        required    pam_permit.so
account     required    pam_unix.so
password    required    pam_unix.so
session     required    pam_unix.so
EOF

Puedes probar gdm ejecutándolo en una consola como root.

Para automatizar la ejecución de gdm, usa el siguiente comando para crear el guión en init.d si usas la variable GNOME_PREFIX=/opt/gnome-2.2. Puedes eliminar la ruta completa si tu variable es GNOME_PREFIX=/usr.
cat > /etc/rc.d/init.d/gdm << "EOF"
#!/bin/bash
# Inicio de $rc_base/init.d/gdm

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Iniciando gdm..."
                loadproc /opt/gnome-2.2/bin/gdm
                ;;

        stop)
                echo "Parando gdm..."
		if [ -f /var/run/gdm.pid ]; then
                loadproc /opt/gnome-2.2/sbin/gdm-stop
		fi
                ;;

        reload)
                echo "Recargando gdm..."
                reloadproc /opt/gnome-2.2/sbin/gdm-safe-restart
                ;;

        restart)
                echo "Reiniciando gdm..."
				loadproc /opt/gnome-2.2/sbin/gdm-restart
                ;;

        *)
                echo "Uso: $0 {start|stop|reload|restart}"
                exit 1
                ;;
esac

# Fin de $rc_base/init.d/gdm
EOF
chmod 755 /etc/rc.d/init.d/gdm

Crea los enlaces simbólicos a este fichero en los directorios rc.d con los siguientes comandos:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/gdm ../rc0.d/K05gdm &&
ln -sf ../init.d/gdm ../rc1.d/K05gdm &&
ln -sf ../init.d/gdm ../rc2.d/K05gdm &&
ln -sf ../init.d/gdm ../rc3.d/K05gdm &&
ln -sf ../init.d/gdm ../rc4.d/K05gdm &&
ln -sf ../init.d/gdm ../rc5.d/S95gdm &&
ln -sf ../init.d/gdm ../rc6.d/K05gdm

Para arrancar automáticamente en modo gráfico, edita /etc/inittab de modo que la línea que contiene
id:3:initdefault:
cambie a
id:5:initdefault:


Capítulo 37. Librerías de Gnome 1.4

Esta sección contiene librerías adicionales de GNOME 1.4, que necesitan algunas aplicaciones que aún no han sido portadas a Gnome 2. Ninguna de estas librerías se necesita para una instalación de escritorio de Gnome.


Configuración previa a la instalación

Agrega en tu perfil personal o en el del sistema:

export PATH=$PATH:/opt/gnome/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome/lib/pkgconfig
export GNOME_LIBCONFIG_PATH=/usr/lib

Agrega en tu fichero /etc/ld.so.conf:

cat >> /etc/ld.so.conf << "EOF"
# Inicio del agregado para gnome a /etc/ld.so.conf

/opt/gnome/lib

# Fin del agregado para gnome
EOF

Agrega en tu fichero /etc/man.conf:

cat >> /etc/man.conf << "EOF"
# Inicio del agregado para gnome a man.conf

MANPATH /opt/gnome/man

# Fin del agregado para gnome
EOF


ORBit-0.5.17


Instalación de ORBit

Instala ORBit ejecutando los siguientes comandos:

./configure --prefix=/opt/gnome &&
make &&
make install


gnome-libs-1.4.2


Instalación de gnome-libs

Instala gnome-libs ejecutando los siguientes comandos:

./configure --prefix=/opt/gnome --disable-gtk-doc &&
make &&
make install


Capítulo 38. Programas de Oficina Individuales


gnumeric-1.0.12

Introducción a gnumeric

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/gnumeric/1.0/gnumeric-1.0.12.tar.bz2
Localización de escarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/gnumeric/1.0/gnumeric-1.0.12.tar.bz2
Versión usada:					1.0.12
Tamaño del paquete:				9.6 MB
Estimación del espacio necesario en disco:	75.9 MB
Estimación del tiempo de construcción:		10.35 SBU

El paquete gnumeric contiene una hoja de cálculo. Es útil para análisis financiero.

gnumeric depende de:
libxml-1.8.17, gnome-libs-1.4.2, libole2-0.2.4, 
gnome-print-0.37 y gal-0.22
gnumeric utilizará:
Python-2.2.2, guile >= 1.5, bonobo-1.0.22, 
gb >=0.0.17, gda > 0.2.92, guppi-0.40.3 y evolution-1.2.1

Instalación de gnumeric

Instala gnumeric ejecutando los siguientes comandos:

./configure --prefix=/opt/gnome &&
make &&
make install


gimp-1.2.3


Instalación de gimp

Instala gimp ejecutando los siguientes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


evolution-1.2.1


Instalación de db-3.1.17

Instala db-3.1.17 ejecutando los siguientes comandos:

cd build_unix &&
../dist/configure --prefix=/opt/db-3.1.17 --enable-compat185 &&
make &&
make install


Instalación de evolution

Instala evolution ejecutando los siguientes comandos:

./configure --prefix=/opt/gnome --with-db3=/opt/db-3.1.17 &&
make &&
make install

Opcionalmente, puedes borrar el db-3.1.17 instalado.

rm -rf /opt/db-3.1.17


Capítulo 39. Paquetes de oficina


openoffice-1.0.2

Introducción a openoffice

Localización de descarga (HTTP):		http://sf1.mirror.openoffice.org/stable/1.0.2/OOo_1.0.2_source.tar.bz2
Localización de descarga (FTP):			
Versión usada:					1.0.2
Tamaño del paquete:				155 MB
Estimación del espacio necesario en disco:	2.1 GB
Estimación del tiempo de construcción:		14 Hrs (850 MHz)
Estimación del tamaño de instalación:		203 MB

Openoffice es un entorno ofimático, el hermano en código abierto de StarOffice.

openoffice depende de:
freetype-2.1.3, xfree86-4.3.0, j2sdk-1.4.1,
zip-2.3, unzip-5.50, tcsh-6.12,
db-4.1.25, STLport-4.5.3, which-2.14
y mktemp
openoffice utilizará:
ant

Descarga la librería General Polygon Clipper (Recortador General de Polígonos) de ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc231.tar.Z.

Descarga también varios parches desde http://downloads.linuxfromscratch.org/blfs-patches. Los parches comienzan por openoffice-1.0.2. Necesitarás la mayoría de los parches, excepto aquellos que activan el uso de las versiones de paquetes instalados en tu sistema (deberás elegirlos basándote en tu instalación).

El paquete con los fuentes sólo contiene la ayuda en inglés. Puede haber un fichero traducido de contenidos de ayuda en http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/helpcontent/.

Si tienes problemas para construir openoffice, revisa la información detallada de la receta de openoffice en http://www.linuxfromscratch.org/~tushar/. La receta también informa sobre la instalación de software complementario.


Instalación de openoffice

Ten en cuenta que openoffice tiene problemas con bison-1.875. Cambia esta versión por bison-1.75 o instala bison-1.75 en un directorio alternativo (por ej. /opt/bison-1.75) y asegúrate que $bison_prefix/bin sea la primera entrada en la variable PATH.

Aplica los parches que descargaste y copia los ficheros gpc.

mv ../gpc231/* external/gpc &&
rm -rf ../gpc231 &&
for p in ../openoffice-1.0.2-*.patch
do patch -Np1 -i $p
done

Si quieres optimizar la compilación, edita solenv/inc/unxlngi4.mk y añade tus opciones de optimización a la variable CFLAGSOPT. Algunos usuarios informaron que tuvieron problemas con -fomit-frame-pointer. Lo mejor es no usar ningún tipo de optimización. El comando siguiente elimina una opción -mcpu en dicho fichero, ya que es incorrecta.

cd solenv/inc &&
cp unxlngi4.mk unxlngi4.mk.orig &&
sed -e "s:\-mcpu=pentiumpro::" \
unxlngi4.mk.orig > unxlngi4.mk &&
cd ../..

Configura openoffice con los comandos siguientes. Puedes añadir otros lenguajes si lo prefieres. Si un componente en particular no se encuentra disponible en el lenguaje que elijas, estará por defecto en inglés.

cd config_office/ &&
./configure --with-lang=ENUS --with-stlport4-home=/usr &&
cd .. &&
source LinuxIntelEnv.Set.sh

Compila openoffice usando estos comandos.

./bootstrap &&
dmake

Si descargaste los ficheros zip con los contenidos de ayuda traducidos, deberás descomprimirlos en el directorio apropiado como se explica más abajo, y luego realizar de nuevo la instalación.

cd solver/641/unxlngi4.pro/pck &&
for i in $(ls ../../../../../helpcontent_*_unix.tgz)
do
tar -xvzf $i
done &&
cd ../../../../instsetoo &&
rm -rf unxlngi4.pro &&
dmake &&
cd ..

Instala OpenOffice ejecutando los siguientes comandos. Estos instalarán el conjunto en idioma inglés. Para instalar una versión localizada reemplaza el 01 por el código telefónico internacional de tu país. Ten en cuenta que para instalarlo necesitarás un entorno X, aunque no haya ninguna ventana X visible. Puedes usar Xvfb si estás compilando en una consola.

cd instsetoo/unxlngi4.pro/01/normal &&
cp install install.orig &&
sed -e "s:^oo_home=.*:oo_home=openoffice:" install.orig > install &&
./install --prefix=/opt &&
for appl in swriter scalc sdraw simpress smath soffice
do ln -sf /opt/openoffice/program/$appl /usr/bin/$appl
done


Capítulo 40. Navegadores Gráficos

mozilla-1.3

Introducción a mozilla

Localización de descarga (HTTP):		http://ftp.mozilla.org/pub/mozilla/releases/mozilla1.3/src/mozilla-source-1.3.tar.bz2
Localización de descarga (FTP):			ftp://ftp.mozilla.org/pub/mozilla/releases/mozilla1.3/src/mozilla-source-1.3.tar.bz2
Versión usada:					1.3
Tamaño del paquete:				39 MB
Estimación del espacio necesario en disco:	550 MB
Estimación del tiempo de construcción:		2 Hrs (850 MHz)
Estimación del tamaño de instalación:		65 MB

Mozilla es un entorno de navegación, el hermano en código abierto de Netscape. Incluye el navegador, un editor HTML, un cliente de correo y noticias y un cliente IRC. También se está creando un componente de calendario pero aún no se ha integrado en las versiones estables de mozilla.

mozilla depende de:
freetype-2.1.3, xfree86-4.3.0, zip-2.3,
GLib-2.2.1, GTK+-2.2.1, libIDL-0.8.0,
lcms-1.09, libjpeg-6b, libmng-1.0.5,
libpng-1.2.5 y which-2.14

Descarga el parche con varias correciones para la construcción desde http://downloads.linuxfromscratch.org/blfs-patches. Los parches comienzan con mozilla-1.3.

Se han eliminado las instrucciones para instalar el corrector ortográfico de mozdev, ya que la API ha cambiado y actualmente no funciona.

Si tienes dificultades construyendo mozilla, comprueba la información detallada en la receta de mozilla en http://www.linuxfromscratch.org/~tushar/. Las siguientes instrucciones instalan el entorno completo. Para seleccionar componentes específicos consulta la receta.


Instalación de mozilla

Instala mozilla ejecutando los siguientes comandos:

export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="1" &&
export MOZ_INTERNAL_LIBART_LGPL="1" &&

for p in ../mozilla-1.3-*.patch
do patch -Np1 -i $p
done

Según las instituciones financieras, la siguiente modificación hace que tu navegador sea inseguro. Estás avisado. Muchos sitios utilizan una etiqueta específica de MS-IE (autocomplete=off) para evitar que el autocompletado funcione en ciertos formularios. Mozilla soporta ahora esta etiqueta para complacer a las instituciones financieras. Según los requisitos de dichas instituciones, incluso rechazarán una solución donde ésta sea una opción preferente. Sin embargo nuestra opinión es que esto debería estar en manos del usuario. Para conseguir que el autocompletado se salte esta restricción, necesitamos hacer una ligera modificación en el código.

Abre el fichero extensions/wallet/src/wallet.cpp del árbol de fuentes de mozilla y busca la línea:
#define WALLET_DONT_CACHE_ALL_PASSWORDS
Ahora borra o comenta la línea. Si alguien te dice que MS-IE es fácil de usar, ¡muéstrale este ejemplo!

./configure --prefix=/usr \
            --enable-default-mozilla-five-home \
            --enable-toolkit-gtk2 --enable-default-toolkit=gtk2 \
            --with-x --with-system-zlib \
            --with-system-jpeg --with-system-png --with-system-mng \
            --enable-xft --enable-crypto \
            --enable-java-supplement \
            --disable-accessibility \
            --disable-tests --disable-debug \
            --disable-logging --enable-reorder \
            --enable-strip \
            --enable-cpp-rtti --enable-extensions=all \
            --enable-svg &&
make &&
make install &&
install -d /usr/include/mozilla-1.3/nss &&
cp -Lf dist/private/nss/*.h dist/public/nss/*.h \
   /usr/include/mozilla-1.3/nss &&

ln -nsf mozilla-1.3 /usr/include/mozilla &&
ln -nsf mozilla-1.3 /usr/lib/mozilla &&
cd /usr/lib/mozilla-1.3 &&
export LD_LIBRARY_PATH="/usr/lib/mozilla-1.3" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.3" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-1.3 -name *.rdf`


Explicación de los comandos

export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="1" &&
export MOZ_INTERNAL_LIBART_LGPL="1"
: Establece varias variables que afectan al qué y cómo se construye. Los dos primeros export especifican que estamos construyendo una distribución. El último export indica que estamos conformes con la versión LGPL de libart.

--prefix=/usr: Anteriormente mozilla no soportaba la opción "make install". Así que el paquete se instalaba en /opt. Ahora el paquete soporta "make install" y sigue las indicaciones de FHS para la instalación. Por tanto, el libro recomienda instalarlo en una ruta del sistema como /usr.

--enable-toolkit-gtk2
: Usa la caja de herramientas (toolkit) gtk2.

--with-system-zlib --with-system-jpeg \
--with-system-png --with-system-mng"
: Usa las versiones del sistema de estos paquetes.

--enable-xft: Activa el soporte para Xft. Necesitas fontconfig o la última versión de XFree86 para activar xft.

--enable-crypto: Activa el Administrador Personal de Seguridad para permitir conexiones SSL.

--disable-jsd --disable-accessibility \
--disable-tests --disable-debug \
--disable-dtd-debug \
--disable-logging --enable-reorder \
--enable-strip \
--enable-cpp-rtti
: Varias opciones que determinan qué componentes se construyen y algunas opciones de optimización. Puedes elegir y alterar estas opciones. Encontrarás más información sobre ellas en la ayuda del guión configure de mozilla. No se usaron todas las opciones en las instrucciones que se dieron más arriba.

--enable-extensions=...: Activa las extensiones. Si quieres, puedes desactivar todas las extensiones, excepto el navegador, cambiando este modificador por --enable-extensions="default,-venkman,-inspector,-irc".

--enable-svg: Activa el soporte SVG (Gráficos Vectoriales Escalables).

install -d /usr/include/mozilla-1.3/nss
cp -Lf dist/private/nss/*.h dist/public/nss/*.h \
   /usr/include/mozilla-1.3/nss
: Copia las cabeceras nss que no copia el make install.

ln -nsf mozilla-1.3 ...: Mozilla instala las cabeceras y librerías en directorios específicos de la versión. Esto crea enlaces simbólicos para que las aplicaciones que dependen de Mozilla (como OpenOffice, Galeon, etc.) no necesiten saber qué versión de Mozilla hay instalada.

export LD_LIBRARY_PATH="/usr/lib/mozilla-1.3" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.3" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-${VERSION} -name *.rdf`
: Crea los registros de componentes necesarios para activar las instalaciones multiusuario.


Capítulo 41. Otros Programas de Internet basados en las X


Capítulo 42. Controladores y Librerías Multimedia

Muchos programas multimedia necesitan librerías y/o controladores para funcionar correctamente. Los paquetes de esta sección pertenecen a dicha categoría. Normalmente sólo necesitas instalarlos si estás instalando un programa que tiene listada la librería como requisito o como opción para activar el soporte de ciertas funcionalidades.


alsa-driver-0.9.2

Introducción a alsa-driver

Localización de descarga (HTTP):		http://www.alsa-project.org/alsa/ftp/driver/alsa-driver-0.9.2.tar.bz2
Localización de descarga (FTP):			ftp://ftp.alsa-project.org/pub/driver/alsa-driver-0.9.2.tar.bz2
Versión usada:					0.9.2
Tamaño del paquete:				1.6 MB
Estimación del espacio necesario en disco:	22 MB (para todos los controladores)

El paquete alsa-driver contiene los controladores de sonido alsa. Son la siguiente generación de controladores de sonido para Linux.


alsa-utils-0.9.2

Introducción a alsa-utils

Localización de descarga (HTTP):		http://www.alsa-project.org/alsa/ftp/utils/alsa-utils-0.9.2.tar.bz2
Localización de descarga (FTP):			ftp://ftp.alsa-project.org/pub/utils/alsa-utils-0.9.2.tar.bz2
Versión usada:					0.9.2
Tamaño del paquete:				106 KB
Estimación del espacio necesario en disco:	1.8 MB

El paquete alsa-utils contiene varios programas que son útiles para controlar tu tarjeta de sonido.

alsa-utils depende de:
alsa-lib-0.9.2

Configuración de alsa-utils


Información sobre la configuración

Probablemente la forma más fácil de almacenar los niveles de sonido del mezclador es guardarlos y recuperarlos con un guión de arranque. Se puede hacer también agregando la línea post-install en el fichero /etc/modules.conf, pero se deja como un ejercicio para los lectores que deseen hacerlo.

El paquete alsa-drivers instala el guión /etc/rc.d/init.d/alsasound. Es posible usar este guión, pero contiene un montón de detalles extraños que no son necesarios en un sistema LFS, de modo que crearemos nuestro propio guión /etc/rc.d/init.d/alsa.

Para crear el guión alsa, haz lo siguiente:

cat > /etc/rc.d/init.d/alsa << "EOF"
#!/bin/sh
# Comienzo de $rc_base/init.d/alsa

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org
# Partes específicas de ALSA por Mark Hymers - markh@linuxfromscratch.org
# Guarda los valores del mezclador en la ubicación por defecto: 
/etc/asound.state

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
    start)
        echo "Iniciando alsa...    Restaurando volumen..."
        loadproc /usr/sbin/alsactl restore
        #echo "                    Cargando la fuente MIDI..."
        #loadproc sfxload /path/to/soundfont
        ;;

    stop)
        echo "Deteniendo alsa...    Guardando volumen......"
        loadproc /usr/sbin/alsactl store
        #echo "            Eliminando la fuente MIDI.........."
        #loadproc sfxload -i
        ;;

    restart)
        $0 stop
        /usr/bin/sleep 1
        $0 start
        ;;

    *)
        echo "Uso: $0 {start|stop|restart}"
        exit 1
        ;;

esac

# Fin de $rc_base/init.d/alsa
EOF
chmod 755 /etc/rc.d/init.d/alsa

Ya puedes crear los enlaces apropiados:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/alsa ../rc0.d/K35alsa &&
ln -sf ../init.d/alsa ../rc1.d/K35alsa &&
ln -sf ../init.d/alsa ../rc2.d/S40alsa &&
ln -sf ../init.d/alsa ../rc3.d/S40alsa &&
ln -sf ../init.d/alsa ../rc4.d/S40alsa &&
ln -sf ../init.d/alsa ../rc5.d/S40alsa &&
ln -sf ../init.d/alsa ../rc6.d/K35alsa

Nota que por defecto todos los canales están mudos. Puedes usar el programa alsamixer del paquete alsa-utils (o cualquier otro mezclador OSS) para modificar esto.

Además, la primera vez que se ejecute, el guión se quejará de que no hay un estado definido en /etc/asound.state. Esto se puede prevenir ejecutando los comandos siguientes luego de instalar alsa-utils:
touch /etc/asound.state &&
alsactl store

Por último, las líneas que cargan sfxload están comentadas. Están aquí como ejemplo de otras cosas que puedes querer hacer en el guión de inicio. sfxload es un paquete aparte que interesará a los usuarios de tarjetas SoundBlaster AWE y Live! y se encarga de cargar "fuentes de sonido" (usadas para la salida MIDI). Tal vez quieras borrar estas líneas y agregar las tuyas propias o, si tienes la tarjeta de sonido adecuada, instalar sfxload y descomentarlas.


alsa-tools-0.9.1

Introducción a alsa-tools

Localización de descarga (HTTP):		http://www.alsa-project.org/alsa/ftp/tools/alsa-tools-0.9.1.tar.bz2
Localización de descarga (FTP):			ftp://ftp.alsa-project.org/pub/tools/alsa-tools-0.9.1.tar.bz2
Versión usada:					0.9.1
Tamaño del paquete:				376 KB
Estimación del espacio necesario en disco:	6.8 MB (si compilas todas las herramientas)

El paquete alsa-tools contiene herramientas avanzadas para ciertas tarjetas de sonido.

alsa-tools depende de:
alsa-lib-0.9.2

esound-0.2.29

Introducción a esound

Localización de descarga (HTTP):		http://ftp.gnome.org/pub/GNOME/sources/esound/0.2/esound-0.2.29.tar.bz2
Localización de descarga (FTP):			ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/esound-0.2.29.tar.bz2
Versión usada:					0.2.29
Tamaño del paquete:				348 KB
Estimación del espacio necesario en disco:	2.3 MB
Estimación del tiempo de construcción:		0.17 SBU

El paquete esound contiene el Demonio de Sonido Enlightened. Es útil para mezclar varios flujos de sonido digitalizados y reproducirlos en un único dispositivo.

esound depende de:
audiofile-0.2.3

Instalación de esound

Instala esound ejecutando los siguientes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


SDL-1.2.5


Instalación de SDL

Instala SDL ejecutando los siguientes comandos:

./configure --prefix=/usr --disable-debug &&
make &&
make install


nas-1.6


Instalación de nas

Instala nas ejecutando los siguientes comandos:

xmkmf &&
make Makefiles &&
make includes &&
make depend &&
make &&
make INCROOT=/usr/include USRLIBDIR=/usr/lib \
MANPATH=/usr/share/man BINDIR=/usr/bin \
LIBDIR=/usr/lib/X11 CONFIGDIR=/usr/X11R6/lib/X11/config \
install install.man


Capítulo 43. Utilidades de sonido

Este capítulo contiene programas relacionados con la manipulación de ficheros de sonido; es decir, reproducir, grabar, extraer pistas de audio (ripping) y el resto de las cosas comunes que la gente quiere hacer. Para usar muchos de estos programas necesitarás tener instalados los controladores de sonido del núcleo, o bien alsa-0.9.2. Ten en cuenta que en el árbol de desarrollo de la serie 2.5 del núcleo los viejos controladores están siendo reemplazados por ALSA, así que para cuando tengamos la serie 2.6 estable, la mayoría lo usaremos por defecto.


xmms-1.2.7

Introducción a XMMS

Localización de descarga (HTTP):		http://www.xmms.org/files/1.2.x/xmms-1.2.7.tar.bz2
Localización de descarga (FTP):			ftp://ftp.xmms.org/xmms/1.2.x/xmms-1.2.7.tar.bz2
Versión usada:					1.2.7
Tamaño del paquete:				11 MB
Estimación del espacio necesario en disco:	17 MB

XMMS es un reproductor de audio para el Sistema de Ventanas X.

XMMS depende de:
una tarjeta de sonido que funcione, xfree86-4.3.0, 
GTK+-1.2.10 y GLib-1.2.10
XMMS utilizará:
esound-0.2.29, gnome-libs-1.4.2, gnome-applets, libmikmod, 
libogg-1.0, libvorbis-1.0 y libxml-1.8.17

Instalación de XMMS

Instala XMMS ejecutando los siguientes comandos:

./configure --prefix=/usr \
--enable-one-plugin-dir &&
make &&
make install


Capítulo 44. Utilidades de Vídeo

xvid-0.9.1

Introducción a Xvid

Localización de descarga (HTTP):		http://files.xvid.org/downloads/xvidcore-0.9.1.tar.bz2
Localización de descarga (FTP):			
Versión usada:					0.9.1
Tamaño del paquete:				464 KB
Estimación del espacio necesario en disco:	3.9 MB
Estimación del tiempo de construcción:		0.55 SBU

Xvid es un codificador de vídeo compatible mpeg4.

Xvid utilizará:
nasm

Instalación de Xvid

Instala Xvid ejecutando los siguientes comandos:

cd build/generic &&
./configure --prefix=/usr &&
make  &&
make install &&
cp ../../src/divx4.h /usr/include


Contenido

El paquete central de Xvid contiene la librería libxvidcore y los correspondientes ficheros de cabecera. La propia librería facilita funciones para codificar y decodificar muchos de los datos de vídeo mpeg4.

Soporta las siguientes características de mpeg4:

Codificación I, P-Frame

I-Frames son cuadros de imagen, mientras que P-Frames son Patrones de Cuadros. Los Cuadros de Imagen contienen imágenes completas. P-Frames contiene patrones de lo que cambia en la imagen, ahorrando mucho espacio.

PMVFast y EPZS con patrón de estimación de movimiento en diamante y cuadrado.

Detección Fast Motion que puede referir un patrón con forma de diamante o cuadrado a direcciones diferentes.

inter4v mode

Capacidad de interpolación rápida.

Precisión fullpixel y halfpixel

Incluso los movimientos halfpixel pueden codificarse. Una mejor precisión da lugar a una mejor compresión con mejor calidad.

Cuantizaciones MPEG4 y H263

MPEG4 es el estándar del que derivó DivX. H263 Es un subconjunto de este estándar ligeramente modificado por Microsoft. La cuantización es el mapeado de la cantidad de valores de color a números.

Matrices de cuantización personalizadas

La cuantización puede hacerse usando matrices personalizadas, obteniendo posiblemente mejores resultados si la matriz se hace para adaptarse a los datos de vídeo. Para el uso normal debería bastar con la matriz por defecto que viene con Xvid.

Cuantización adaptable / Máscara de luminosidad

La Cuantización y la Máscara de luminosidad son variables, dependiendo del material de entrada, proporcionando por tanto mejores resultados en imágenes oscuras o con alto contraste.


ffmpeg-0.4.6

Introducción a ffmpeg

Localización de descarga (HTTP):		http://telia.dl.sourceforge.net/sourceforge/ffmpeg/ffmpeg-0.4.6.tar.gz
Localización de descarga (FTP):			
Versión usada:					0.4.6
Tamaño del paquete:				664 KB
Estimación del espacio necesario en disco:	20.6 MB
Estimación del tiempo de construcción:		3.32 SBU

ffmpeg es una solución para grabar, convertir y emitir audio y vídeo. Debido al pesado desarrollo, no funcionarán todas estas funciones.

ffmpeg utilizará:
libvorbis-1.0, lame-3.93.1 e Imlib2

avifile-0.7.34

Introducción a avifile

Localización de descarga (HTTP):		http://avifile.sourceforge.net/avifile-0.7.34-20030319.tgz
Localización de descarga (FTP):			
Versión usada:					0.7.34
Tamaño del paquete:				2.7 MB
Estimación del espacio necesario en disco:	26.6 MB
Descargas adicionales:
http://avifile.sourceforge.net/binaries-011002.tgz

El paquete avifile contiene un reproductor de vídeos AVI, herramientas y librerías de soporte. Es útil para ver y editar ficheros AVI.

avifile depende de:
Un procesador x86, xfree86-4.3.0, libjpeg-6b y SDL-1.2.5
avifile utilizará:
qt (< 3.1.0), oss, ffmpeg-0.4.6 y xvid-0.9.1

Instalación de avifile

Instala avifile ejecutando los siguientes comandos:

install -d /usr/lib/win32 &&
tar -xzvf ../binaries-011002.tgz -C /usr/lib &&
./configure --prefix=/usr &&
make &&
make install


MPlayer-0.90


Instalación de MPlayer

Las descargas extra deben encontrarse en el directorio de las fuentes, con los ficheros bzip descomprimidos.

Instala MPlayer ejecutando los siguientes comandos:

install -d /usr/lib/win32 &&
tar -xvf ../win32codecs.tar -C /usr/lib/win32 &&
tar -xvf ../qt5dlls.tar -C /usr/lib/win32 &&
tar -xvf ../qt6dlls.tar -C /usr/lib/win32 &&
tar -xvf ../qtextras.tar -C /usr/lib/win32 &&
tar -xvf ../rp9codecs.tar -C /usr/lib/win32 &&
./configure --prefix=/usr --confdir=/etc/mplayer --enable-largefiles \
--enable-gui --enable-menu --enable-new-conf --enable-qtx-codecs \
--enable-vorbis --with-reallibdir=/usr/lib/win32/rp9codecs \
--enable-freetype --enable-shared-pp &&
make &&
make install

Cada usuario de MPlayer debe completar la instalación ejecutando los siguientes comandos:

mkdir ~/.mplayer &&
cp etc/codecs.conf ~/.mplayer &&
cp etc/example.conf ~/.mplayer/example.conf


Instalación de las Fuentes prerenderizadas

Si se usa freetype, la única ventaja de las fuentes prerenderizadas es que son más rápidas. Instálalas asi:

install -d /usr/share/mplayer/font &&
tar -xvf ../font-arial-iso-8859-1.tar -C /usr/share/mplayer/font &&
for i in /usr/share/mplayer/font/font-arial-<size>*
do ln -s $i /usr/share/mplayer/font; done

Sustituye <size> por 14, 18, 24 o 28.


Descripciones


mencoder

mencoder se usa para codificar cualquier película reproducible con MPlayer a DivX4, XviD o cualquier codec en libavcodec con audio PCM/MP3/VBRMP3.

Ejemplo:

rm frameno.avi
mencoder -dvd 1 -aid 128 -ovc frameno -oac mp3lame \
-lameopts vbr=3 -o frameno.avi

# mencoder debería mostrar los bitrates para la gama de
# codificaciones, ahora, ¡elige el que mas te guste! En las
# siguientes líneas sustituye <bitrate> y <name.avi>
# con los valores que desees

mencoder -dvd 1 -aid 128 -oac copy -ovc lavc \
-lavcopts vcodec=mpeg4:vpass=1:vhq:vbitrate=<bitrate> -o <name.avi>
mencoder -dvd 1 -aid 128 -oac copy -ovc lavc \
-lavcopts vcodec=mpeg4:vpass=2:vhq:vbitrate=<bitrate> -o <name.avi>
mencoder -forceidx <name.avi>


transcode-0.6.2


Instalación de transcode

Todo lo que puede ser utilizado por transcode debería ser instalado primero.


Instalar transcode

Instala transcode ejecutando los siguientes comandos:

./configure --prefix=/usr --with-ogg --with-vorbis\
--with-libfame --with-lame --with-avifile \
--with-libpostproc-builddir=/usr/src/MPlayer-0.90 &&
make &&
make install


Descripciones


Capítulo 45. Utilidades para grabar CDs

Este capítulo contiene información sobre la grabación de CDs bajo Linux. Primero tendrás que configurar tu núcleo para grabar CDs. Empezaremos por discutir cómo hacerlo, y luego veremos cómo instalar las utilidades.

Fuentes de información adicionales sobre grabación de CDs:


Configuración del núcleo para grabar CDs

En la configuración del núcleo, verifica tus opciones con las listadas más abajo para el tipo de interfaz de tu CD-ROM:

Grabadora SCSI:

Menú de soporte SCSI
  SCSI support:           Y o M
  SCSI CD-ROM support:    Y o M
  SCSI generic support:   Y o M
  Vendor-specific extensions:  [1]
También añade el controlador de bajo nivel (low-level driver) 
para tu tajeta SCSI en caso de que lo necesites.

Grabadora IDE:

Menú de soporte ATA/IDE/MFM/RLL
  IDE/ATAPI CDROM support:     N
  SCSI emulation support: Y o M
Menú de soporte SCSI
  SCSI support:           Y o M
  SCSI CD-ROM support:    Y o M
  SCSI generic support:   Y o M
  Vendor-specific extensions:  [1]

[1] Lee la ayuda para determinar si esta selección se aplica a tu hardware.

Si es necesario, recompila el núcleo con:
make dep &&
make bzImage &&
make modules &&
make modules_install

Copia /usr/src/linux/arch/i386/boot/bzImage y /usr/src/linux/System.map a /boot, edita /etc/lilo.conf apropiadamente y ejecuta lilo.

Para más información sobre estas opciones y los controladores que ellas instalan, lee The Linux 2.4 SCSI subsystem HOWTO.


cdrtools-2.0

Introducción a cdrtools

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.berlios.de/pub/cdrecord/cdrtools-2.0.tar.gz
Versión usada:					2.0
Tamaño del paquete:				1.6 MB
Estimación del espacio necesario en disco:	15.5 MB

El paquete cdrtools contiene uilidades para grabación de CDs. Son útiles para leer, crear o grabar (quemar) Discos Compactos.


Instalación de cdrtools

Instala cdrtools ejecutando los siguientes comandos:

make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root &&
make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root install


Capítulo 46. Impresión

cups-1.1.18


Configuración de CUPS

La configuración de CUPS es dependiente del tipo de impresora y puede ser compleja. Generalmente, las impresoras postscript se configuran más fácil. Las instrucciones detalladas de configuración y uso de CUPS pueden encontrarse en http://www.cups.org/documentation.php. El Manual de Administración y el Manual del Usuario son particularmente útiles.

Durante la instalación, cups creó el fichero de inicio /etc/rc.d/init.d/cups. Este fichero funciona, pero puede que quieras cambiar a un fichero de inicio de LFS más convencional:

cat > /etc/rc.d/init.d/cups << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/cups

# Arranca o para el servidor CUPS basándose en el primer argumento del guión.

source /etc/sysconfig/rc
source $rc_functions

case $1 in
    start)
           echo "Iniciando el servidor de impresión CUPS..."
           loadproc /usr/sbin/cupsd
           ;;
    stop)
           echo "Parando el servidor de impresión CUPS..."
           killproc cupsd
           ;;

    reload)
           echo "Recargando el servidor de impresión CUPS..."
           reloadproc /usr/sbin/cupsd
           ;;

    restart)
           $0 stop
           sleep 1
           $0 start
           ;;

    status)
           statusproc cupsd
           ;;

    *)
           echo "Uso: $0 {start|stop|reload|restart|status}"
           exit 1
           ;;
esac

# Fin de $rc_base/init.d/cups 
EOF

La instalación de CUPS también copia el guión de inicialización a los directorios /etc/rc.d/rc{0,2,3,5}. Puedes querer borrar esos ficheros y añadir enlaces simbólicos a /etc/rc.d/init.d/cups.


Ghostscript-8.00

Introducción a Ghostscript

Localización de descarga (HTTP):		http://telia.dl.sourceforge.net/sourceforge/ghostscript/ghostscript-8.00.tar.bz2
Localización de descarga (FTP):			ftp://ftp.sourceforge.net/pub/sourceforge/ghostscript/ghostscript-8.00.tar.bz2
Versión usada:					8.00
Tamaño del paquete:				5.2 MB
Estimación del espacio necesario en disco:	31-40 MB (depende si instalas libgs.so)
Estimación del tiempo de construcción:		
Descargas adicionales:
fuentes ghostscript gnu - estándar
fuentes ghostscript gnu - otras
fuentes ciríllicas 

Ghoscript es un procesador versátil que permite convertir Postscript a otros formatos.


Instalación de Ghostscript

Instala Ghostscript ejecutando los siguientes comandos:

./configure --prefix=/usr --libexecdir=/usr/lib/gs \
    --sysconfdir=/etc/gs --enable-shared --enable-static &&
make &&
make install

Para instalar la librería compartida libgs.so, ejecuta también los siguientes comandos:

make so &&
make soinstall

Para terminar la instalación, desempaqueta las fuentes en /usr/share/ghostscript.


LPRng-3.8.20

Introducción a LPRng

Localización de descarga (HTTP):		http://www.lprng.com/DISTRIB/LPRng/LPRng-3.8.20.tgz
Localización de descarga (FTP):			ftp://ftp.lprng.com/pub/LPRng/LPRng/LPRng-3.8.20.tgz
Versión usada:					3.8.20
Tamaño del paquete:				9.6 MB
Estimación del espacio necesario en disco:	46.2 MB
Estimación del tiempo de construcción:		0.70 SBU

El paquete LPRng contiene una implementación mejorada, extendida y portable del administrador de impresión LPR de Berkeley. Es útil para encolar trabajos de impresión.


Instalación de LPRng

Instala LPRng ejecutando los siguientes comandos:

./configure --prefix=/usr --libexecdir=/usr/sbin --sysconfdir=/etc &&
make &&
make install


Configuración de LPRng


Información sobre la configuración

No hay un fichero genérico printcap para todas las impresoras. Un fichero printcap de ejemplo está en el directorio etc, y puede ser de utilidad. También hay información en http://www.lprng.org y http://www.linuxprinting.org.

El guión de inicio que instala LPRng no es consistente con los guiones del BLFS, por tanto crearemos uno nuevo con los siguientes comandos:

mv /etc/rc.d/init.d/lpd /etc/rc.d/init.d/lpd.orig &&
cat > /etc/rc.d/init.d/lpd << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/lpd

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Iniciando lpd..."
                loadproc /usr/sbin/lpd
                ;;

        stop)
                echo "Deteniendo lpd..."
                killproc /usr/sbin/lpd
                ;;

        reload)
                echo "Reiniciando lpd..."
                reloadproc /usr/sbin/lpd
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc /usr/sbin/lpd
                ;;

        *)
                echo "Uso: $0 {start|stop|reload|restart|status}"
                exit 1
                ;;
esac

# Fin de $rc_base/init.d/lpd
EOF
chmod 755 /etc/rc.d/init.d/lpd

Crea los enlaces simbólicos al guión de inicio lprng en los directorios rc.d con los siguientes comandos:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/lpd ../rc0.d/K00lprng &&
ln -sf ../init.d/lpd ../rc1.d/K00lprng &&
ln -sf ../init.d/lpd ../rc2.d/S99lprng &&
ln -sf ../init.d/lpd ../rc3.d/S99lprng &&
ln -sf ../init.d/lpd ../rc4.d/S99lprng &&
ln -sf ../init.d/lpd ../rc5.d/S99lprng &&
ln -sf ../init.d/lpd ../rc6.d/K00lprng


Capítulo 47. Escáneres

sane-1.0.9


Capítulo 48. Lenguaje de Marcas Estándar Generalizado (SGML)

sgml-common-0.6.3

Introducción a sgml-common

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/sgml-common-0.6.3.tgz
Versión usada:					0.6.3
Tamaño del paquete:				75 KB
Estimación del espacio de disco requerido:	648 KB
Estimación del tiempo de construcción:		0.01 SBU

El paquete sgml-common contiene install-catalog. Es útil para crear y mantener catálogos sgml centralizados.


Instalación de sgml-common

Instala sgml-common ejecutando los siguientes comandos:

ln -s /usr/share/automake-1.6 /usr/share/automake &&
./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man &&
make &&
make install &&
install-catalog --add /etc/sgml/sgml-ent.cat \
/usr/share/sgml/sgml-iso-entities-8879.1986/catalog &&
install-catalog --add /etc/sgml/sgml-docbook.cat \
/etc/sgml/sgml-ent.cat &&
rm /usr/share/automake


sgml-dtd-3.1


Instalación de sgml-dtd

Instala sgml-dtd ejecutando los siguientes comandos:

cp docbook.cat docbook.cat.orig &&
sed -e '/ISO 8879/d' docbook.cat.orig > docbook.cat &&
cp docbook.cat docbook.cat.orig &&
sed -e '/gml/d' docbook.cat.orig > docbook.cat &&
cp docbook.cat docbook.cat.orig &&
sed -e 's|DTDDECL "-//OASIS//DTD DocBook V3.1//EN"|SGMLDECL|g' \
docbook.cat.orig > docbook.cat &&
install -d /usr/share/sgml/docbook/sgml-dtd-3.1 &&
chown -R root:root . &&
chmod -R 755 . &&
install docbook.cat /usr/share/sgml/docbook/sgml-dtd-3.1/catalog &&
cp -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-3.1 &&
install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \
/usr/share/sgml/docbook/sgml-dtd-3.1/catalog &&
install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \
/etc/sgml/sgml-docbook.cat


Explicación de los comandos

cp docbook.cat docbook.cat.orig
sed -e '/ISO 8879/d' docbook.cat.orig > docbook.cat
cp docbook.cat docbook.cat.orig
sed -e '/gml/d' docbook.cat.orig > docbook.cat
Estos comandos borran las definiciones ENT del fichero de catálogo.

cp docbook.cat docbook.cat.orig
sed -e 's|DTDDECL "-//OASIS//DTD Docbook V3.1//EN"|SGMLDECL|g' \
docbook.cat.orig > docbook.cat
Este comando sustituye la entrada de catálogo DTDDECL, que no está soportada por las herramientas Linux SGML, por la entrada de catálogo SGMLDECL.


sgml-dtd-4.2


Instalación de sgml-dtd

Instala sgml-dtd ejecutando los siguientes comandos:

cp docbook.cat docbook.cat.orig &&
sed -e '/ISO 8879/d' docbook.cat.orig > docbook.cat &&
cp docbook.cat docbook.cat.orig &&
sed -e '/gml/d' docbook.cat.orig > docbook.cat &&
install -d /usr/share/sgml/docbook/sgml-dtd-4.2 &&
chown -R root:root . &&
chmod -R 755 . &&
install docbook.cat /usr/share/sgml/docbook/sgml-dtd-4.2/catalog &&
cp -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-4.2 &&
install-catalog --add /etc/sgml/sgml-docbook-dtd-4.2.cat \
/usr/share/sgml/docbook/sgml-dtd-4.2/catalog &&
install-catalog --add /etc/sgml/sgml-docbook-dtd-4.2.cat \
/etc/sgml/sgml-docbook.cat


Explicación de los comandos

cp docbook.cat docbook.cat.orig
sed -e '/ISO 8879/d' docbook.cat.orig > docbook.cat
cp docbook.cat docbook.cat.orig
sed -e '/gml/d' docbook.cat.orig > docbook.cat
Estos comandos borran las definiciones ENT del fichero de catálogo.


OpenSP-1.5

Introducción a OpenSP

Localización de deascarga (HTTP):		http://download.sourceforge.net/openjade/OpenSP-1.5.tar.gz
Localización de descarga (FTP):			
Versión usada:					1.5
Tamaño del paquete:				1.3 MB
Estimación del espacio necesario en disco:	16.1 MB
Estimación del tiempo de construcción:		7.51 SBU

El paquete OpenSP contiene una librería en C++ para el uso de ficheros SGML/XML. Es útil para validar, procesar y manipular documentos en SGML o XML.

OpenSP depende de:
sgml-common-0.6.3

Instalación de OpenSP

Instala OpenSP ejecutando los siguientes comandos:

./configure --prefix=/usr --disable-static --enable-http \
--enable-default-catalog=/etc/sgml/catalog \
--enable-default-search-path=/usr/share/sgml --enable-xml-messages &&
make pkgdatadir=/usr/share/sgml/OpenSP-1.5 &&
make pkgdatadir=/usr/share/sgml/OpenSP-1.5 install &&
ln -sf onsgmls /usr/bin/nsgmls &&
ln -sf osgmlnorm /usr/bin/sgmlnorm &&
ln -sf ospam /usr/bin/spam &&
ln -sf ospcat /usr/bin/spcat &&
ln -sf ospent /usr/bin/spent &&
ln -sf osx /usr/bin/sx &&
ln -sf osx /usr/bin/sgml2xml &&
ln -sf libosp.so /usr/lib/libsp.so &&
install-catalog --add /etc/sgml/OpenSP-1.5.cat \
/usr/share/sgml/OpenSP-1.5/catalog &&
install-catalog --add /etc/sgml/sgml-docbook.cat \
/etc/sgml/OpenSP-1.5.cat


OpenJade-1.3.2

Introducción a OpenJade

Localización de descarga (HTTP):		http://telia.dl.sourceforge.net/openjade/openjade-1.3.2.tar.gz
Localización de descarga (FTP):			
Versión usada:					1.3.2
Tamaño del paquete:				880 KB
Estimación del espacio necesario en disco:	14.5 MB
Estimación del tiempo de construcción:		4.23 SBU

El paquete OpenJade contiene una herramienta DSSSL. Es útil para transformar SGML y XML a RTF, Tex, SGML y XML.

OpenJade depende de:
opensp-1.5

Instalación de OpenJade

Instala OpenJade ejecutando los siguientes comandos:

./configure --prefix=/usr --enable-http --disable-static \
--enable-default-catalog=/etc/sgml/catalog \
--enable-default-search-path=/usr/share/sgml \
--datadir=/usr/share/sgml/openjade-1.3.2 &&
make &&
make install &&
ln -sf openjade /usr/bin/jade &&
ln -sf libogrove.so /usr/lib/libgrove.so &&
ln -sf libospgrove.so /usr/lib/libspgrove.so &&
ln -sf libostyle.so /usr/lib/libstyle.so &&
install -m644 dsssl/catalog /usr/share/sgml/openjade-1.3.2/ &&
install -m644 dsssl/*.dtd dsssl/*.dsl dsssl/*.sgm \
/usr/share/sgml/openjade-1.3.2 &&
install-catalog --add /etc/sgml/openjade-1.3.2.cat \
/usr/share/sgml/openjade-1.3.2/catalog &&
install-catalog --add /etc/sgml/sgml-docbook.cat /etc/sgml/openjade-1.3.2.cat


Configuración de OpenJade

Información sobre la configuración

echo "SYSTEM \"/usr/share/docbook/docbookx.dtd\" \
\"/usr/share/xml/docbook/xml-dtd-4.2/docbookx.dtd\"" >> \
/usr/share/sgml/openjade-1.3.2/catalog
Esta configuración sólo es necesaria si intentas usar OpenJade para procesar los ficheros XML del libro BLFS a través de DSSSL.


docbook-dsssl-1.78


Instalación de docbook-dsssl

Instala docbook-dsssl ejecutando los siguientes comandos:

mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/dtds/decls &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/lib &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/common &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/html &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/print &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/test &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/images &&
install bin/collateindex.pl /usr/bin &&
cp catalog VERSION /usr/share/sgml/docbook/dsssl-stylesheets-1.78 &&
cp dtds/decls/*.dcl \
/usr/share/sgml/docbook/dsssl-stylesheets-1.78/dtds/decls &&
cp lib/dblib.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/lib &&
cp common/*.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/common &&
cp common/*.ent /usr/share/sgml/docbook/dsssl-stylesheets-1.78/common &&
cp html/*.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/html &&
cp lib/*.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/lib &&
cp print/*.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/print &&
cp images/*.gif /usr/share/sgml/docbook/dsssl-stylesheets-1.78/images &&
install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
/usr/share/sgml/docbook/dsssl-stylesheets-1.78/catalog &&
install-catalog --add /etc/sgml/sgml-docbook.cat \
/etc/sgml/dsssl-docbook-stylesheets.cat


Capítulo 49. Lenguaje de Marcas Extensible (XML)

xml-dtd-4.2


Instalación de DocBook

Instala DocBook ejecutando los siguientes comandos:

install -d /usr/share/xml/docbook/xml-dtd-4.2 &&
cp -af docbook.cat *.dtd ent/ *.mod /usr/share/xml/docbook/xml-dtd-4.2 &&
if [ ! -e /etc/xml/catalog ]; then mkdir -p /etc/xml; xmlcatalog --noout \
--create /etc/xml/catalog; fi &&
if [ ! -e /etc/xml/docbook ]; then xmlcatalog --noout --create \
/etc/xml/docbook; fi &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Information Pool V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbpoolx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML V4.2//EN" \
"http://oasis-open.org/docbook/xml/4.2/docbookx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Character Entities V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbcentx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Notations V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbnotnx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Additional General Entities
V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbgenent.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbhierx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/soextblx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML CALS Table Model V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/calstblx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteSystem" \
"http://www.oasis-open.org/docbook/xml/4.2" \
"file:///usr/share/xml/docbook/xml-dtd-4.2" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
"http://www.oasis-open.org/docbook/xml/4.2" \
"file:///usr/share/xml/docbook/xml-dtd-4.2" \
/etc/xml/docbook &&
xmlcatalog --noout --add "delegatePublic" \
"-//OASIS//ENTITIES DocBook XML" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegatePublic" \
"-//OASIS//DTD DocBook XML" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
"http://www.oasis-open.org/docbook/" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
"http://www.oasis-open.org/docbook/" \
"file:///etc/xml/docbook" /etc/xml/catalog


Configuración de DocBook


docbook-xsl-1.60.1

Introducción a docbook-xsl

Localización de descarga (HTTP):		http://telia.dl.sourceforge.net/sourceforge/docbook/docbook-xsl-1.60.1.tar.gz
Localización de descarga (FTP):			
Versión usada:					1.60.1
Tamaño del paquete:				1.2 MB
Estimación del espacio de disco requerido:	11.1 MB

El paquete docbook-xsl contiene hojas de estilo xsl. Son útiles para realizar transformaciones en ficheros XML DocBook.

docbook-xsl depende de:
libxslt-1.0.29

Instalación de docbook-xsl

Instala docbook-xsl ejecutando los siguientes comandos:

install -d /usr/share/xml/docbook/xsl-stylesheets-1.60.1 &&
cp -af VERSION common extensions fo html htmlhelp images javahelp lib \
manpages params profiling template tools xhtml \
/usr/share/xml/docbook/xsl-stylesheets-1.60.1 &&
install -d /usr/share/doc/xml &&
cp -af doc/* /usr/share/doc/xml &&
if [ ! -f /etc/xml/catalog ]; then mkdir -p /etc/xml; xmlcatalog --noout \
--create /etc/xml/catalog; fi &&
if [ ! -e /etc/xml/docbook ]; then xmlcatalog --noout --create \
/etc/xml/docbook; fi &&
xmlcatalog --noout --add "rewriteSystem" \
"http://docbook.sourceforge.net/release/xsl/1.45" \
"/usr/share/xml/docbook/xsl-stylesheets-1.60.1" /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteURI" \
"http://docbook.sourceforge.net/release/xsl/1.45" \
"/usr/share/xml/docbook/xsl-stylesheets-1.60.1" /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteSystem" \
"http://docbook.sourceforge.net/release/xsl/current" \
"/usr/share/xml/docbook/xsl-stylesheets-1.60.1" /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteURI" \
"http://docbook.sourceforge.net/release/xsl/current" \
"/usr/share/xml/docbook/xsl-stylesheets-1.60.1" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
"http://docbook.sourceforge.net/release/xsl/" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
"http://docbook.sourceforge.net/release/xsl/" \
"file:///etc/xml/docbook" /etc/xml/catalog


Capítulo 50. Postscript

a2ps-4.13b

Introducción a a2ps

Localización de descarga (HTP):		http://ftp.gnu.org/gnu/a2ps/a2ps-4.13b.tar.gz
Localización de descarga (FTP):			ftp://ftp.gnu.org/gnu/a2ps/a2ps-4.13b.tar.gz
Versión usada:					4.13b
Tamaño del paquete:				1.8 MB
Estimación del espacio necesario en disco:	19 MB
Estimación del tiempo de construcción:		0.60 SBU
Descarga adicional:
Fuentes internacionales

a2ps es una utilidad que se usa para convertir casi cualquier formato de entrada a postscript, de ahí el nombre "a2ps", que signfica "all to Poscript" (todo a Postscript).


Instalación de a2ps

a2ps es casi un típico paquete basado en autoconf, pero se intenta instalar en directorios inusuales.

Instala a2ps ejecutando los siguientes comandos:

cd contrib &&
cp Makefile.in Makefile.in.orig &&
sed -e "s:emacs::" Makefile.in.orig > Makefile.in &&
cd .. &&
./configure --prefix=/usr \
    --sysconfdir=/etc/a2ps --localstatedir=/var \
    --with-medium=letter &&
make &&
make install


xpdf-2.02

Introducción a xpdf

Localización de descarga (HTTP):		
Localización de descarga (FTP):			ftp://ftp.foolabs.com/pub/xpdf/xpdf-2.02.tar.gz
Versión usada:					2.02
Tamaño del paquete:				472 KB
Estimación del espacio necesario en disco:	8.2 MB
Estimación del tiempo de construcción:		1.05 SBU

xpdf es un visor para el Formato de Documento Portable de Adobe (PDF). Es rápido, pequeño y viene con algunas utilidades en línea de comandos.

xpdf depende de:
xfree86-4.3.0 y lesstif-0.93.36
xpdf utilizará:
Fuentes instaladas: GhostScript-8.00, freetype-2.1.3, 
t1lib y truetype.

Instalación de xpdf

Instala xpdf ejecutando los siguientes comandos:

./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man  \
    --with-freetype2-includes=/usr/include/freetype2 \
    --with-freetype2-library=/usr/lib \
    --with-appdef-dir=/usr/X11R6/lib/X11/app-defaults/ &&
make &&
make install


Configuración de xpdf

En el directorio etc encontrarás un fichero xpdfrc que puedes copiar a ~/.xpdfrc o tomarlo como ejemplo para escribir tu propio fichero de configuración.


Fichero .xpdfrc de ejemplo

# Fichero .xpdfrc de ejemplo
displayFontT1 Times-Roman		/usr/share/ghostscript/fonts/n021003l.pfb
displayFontT1 Times-Italic		/usr/share/ghostscript/fonts/n021023l.pfb
displayFontT1 Times-Bold		/usr/share/ghostscript/fonts/n021004l.pfb
displayFontT1 Times-BoldItalic		/usr/share/ghostscript/fonts/n021024l.pfb
displayFontT1 Helvetica			/usr/share/ghostscript/fonts/n019003l.pfb
displayFontT1 Helvetica-Oblique		/usr/share/ghostscript/fonts/n019023l.pfb
displayFontT1 Helvetica-Bold		/usr/share/ghostscript/fonts/n019004l.pfb
displayFontT1 Helvetica-BoldOblique	/usr/share/ghostscript/fonts/n019024l.pfb
displayFontT1 Courier			/usr/share/ghostscript/fonts/n022003l.pfb
displayFontT1 Courier-Oblique		/usr/share/ghostscript/fonts/n022023l.pfb
displayFontT1 Courier-Bold		/usr/share/ghostscript/fonts/n022004l.pfb
displayFontT1 Courier-BoldOblique	/usr/share/ghostscript/fonts/n022024l.pfb
displayFontT1 Symbol			/usr/share/ghostscript/fonts/s050000l.pfb
displayFontT1 ZapfDingbats		/usr/share/ghostscript/fonts/d050000l.pfb

fontDir		/usr/X11R6/lib/X11/fonts/truetype

psFile			"|lpr"
psPaperSize		a4
textEOL		unix

t1libControl		low
freetypeControl		low

urlCommand	"links -g %s"


Capítulo 51. Generación de Documentos

tex-2.0.2


Instalación deTeX

TeX se instala de forma algo diferente a los típicos paquetes GNU. Estas instrucciones asumirán que /usr/src es el directorio de trabajo actual y que contiene los tres paquetes de TeX.

Instala TeX ejecutando los siguientes comandos:

mkdir -p /usr/share/texmf &&
tar zxvf tetex-src-2.0.2.tar.gz &&
cd tetex-src-2.0.2 &&
gzip -dc ../tetex-texmf-2.0.2.tar.gz \
      | (umask 0; cd /usr/share/texmf; tar xvf -)

Si descargaste el paquete opcional con el código fuente de texmf, desempaquétalo ahora:

gzip -dc ../tetex-texmfsrc-2.0.2.tar.gz \
      | (umask 0; cd /usr/share/texmf; tar xvf -)

./configure --with-x=no --prefix=/usr \
    --without-texinfo   --with-system-ncurses --with-system-zlib \
    --exec-prefix=/usr --bindir=/usr/bin &&
make world &&
texconfig dvips paper letter &&
texconfig font rw


Apéndice A. Listado de los enlaces simbólicos en rc?.d usados en LFS/BLFS

En esta sección se listan todos los enlaces simbólicos usados por el paquete lfs-bootscripts (concretamente la versión 1.9) y todos los de los guiones del libro BLFS. Esto es por dos razones: primero, para que puedas saber de un vistazo qué número hemos usado para cada paquete, y en segundo lugar, ¡para que nosotros podamos ver qué número hemos usado para cada paquete! Sin esto se haría nuestra vida más difícil (y seguramente acabaríamos con conflictos).

Es evidente que esta no es la única configuración (y alguien argumentará si es óptima) para los enlaces simbólicos. En la tradición de LFS, deberías encontrar cual es la mejor para ti y usarla; nuestras recomendaciones son sólo una plantilla.


rc0.d

Tabla A-1. Enlaces simbólicos en rc0.d

NúmeroTítuloEnlaceExplicación
K00cups../init.d/cupsDescarga el Sistema de Impresión Común de Unix: cups-1.1.18
K00lprng../init.d/lprngDescarga el administrador de impresión LPR: LPRng-3.8.20
K05gdm../init.d/gdmDescarga el demonio de administración de pantalla de Gnome: gdm-2.4.1.3
K08fcron../init.d/fcronDescarga el demonio Cron: fcron-2.9.3
K10gpm../init.d/gpmDescarga el demonio de ratón de propósito general: gpm-1.20.1
K25postfix../init.d/postfixDescarga el MTA Postfix: postfix-2.0.7
K26mysql../init.d/mysqlDescarga el demonio MySQL: MySQL-3.23.55
K26postgres../init.d/postgresDescarga el demonio PostgreSQL: Postgres-7.3.2
K30sshd../init.d/sshdDescarga el demonio de shell segura: openssh-3.6.1p1
K35alsa../init.d/alsaGuarda los ajustes de volumen: alsa-0.9.2
K40sysklogd../init.d/sysklogdPara los registros de eventos del núcleo y del sistema: Parte del LFS base.
K45random../init.d/randomGuarda el alimentador de entropía: random
K48samba../init.d/sambaPara el sistema de ficheros de red: samba-2.2.8a
K48NFS../init.d/nfsPara el sistema de ficheros de red:
K49portmap../init.d/portmapPara el reenvío de peticiones RPC: portmap-5
K49xinetd../init.d/xinetdPara el demonio de servicios de internet: xinetd-2.3.10
K49bind../init.d/bindPara el demonio del servidor de nombres (DNS): bind-9.2.2
K50sendsignals../init.d/sendsignalsMata los procesos: Parte del LFS base.
K59firewall../init.d/firewallDesactiva el cortafuegos: Cortafuegos
K60mountfs../init.d/mountfsDesmonta todos los sistemas de ficheros: Parte del LFS base.
K70swap../init.d/swapDesactiva las particiones de intercambio: Parte del LFS base.
K80network../init.d/networkDescarga el entorno de red: Parte del LFS base.
K90localnet../init.d/localnetElimina la interfaz de red local: Parte del LFS base.
K99halt../init.d/haltCierra el sistema: Parte del LFS base.

rc6.d

Tabla A-7. Enlaces simbólicos en rc6.d

NúmeroTítuloEnlaceExplicación
K00lprng../init.d/lprngDescarga el administrador de impresión LPR: LPRng-3.8.20
K05gdm../init.d/gdmDescarga el demonio de administración de pantalla de Gnome: gdm-2.4.1.3
K08fcron../init.d/fcronDescarga el demonio Cron: fcron-2.9.3
K10gpm../init.d/gpmDescarga el demonio de ratón de propósito general: gpm-1.20.1
K25postfix../init.d/postfixDescarga el MTA Postfix: postfix-2.0.7
K26mysql../init.d/mysqlDescarga el demonio MySQL: MySQL-3.23.55
K26postgres../init.d/postgresDescarga el demonio PostgreSQL: Postgres-7.3.2
K30sshd../init.d/sshdDescarga el demonio de shell segura: openssh-3.6.1p1
K35alsa../init.d/alsaGuarda los ajustes de volúmen: alsa-0.9.2
K40sysklogd../init.d/sysklogdPara los registros de eventos del núcleo y del sistema: Parte del LFS base.
K45random../init.d/randomGuarda el alimentador de entropía: random
K48samba../init.d/sambaPara el sistema de ficheros de red: samba-2.2.8a
K48NFS../init.d/sambaPara el sistema de ficheros de red:
K49portmap../init.d/portmapPara el reenvío de peticiones RPC: portmap-5
K49xinetd../init.d/xinetdPara el demonio de servicios de internet: xinetd-2.3.10
K49bind../init.d/bindPara el demonio del servidor de nombres (DNS): bind-9.2.2
K50sendsignals../init.d/sendsignalsMata los procesos: Parte del LFS base.
K59firewall../init.d/firewallDesactiva el cortafuegos: Cortafuegos
K60mountfs../init.d/mountfsDesmonta todos los sistemas de ficheros: Parte del LFS base.
K70swap../init.d/swapDesactiva las particiones de intercambio: Parte del LFS base.
K80network../init.d/networkDescarga el entorno de red: Parte del LFS base.
K90localnet../init.d/localnetElimina la interfaz de red local: Parte del LFS base.
K99reboot../init.d/haltReinicia el sistema: Parte del LFS base.

Notas

[1]

reescribir las cabeceras IP de los paquetes que enruta desde clientes con direcciones IP privadas hacia Internet, para que parezcan que provienen del mismo cortafuegos

[2]

Si necesitas ayuda sobre cómo configurar, compilar e instalar un núcleo nuevo, repasa el capítulo VIII del libro LFS Instalación del núcleo y Hacer el sistema LFS arrancable; ten en cuenta que necesitarás reiniciar para ejecutar realmente el nuevo núcleo.

[3]

Piensa en un servidor de nombres dando respuestas que hacen que bind falle o, incluso peor, que implementan un gusano a través de un desbordamiento de memoria.