Siguiente
Anterior
Contenidos
En esta sección reinstalaremos los programas enlazados estáticamente en secciones
anteriores de forma que queden enlazados dinámicamente. Es bastante sencillo,
casi tanto como cuando preparamos el sistema para la instalación de Glibc.
Es importante que prestes mucha atención a esta sección. Si decides no perder
el tiempo reinstalando software que ya tenías instalado, por lo menos echa
un vistazo a las nuevas librerías y programas. Algunos de estos últimos dependen
de ciertas librerías cuando son enlazados dinámicamente. Pero estas librerías
no son sólo usadas por los programas ya instalados; otros pueden necesitarlas
también, por lo que sería conveniente instalarlas. Adicionalmente, unos pocos
programas recomiendan que sean a su vez instalados otros programas. Si bien no
son necesarios para la instalación de Glibc y GCC, es conveniente instalarlas
ahora para evitarnos problemas más tarde.
- Descomprime el archivo fichero Termcap
- Configura el paquete con
configure
- Compílalo ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo fichero Readline
- Configura el paquete con
configure
- Compílalo ejecutando
make CC=/usr/gcc2723/bin/gcc SHOBJ_CC=/usr/gcc2723/bin/gcc
shared
- Instala el paquete ejecutando
make CC=/usr/gcc2723/bin/gcc install
- Instala las librerías compartidas con el comando
make install-shared
- Descomprime el archivo fichero Bash
- Configura el paquete ejecutando
configure --with-installed-readline
- Compílalo con
make CC=/usr/gcc2723/bin/gcc
- Edita el fichero
Makefile y busca la variable: bindir
- Reemplaza el valor actual con: /bin
- Instala el paquete ejecutando
make install
Esta versión de Bash es compilada con el flag -g, es decir, está compilada
con información de depuración. Esto significa que si alguna vez ejecutas
bash a través de un depurador la salida será legible por las personas. Un
ejecutable compilado sin esta información es muy difícil de depurar.
La desventaja es que ahora el ejecutable ocupa casi 1MB. Si eliminas la información
de depuración sólo ocupa unos 340KB. Esta última opción es aconsejable si
no depuras programas, pues la diferencia de tamaño es considerable.
Puedes editar los ficheros Makefile siempre que vayas a compilar un programa.
De esta forma puedes quitar el flag -g del compilador (a menudo se encuentra
en una variable llamda CFLAGS), o puedes ejecutar el programa tal cual con
uno o más ejecutables como parámetro(s). Toda la información de depuración
será borrada (si bien esto no afecta al programa para nada). La eleccción es tuya.
- Descomprime el archivo Sysvinit
- Ve al directorio src
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Make
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Sed
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Shell Utils
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Copia los siguientes ejecutables del directorio src al /bin:
date echo false
pwd sleep stty su true uname
- Copia el siguiente ejecutable del directorio src al /sbin:
chroot
- Copia los siguientes ejecutables del directorio src al /usr/bin:
basename
dirname env expr factor groups id logname nice nohup patchchk printenv printf
seq tee test tty uptime users who whoami yes
- Descomprime el archivo File Utils
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Edita el fichero
Makefile
- Encuentra las siguientes variables: bindir sbindir sysconfdir localstatedir
- Elimina las partes $(exec_prefix) y $(prefix) y deja sólo los
valores: /bin /sbin /etc y /var
- Instala el paquete ejecutando
make install
- Mueve el fichero
/bin/install al directorio /usr/bin
- Descomprime el archivo Util Linux
- Configura el paquete ejecutando
configure
- Ve al directorio lib
- Compila los ficheros que haya con
make
- Ve al directorio fdisk
- Compila fdisk ejecutando
make fdisk
- Compila cfdisk ejecutando
make cfdisk
- Copia los siguientes ejecutables a /sbin:
cfdisk fdisk
- Copia los siguientes ficheros a /usr/man/man8:
cfdisk.8 fdisk.8
- Ve al directorio login-utils
- Copia el siguiente fichero a /usr/man/man1:
login.1
- Copia el siguiente fichero a /usr/man/man8:
agetty.8
- Ve al directorio mount
- Compila las utilidades con
make
- Copia los siguientes ejecutables a /sbin:
mount umount swapon losetup
- Copia los siguientes ficheros a /usr/man/man8: Todos los ficheros
*.8
- Elimina el enlace simbólico /sbin/swapoff y crea de nuevo el enlace que une
/sbin/swapoff
con /sbin/swapon
- Ve al directorio sys-utils
- Compila dmesg ejecutando
make dmesg
- Compila rdev ejecutando
make rdev
- Copia el siguiente ejecutable a /bin:
dmesg
- Copia el siguiente ejecutable a /sbin:
rdev
- Copia los siguientes ficheros a /usr/man/man8:
dmesg.8 rdev.8 swapdev.8 ramsize.8
vidmode.8 rootflags.8
- Crea los enlaces simbólicos que unen
/sbin/rdev, /sbin/swapdev, /sbin/ramsize,
/sbin/vidmode y /sbin/rootflags con /sbin/rdev
- Ve al directorio text-utils
- Compila more ejecutando
make more MOREHELPDIR=/usr/share/more
- Copia el siguiente ejecutable a /usr/bin:
more
- Copia el siguiente fichero a /usr/man/man1:
more.1
- Crea el directorio
/usr/share/more
- Copia el siguiente fichero a /usr/share/more:
more.help
- Descomprime el archivo Text Utils
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Edita el fichero
src/Makefile y encuentra la variable: bindir
- Reemplaza el valor actual con: /usr/bin
- Instala el paquete ejecutando
make install
- Mueve el fichero /usr/bin/cat a
/bin/cat
- Descomprime el archivo Tar
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Edital el fichero src/Makefile y encuentra las variables: bindir y libexecdir
- Asigna a bindir el valor: /bin
- Asigna a libexecdir el valor: /usr/bin
- Instala el paquete ejecutando
make install
- Si no necesitas el servidor de cintas remoto (rmt), puedes borrar
el programa
/usr/bin/rmt
- Descomprime el archivo Gzip
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
Yo utilizo la versión 1.2.4 y durante el proceso de compilación me aparece
el siguiente error: "conflicting types for basename" (tipos conflictivos para
el nombre base). Si a ti también te ocurre, aquí tienes como solucionarlo:
- Edita el fichero gzip.h y busca la línea: extern char *basename OF((char
*fname));
- Reemplaza esta línea por: extern char *basename2 OF((char *fname));
- Edita el fichero util.c y busca la línea: char *basename(fname)
- Reemplaza esta línea por: char *basename2(fname)
Recompila el paquete (con make). El error ya no debería aparecer.
- Edita el fichero
Makefile y encuentra la variable: bindir
- Reemplaza el valor actual con: /bin
- Instala el paquete ejecutando
make install
- Descomprime el archivo Bison archive
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Flex
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Binutils
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Grep
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Mawk
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Find Utils
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
Yo uso la versión 4.1 y durante el proceso de compilación me aparece el
siguiente error. A pesar de ser un error fatal, el proceso de compilación
no se detiene, haciendo difícil detectarlo. Observa todos los mensajes durante
el proceso por si te surge el mensaje: defs.h:304: conflicting types por 'basename'
Si te sale a ti también, aquí tienes como solucionarlo:
- Edita el fichero
find/Makefile y busca la variable: CFLAGS
- Asígnale el valor -D_GNU_SOURCE
- Edita el fichero
find/defs.h y busa la línea: char *basename P_((char *fname));
- Reemplázala con: char *basename2 P_((char *fname));
- Edita el fichero
find/util.c y encuentra la línea: char *basename (fname)
Esta línea está dividida en dos ("char *" está en la primera y
"basename (fname)" en la segunda).
- Reemplázala con: char *basename2 (fname)
No hace falta dejar la línea partida en dos, ponlo como gustes.
Recompila el paquete (con make). Ahora debería compilar correctamente.
- Instala el paquete ejecutando
make install
- Descomprime el archivo Diff Utils
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Less
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Perl
- Configura el paquete ejecutando
Configure
Si deseas seleccionar todos los valores por defecto, configura el paquete
ejecutando Configure -d. De esta forma te ahorrarás tener
que presionar ENTER para aceptar cada valor.
- Compila el paquete ejecutando
make
- Testea el paquete ejecutando
make test
- Instala el paquete ejecutando
make install
- Descomprime el archivo M4
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make
- Instala el paquete ejecutando
make install
- Descomprime el archivo Texinfo archive
- Configura el paquete ejecutando
configure
- Compila el paquete ejecutando
make CC=/usr/gcc2723/bin/gcc
- Instala el paquete ejecutando
make install
Siguiente
Anterior
Contenidos