**Autor: g0su
Instalación:
Esto es una miniguia de instalación basica de la distribucion Linux Gentoo, notar que puede tener muchisimos fallos puesto que la acabo de escribir y esta orientado al usuario medio-bajo en conocimientos del sistema Linux. He modificado y quitado pasos de la instalacion basica, como la creación de una particion especifica para el boot para facilitar la instalación de esta.
Recordar que siempre que aparezca el simbolo # y un comando lo que se debera de poner es unicamente el comando, el simbolo # se refiere al icono de identificación de una shell de usuario.
1ºObtención de la distribucion gentoo:
La distribución gentoo la obtendremos de los servidores de www.gentoo.org. En nuestro caso deberemos de bajarnos el live CD que contenga el stage Basic. Seguramente sera el que menos ocupe sobre las 100 megas de cdrom.
Este es el link actualmente para descargarsela:
Una vez descargada deberemos de grabar la iso en un cd virgen.
2ºArranque desde el CD:
Introducimos el cd en la unidad lectora y encendemos el ordenador. Acontinuación deberemos indicarle a la bios que arranque desde cd y no desde el disco duro(HD). Para acceder a la BIOS deberemos de apretar la letra de "Supr" que se encuentra alado del intro, justo cuando nos aparezca las letras de informacion de nuestro hardware, antes de ver el arranque de nuestro sistema operativo.
Una vez hecho, al llegar al arranque nos leera el cd, nos aparecera un dibujo de gentoo y en la zona inferior nos aparecera "boot:", donde deberemos de ponerle opciones especiales que queremos que cargue con el arranque(apretar la letra F2 para ver las opciones), normalmente no nos hara falta poner nada, por lo que pulsaremos intro para cargar el kernel.
Una vez cargado el kernel nos aparecera una shell donde comenzara nuestra instalación.
3ºConexion a Internet y configuraciones basicas:
Si disponemos de cable o adsl monopuesto deberemos de introducir lo siguiente:
dhcpcd eth0
Si por lo contrario disponemos de adsl multipuesto, deberemos de introducir:
net-setup eth0
Acontinuación deberemos de asegurarnos que la hora introducida es la correcta:
date
Si la hora introducida no es la correcta tendremos que poner la que rectificarlo, la sintaxis es date MMDDhhmmyy, siendo los 2 primeros numeros el mes, los otros dos el dia, los otros dos la hora y los otros dos los minutos y por ultimo el año, si quisieramos poner 5 de enero a las 14:31 del 2004 seria:
date 0105143104
Para mas información:
date --help
4ºParticionar:
Para particionar el disco duro usaremos el comando fdisk, este comando crea destrulle particiones pero no es capaz de reasignar particiones. Si tenemos una particion que se encuentra ocupando todo el espacio de nuestro disco duro tenemos que reparticionarla con otro programa como pudiera ser "Partition Magic" o borrar la particion que tenemos y crearla nueva con menos espacio asignado.
Notar que los dispositivos en linux se encuentran en el directorio /dev/ y tienen una terminologia muy concreta.
Los dispositivos ide se conocen como hdX ej: /dev/hda. La X es el modo en que se encuentra, es decir, si veis una placa base tiene el ide0 o ide master y el ide1 o ide sclavo, dentro de cada ide este a su vez tiene un ide master y un ide sclavo, por lo que el maximo de dispositivos ide que puedes conectar a la placa con 4:
hda -> ide0 cable master(maestro)
hdb -> ide0 cable slave(esclavo)
hdc -> ide1 cable master
hdd -> ide1 cable slave
Para especificar que particion dentro de cada unidad(ejemplo un HD) tenemos va seguido el dispositivo de un numero: /dev/hdXX, por ejemplo la particion del disco duro que esta conectado al ide0 master y cuyo numero es el 1 seria:
/dev/hda1
En el caso que usemos dispositivos S-ATA o dispositivos SCSI, deberemos de activar el modulo de nuestra controladora mediante: modprobe modulo, para listar los modulos disponibles sera asi:
modprobe -l
Las particiones para estos discos duros son de la siguiente forma /dev/sdX siendo una X una letra que identifica el disco duro, siendo /dev/sda para el disco duro 1, /dev/sdb para el disco duro 2 etc.. Para identificar las particiones dentro de cada unidad se hace igual que con los ide /dev/sdaX siendo X un numero identificativo, por ejemplo: /dev/sda1
Opciones del fdisk:
-> m podemos ver las opciones
-> p muestra las particiones
-> a decimos cual es la particion de arranque
-> n añadimos una particion nueva(siempre las crearemos primarias no extendidas, tanto swap como no)
-> d borramos la particion
-> t elejimos el tipo de particion(linux, swap linux, vfat...) una vez creada la particion.
-> q o control+d para salir sin grabar
-> w para salir grabando los datos.
Nota: una vez modificado la tabla de particiones se debera de reiniciar para poder ver los cambios.
Vamos a ver un ejemplo de creación de particiones linux.Partiremos que queremos crear unas particiones en el hda, el cual tiene ya una partición de otro sistema operativo llamada hda1. Crearemos una particion hda2 que sera donde tengamos nuestro linux y una particion hda3 que sera la swap. Recordar que el fdisk cuando se crea una partición la toma como tipo linux, por lo cual, en el caso de la swap habra que cambiarla por tipo linux swap. Ademas comentar que a la hora de crear particiones fdisk las crea por medio de cilindros, como esto suele ser un poco engorroso las crearemos dejando el inicio de la particion la predeterminada(pulsando intro) y como final de partición las Megas que queremos que tenga la particion, usando +XM siendo X la cantidad de megas.
fdisk /dev/hda
The number of cylinders for this disk is set to 116301.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (2043-116301, default 2043): *Los numeros de los cilindros pueden variar
(presionamos intro)
Using default value 2043
Last cylinder or +size or +sizeM or +sizeK (2043-116301, default 116301): +10000M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (19378-116301, default 19378):
Using default value 19378
Last cylinder or +size or +sizeM or +sizeK (19378-116301, default 116301): +200M
Command (m for help): p *Mostramos las particiones
Disk /dev/hda: 60.0 GB, 60022480896 bytes
16 heads, 63 sectors/track, 116301 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2042 2000+ b W95 FAT32
/dev/hda2 2043 19377 9765976+ 83 Linux
/dev/hda3 19378 19766 196056 83 Linux
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): L
(LISTADO DE PARTICIONES)
Hex code (type L to list codes): 82
Changed system type of partition 3 to 82 (Linux swap)
Command (m for help): p
Disk /dev/hda: 60.0 GB, 60022480896 bytes
16 heads, 63 sectors/track, 116301 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2042 2000+ b W95 FAT32
/dev/hda2 2043 19377 9765976+ 83 Linux
/dev/hda3 19378 19766 196056 82 Linux Swap
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
5ºFormatear particiones:
Vamos a darles formato a las particiones. Existen actualmente 3 formatos principalmente, el ext3 que es el antiguo ext2 con journalist(si se apaga el ordenador no perdemos la información ni se producen daños), Reiserfs y XFS. En mi caso por pruebas la que mejor resultado me ha dado es la reiserfs, aunque ahi gente que opina que ext3 es mejor que reiserfs. XFS sera seguramente el mejor sistema de ficheros(formato) que ahi pero esta ahun un poco verde, por lo que no lo recomiendo.
Los pasos a seguir a continuación seran los siguientes:
1ºActivamos el dma de nuestro hd por si no lo tubieramos, para aumentar la velocidad de nuestro discoduro:
hdparm -d 1 /dev/hda
2ºDamos formato a la particion swap:
mkswap /dev/hda3
3ºAcontinuación escogeremos nuestro tipo de ficheros, no voy a explicar la XFS por motivos citados anteriormente:
mke2fs -j /dev/hda2 -> si queremos formatear la particion linux como ext3.
mkreiserfs /dev/hda2 -> si queremos formatear la particion como reiserfs.
6ºMontar las particiones:
Acontinuacion montaremos las particiones para poder ser usadas, esto es un concepto algo raro para los usuarios que no usen linux/unix. Montar una particion seria algo asi como activar una partición para poder ser usada. En el arranque de linux escribiremos en /etc/fstab las particiones que queremos que se arranque(tambien podemos decirle que no arranquen) con un conjunto de caracteristicas como pueda ser acceso de solo lectura etc etc Esto lo veremos mas alante pero es interesante ir sabiendolo ya.
Vamos a montar la particion swap:
swapon /dev/hda3
Ahora montaremos la particion linux donde tendremos nuestra gentoo, tenemos que crear un directorio donde queremos montar la particion:
mkdir /migentoo
mount -t reiserfs /dev/hda2 /migentoo -> montamos la nueva particion si la elejimos reiserfs
o
#mount -t ext3 /dev/hda2 /migentoo -> montamos la nueva particion si la elejimos ext3
El comando mount solo puede ser usado por el usuario root y su sintaxis basica es la siguiente:
mount -t tipo /dev/dispositivo /directorio/de/montage
Los tipos mas usados son los siguientes:
reiserfs -> para reiserfs
ext3 -> para ext3
vfat -> para fat32
ntfs -> para ntfs
iso9660 -> para cdroms
Para mas información man mount.
7ºStage:
Acontinuación vamos a montar el dispositivo de cdrom donde copiaremos el stage. EL stage es la distribucion gentoo con una cantidad de programas para poder ser usada. Existen 3 stage, cada uno con un mayor numero de programas basicos instalados, en nuestro caso vamos a usar stage1 que es la mas simple. Recordar que ahi stage2 y stage3 compiladas para nuestras CPU's pero que usan opciones muy basicas, como veremos en la parte de make.conf(mas adelante) se pueden poner un gran numero de opciones.
Montage de nuestro cdrom:
mkdir /cdrom
mount -t iso9660 /dev/hdb /cdrom -> montamos el cdrom partiendo que se encuentra en hdb
cd /cdrom
Acontinuación vamos a copiar el stage a nuestra particion recien creada(en nuestro ejemplo hda2).
cd stages
cp basic-stage1.tar.gz /migentoo -> el nombre del stage puede varias, pero las palabras stage y basic
cd /migentoo
Acontinuación vamos a desempaquetar y descomprimir el stage, con la opcion p para que mantenga los privilejios originales del stage en que fue empaquetado:
tar -xvjpf basic-stage1.tar.gz
8ºPreparandonos nuestra partición:
Montamos la proc del livecd(que se cargo y se creo con el kernel del live-cd) en nuestra gentoo.
mount -t proc /proc /migentoo/proc
Copiamos los DNS que nos permitiran resolver dominios de internet:
cp /etc/resolv.conf /migentoo/etc/resolv.conf
Cambiamos nuestra raiz del live-cd por lo nuestra particion donde tenemos la gentoo. Notar que es interesante que leamos el punto 9 antes de pasar a este punto, puesto que los programas a usar una vez hecho el chroot para edicion de texto pueden resultar complejos(nano y vi):
#chroot /migentoo /bin/bash
Cargamos las configuraciones de nuestro usuario, de lo que sera nuestra futura gentoo:
env-update
source /etc/profile -> cargamos la config del profile
9ºPortage y emerge:
El portage es el gestor de paquetes de gentoo(perdonarme los expertos, por ser tan poco especifico). La herramienta usada para la gestion de este es el comando emerge.
El portage se encuentra en /usr/portage y su configuración la tenemos en el fichero /etc/make.conf que veremos en el siguiente punto.
El portage esta ordenador por subcategorias, y dentro de cada categoria su correspondiente herramienta/programa.
Los ficheros descargados, que en su mayoria son fuentes se descargan en el fichero /usr/portage/distfiles.
Los comandos mas usados del emerge son los siguientes(un paquete es un programa o agrupacion de estos):
emerge -s paquete -> busca en el portage "paquete"
emerge paquete -> Instala el paquete
emerge -p paquete -> Nos muestra las dependencias que necesitamos instalar para instalar el paquete
emerge -f paquete -> Se descarga el programa pero no lo compila
emerge -u paquete -> Actualiza el paquete
emerge -C paquete -> Desinstala el paquete
emerge sync -> Actualiza la lista de paquetes del portage
emerge world -> Reinstala todo el sistema(No lo uses jamas, por la vida de tu CPU xD)
emerge -u world -> Actualiza la distribución
emerge -b paquete -> Compila el programa, lo instala y nos genera el binario
emerge -B paquete -> Compila el programa y nos genera el binario, usado si tenemos dos maquinas y una es muy potente y la otra no lo es
emerge -k paquete -> Instala un paquete binario anteriormente compilado
Muchas de las preguntas acerca de gentoo, va relacionado con el tiempo que tarda en compilar un programa y si realmente puede ser usado para un servidor. Para intentar solventar esta cuestion gentoo permite que una vez compilado un paquete podamos crear el binario optimizado para nuestra plataforma.
Gracias a ello podemos tener nuestros programas optimizados para nuestra plataforma, con lo que, si hubiera algun tipo de fallo y necesitaramos reinstalar un programa unicamente deberiamos de "cargar" el binario que creamos cuando compilamos la primera vez.
emerge -b paquete
(Y si necesitamos reinstalarlo con poner lo siguiente nos instalara el binario que hemos creado)
emerge -k paquete
En gentoo existen unos paquetes, que nos aparecen como [MASKED], esto puede ser por 2ºmotivos:
1ºEl paquete es muy nuevo y se encuentra como "inestable" puesto que no se le ha realizado las suficientes pruebas, esto pasara si no aceptamos la rama inestable de gentoo en el make.conf. Con poner el siguiente comando lo instalaremos:
ACCEPT_KEYWORDS="x86" emerge paquete
2ºEl programa tiene algun tipo de error que ahun no ha sido solucionado por sus programadores, como por ejemplo un error de seguridad.
Podemos verlo en /usr/portage/profiles/package.mask, si deseamos instalarlo de todas formas, unicamente con comentar en el fichero el paquete sobra. No lo recomiendo nunca.
vim /usr/portage/profiles/package.mask
emerge paquete
El emerge nos muestra la version de la aplicación que se dispone actualmente, pero si queremos instalar una versión anterior o posterior a la que nso ofrece, deberemos de ir al portage y emergerla. Un ejemplo seria el siguiente:
emerge -s gentoo-source
Searching...
[ Results for search key : gentoo-source ]
[ Applications found : 1 ]
- sys-kernel/gentoo-sources
Latest version available: 2.4.26_pre6
Latest version installed: [ Not Installed ]
Size of downloaded files: 32,178 kB
Homepage: http://www.kernel.org/ http://www.gentoo.org/
Description: Full sources for the Gentoo Kernel.
License: GPL-2
cd /usr/portage/sys-kernel/gentoo-sources/
ls
ChangeLog gentoo-sources-2.4.20-r7.ebuild gentoo-sources-2.4.26_pre3.ebuild
Manifest gentoo-sources-2.4.22-r3.ebuild gentoo-sources-2.4.26_pre5.ebuild
files gentoo-sources-2.4.22-r5.ebuild gentoo-sources-2.4.26_pre6.ebuild
gentoo-sources-2.4.19-r13.ebuild gentoo-sources-2.4.22-r9.ebuild metadata.xml
gentoo-sources-2.4.20-r16.ebuild gentoo-sources-2.4.25-r2.ebuild
emerge gentoo-sources-2.4.25-r2.ebuild
Podriamos haber emergido cualquiera de las versiones que aparecian con el .ebuild, en nuestro caso instalariamos un kernel mas antiguo que el que nos ofrecia el emerge.
Esto es algo unico de gentoo, puesto que en la mayoria de distribuciones solo te ofrecen una version del programa.
Existe una aplicación que nos permite mostrar el tiempo que tardamos en compilar un programa. Realmente es un script del log del portage, es como para hacernos a la idea de lo que puede tardar una apliación en compilar, el programa se llama genlop:
emerge genlop
genlop -t paquete
Para mas información acerca de las posibilidades que tiene genlop: genlop -help.
10ºModificamos el fichero make.conf:
El fichero /etc/make.conf es el fichero de configuración del portage, donde le pasamos los flags de la compilación, los USE o opciones/modulos con que queremos que nos instale el programa. Asi como configuración de nuestro portage.
El fichero make.conf comienza con un USE="opcion1 opcion2 opcion 3...", esto es una de las cosas que hace que gentoo sea especial, gracias a esto, cuando compilamos una aplicación cargamos lo que nos interesa unicamente, asi como cargamos modulos que de forma predeterminada no estan accesibles.
Un ejemplo seria el soporte de sonido. El soporte tradicional OSS va a ser substituido por el ALSA, pero muchas de las aplicaciones compiladas ya siguen sin tener soporte de ALSA pero si de OSS. Pues introduciendo en el USE"alsa -oss" nos compilara los programas con soporte alsa y no con soporte oss.
Como hemos podido apreciar introduciendo el caracter "-" delante de la opcion, hacemos lo contrario, es decir, le decimos que no tenga esa opción. Esto es muy usado por ejemplo por los amante de gnome que no quieren tener librerias de kde puesto que no las van a usar y son de gran tamaño ponen la opcion "-kde".
Acontinuación voy a poner un conjunto de USE. No estaran todos pero si los mas usados:
->dvdr y cdr para poder grabar dvd y cdrom respectivamente
->vcd,dvd para reproducir peliculas para video cd o video dvd
->mmx, sse y 3dnow son para optimizacion para usar estas instrucciones, causaban bastantes fallos(Especialmente mmx)
->x,opengl,dga para el motor de las X(entorno grafico), si tienes tarjeta 3dfx inclullelo tambien
->xv,fbcon, directfbi,gpm para consola(framebuffer,raton, peliculas y demas)
->oss o arts o alsa para el sonido dependiendo de tu "eleccion de sonido"
->gphoto2 por si tienes camara digital
->kde,qt y arts por si usas kde(si no lo vas a usar con un simple -kde desactivaras el soporte)
->gnome, gtk, bonobo, gbm gtkhtml por si usas gnome(si no lo vas a usar con un simple -gnome desactivaras el soporte)
->aalib,ncurses,sd1 y svga librerias graficas en consola(recomendado)
->gif,jpeg,png y tiffoporte formatos
->avi,mpeg,encode y quicktime librerias de video(si quieres ver vidios o codificar formatos multimedia)
->java,flash,perl,python,slang,guile,libg++ librerias de programacion(permite el soporte a ciertos lenguajes dep rogramacion)
->pam,ssl,crypt seguridad(directamente ya tardas en ponerla
->spell,truetype,pdflib,tetex para fuentes correcion ortografica etc...
->nls soporte para mas de un idioma
->samba soporte para samba(para windows)
->tcpd,pam,ssl directivas de seguridad(obligado)
Ahora elijiremos la plataforma de nuestro sistema gentoo, es decir:
->i386 #Para los 386
->i486 #Para los 486
->i586 #Para los Pentium o derivados
->i686 #Para pentium Pro en adelante(Pentium 2,3,4, K6, K6-2, K6-3, K7 etc...).
->PowerPC #Para los MAC
CHOST="i386-pc-linux-gnu"
CHOST="i486-pc-linux-gnu"
CHOST="i586-pc-linux-gnu"
CHOST="i686-pc-linux-gnu"
CHOST="powerpc-unknown-linux-gnu"
Entonces vienen los Flags de compilación, con lo que obtendremos un pequeño aumento de velocidad, existen 2 variables CFLAGS y CXXFLAGS, los flags usados para estos dos son iguales por lo que con ponerlo en uno bastara.
Aqui teneis una lista de Flags para cada tipo de procesadores, esta lista no es de las mas optimizadas que ahi, pero estar seguros que no os dara ningun tipo de problema:
386 (Intel)
CFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
i486 (Intel)
CFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
Pentium 1 (Intel)
CFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
Pentium MMX (Intel)
CFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
Pentium PRO (Intel)
CFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
Pentium II (Intel)
CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
Celeron (Mendocino)
CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
Pentium III (Intel)
CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
Celeron (Coppermine)
CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
P4A o P4Celeron(Willamette)
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
Pentium 4 (Intel)
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
Eden C3/Ezra (Via)
CFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer"
K6 (AMD)
CFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
K6-2 (AMD)
CFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
K6-3 (AMD)
CFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
Athlon(AMD)
CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
Athlon-tbird
CFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
Athlon XP (AMD)
CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
Athlon MP (AMD)
CFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"
603/604 (PowerPC)
CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
750/G3 (PowerPC)
CFLAGS="-mcpu=750 -O3 -pipe -fomit-frame-pointer -fsigned-char"
CXXFLAGS="-mcpu=750 -O3 -pipe -fomit-frame-pointer -fsigned-char"
7400/G4 (PowerPC)
CFLAGS="-mcpu=7400 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec"
CXXFLAGS="-mcpu=7400 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec"
Al fichero make.conf se le puede añadir tambien un conjunto de variables, que estan relacionadas con el portage de gentoo:
->Acepta paquetes de la rama inestable, si no se quiere con comentar la linia sobra(comentar es poner # delante del texto):
ACCEPT_KEYWORDS="x86"
->Directorio Temporal del Portage, /var/tmp es el predeterminado:
PORTAGE_TMPDIR=/var/tmp
->Directorio del Portage, /usr/portage es el predeterminado:
PORTDIR=/usr/portage
->Directorio de descarga de los paquetes del portage, es decir donde descargamos las fuentes de los programas:
DISTDIR=${PORTDIR}/distfiles
->Binarios compilados para nuestra maquina, es decir, donde almacenamos los binarios que hemos compilado:
PKGDIR=${PORTDIR}/packages
->Limpieza de paquetes viejos del portage, recomendado poner yes:
AUTOCLEAN="yes"
Un ejemplo de fichero /etc/make.conf para un athlon XP(es mi fichero de configuración) seria el siguiente:
USE="dvdr vcd dvd cdr x opengl xv fbcon directfb gpm gphoto2 alsa kde qt gtk aalib ncurses sd1 -svga gif jpeg png tiff avi mpeg quicktime encode flash python perl libg++ pam ssl crypt mozillai spell truetype pdflib tetex nls samba -arts mmx tcpd pam ssl"
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -m3dnow -msse -mfpmath=sse -mmmx -O3 -pipe -fforce-addr -fomit-frame-pointer -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4 -maccumulate-outgoing-args -ffast-math -fprefetch-loop-arrays"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="x86"
PORTAGE_TMPDIR=/var/tmp
PORTDIR=/usr/portage
DISTDIR=${PORTDIR}/distfiles
PKGDIR=${PORTDIR}/packages
AUTOCLEAN="yes"
11ºStage 2:
Actualizamos la lista de paquetes de nuestro portage, en nuestro caso como es la primera vez, la generamos nueva:
emerge sync
Vamos al directorio del portage y ejecutamos el script bootstrap el cual tiene una lista de los programas basicos que componene el stage 2:
cd /usr/portage
scripts/bootstrap.sh
Nota: vete a darte una vuelta... que va pa rato
12ºStage3:
Acontinuación instalaremos los programas basico y terminaremos con la instalación basica de gentoo!:
emerge system
Es algo mas rapido que el stage2 pero tampoco excesivamente mas... asi que...
Establecemos la hora de nuestra gentoo de la siguiente forma: ln -sf /usr/share/zoneinfo/path/to/timezoneinfo /etc/localtime, para los españoles seria asi:
ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime
Y por ultimo introduciremos nuestro password de root, aqui poner importancia enque sea un password o clave que este compuesto tanto por mayusculas como minusculas, asi como con numeros y con signos, notar que gentoo usa MD5/FreeBSD lo que es un gran abance frente al obsoleto DES. Un pequeño truco es escribir una frase que nos acordemos y cambiar las vocales por numeros, siendo a-> 4, e->3, i->1,o->0 u->w y la primera letra y ultima de una palabra, si no es un numero o "una vocal cambiada" con el truco anteriormente citado, ponerla en mayusculas y las demas letras en minusculas. Por ejemplo:
-> mi camion es grande
-> m1 c4m10n 3s gr4nd3 *No se puede dejar espacios en blanco
-> m1-c4m10n-3s-gr4nd3
-> M1-C4m10N-3S-Gr4nd3
Como veis de una frase tonta obtenemos una contraseña de cierta dificultad para ser descifrada, para mas informacion recomendaria una buena guia de seguridad. El comando para cambiar el password seria este:
passwd
13ºCompilación de nuestro kernel:
Gentoo dispone de tanto kernels 2.4.2X, como kernels 2.6.X, asi como pequeñas kernels donde se han cogido al kernel vanilla(kernel basico sin ningun tipo de modificación) y se le ha añadido un conjunto de parches. En principio estos kernels funcionana mejor puesto que son iguales que al tradicional y aparte le han añadido varios parches que nos pueden ser utiles como el bootsplash. El problema que tienen es que los kernel gentoo suelen ir unas revisiones de versiones o una version como mucho por detras de los oficiales, es decir si el oficial es el 2.6.6 puede darse que el gentoo sea el 2.6.5.rc3
2.6 de gentoo -> sys-kernel/gentoo-dev-sources
2.4 de gentoo -> sys-kernel/vanilla-sources
2.6 basico -> sys-kernel/development-sources
2.4 basico -> sys-kernel/vanilla-sources
Ahora introducimos el que mas nos guste, yo recomiendo el 2.6 el que queramos, por ejemplo el de gentoo:
emerge gentoo-dev-sources
Gentoo dispone de una utilidad que se encarga de configurarnos el kernel de muy buena forma, y se encarga de realizar todos los pasos para ello. Esta herramienta se llama sys-kernel/genkernel, y para instalarla sobra con poner:
emerge genkernel
En mi caso no la usare ya que, la use una vez, y me dio mucho quebrarero de cabeza puesto que me metia modulos donde no debia y me modifico varias cosas. Yo soy muy raro para mis configuraciones y si las cosas no estan donde deben de estar me pongo nervioso. Pero si sois iniciados y no quereis poneros a tocar kernel es una buena opción usarlo.
Pero por si lo contrario nos disponemos a comenzar la configuracion y compilación del kernel deberemos de hacer los siguientes pasos, una vez emergido el kernel.
Accedemos al directorio donde se suele encontrar las fuentes del kernel(/usr/src) en el cual tendremos o deberemos de crear un link o enlace dinamico("acceso directo" de los windows) de las sources del kernel que estemos usando, en nuestro caso, al ser recien instalado solo tendremos un directorio.
ls /usr/src
linux-2.6.5-gentoo-r1
ln -s /usr/src/linux-2.6.5-gentoo-r1 /usr/src/linux (si tubieramos el enlace no haria falta este paso)
cd /usr/src/linux
Como vemos en mi caso tenemos el kernel de gentoo 2.6.5.rc1 pero no teniamos el link por lo que lo hemos creado. Acontinuación eligiremos el mejor menu para configurar nuestro kernel. Existen 3º tipos, el mas simple es el config, el siguiente es menuconfig el cual usa las ncurses y es muy facil de usar(recomiendo este) y por ultimo el xconfig que se usa en las X(motor de los entornos graficos de linux), con la version 2.6 ha sufrido una mejora visual y facilidad. Al tener gentoo recien instalado no disponemos todabia de las X por lo que la mejor opcion seria el menuconfig.
make config
o
make menuconfig
o
make xconfig
Ahora viene la parte mas dificil o compleja del kernel que es la configuración de este. Voy a poner unas opciones basicas para un usuario medio, nada especifico, si alguien quiere algo mas especifico que se lea cualquier manual que ahi del kernel. No es prioridad en la instalación de Linux Gentoo la configuración de un kernel y acordaros que existe el genkernel para no tener que entrar aqui.
Pondre unicamente las opciones escogidas. Puede que existen opciones que no esten correctamente, espero mejorarlo mas adelante. Puede ocurrir que tengais opciones identicas ya que, esto evoluciona, el kernel usado para el ejemplo es el 2.5.6 rc1 gentoo-dev-source:
Code maturity level options --->
[] Prompt for development and/or incomplete code/drivers
[*] Select only drivers expected to compile cleanly
[] Select only drivers that don't need compile-time external firmware
General setup --->
[*] Support for paging of anonymous memory (swap)
[] System V IPC
[*] Sysctl support
[] Support for hot-pluggable devices
[*] Kernel .config support
[] Enable access to .config through /proc/config.gz
Loadable module support --->
[*] Enable loadable module support
[] Module unloading
[*] Forced module unloading
[] Automatic kernel module loading
Processor type and features --->
Subarchitecture Type (PC-compatible) --->
(X) PC-compatible
Processor family (Athlon/Duron/K7) ---> (Escoger el vuestro en mi caso es un AMD XP-M por eso escogi esa opción).
[*] Generic x86 support
[ ] Symmetric multi-processing support (Seleccionar esta opción si disponemos de mas de 1 procesador).
[] Local APIC support on uniprocessors (Si tenemos mas de un procesador no seleccionarla)
[*] Machine Check Exception
<> Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4
[ ] check for P4 thermal throttling interrupt (Si tenemos un P4 escogerlo)
<> /dev/cpu/microcode - Intel IA32 CPU microcode support
High Memory Support (4G --->
( ) off (Seleccionar esta opcion si disponemos de menos de 1GB de memoria ram)
(X) 4GB (Seleccionar esta opcion si disponemos de 1GB a 4GB de memoria ram)
[] MTRR (Memory Type Range Register) support
Power management options (ACPI, APM) --->
[*] Power Management support
ACPI (Advanced Configuration and Power Interface) Support --->
[] ACPI Support
[*] Sleep States (EXPERIMENTAL)
<> AC Adapter
<> Battery
<> Button
<> Fan
<> Processor
<> Thermal Zone
APM (Advanced Power Management) BIOS Support --->
<> APM (Advanced Power Management) BIOS support
CPU Frequency scaling ---> (Si la estamos instalando en un portatil esta opcion es importantisima para la bateria)
[*] CPU Frequency scaling
<M> 'powersave' governor
<> 'userspace' governor for userspace frequency scaling
<> CPU frequency table helpers
<> ACPI Processor P-States drive
--- CPUFreq processor drivers
<> ACPI Processor P-States drive
(Aqui escogemos nuestro procesador mobile)
Bus options (PCI, PCMCIA, EISA, MCA, ISA)
[] PCI support
[*] Legacy /proc/pci interface
[] PCI device name database
[ ] ISA support (Si disponemos de tarjeta ISA(muy antiguas) o para la deteccion de algunos sensores de temperatura)
PCMCIA/CardBus support ---> (Si disponemos de PCMCIA dar un vistazo a esto)
Executable file formats --->
[*] Kernel support for ELF binaries
<> Kernel support for a.out and ECOFF binaries
<> Kernel support for MISC binaries
Device Drivers ---> (Esta zona es muy facil de entender, aqui esta donde dareis soporte a todo vuestro hardware...)
Parallel port support ---> (Entrar aqui si usar el puerto paralelo, el que antiguamente se usaba para impresora)
Block devices --->
<> Normal floppy disk support
<> Loopback device support
<> Cryptoloop Support
<> RAM disk support
(8192) Default RAM disk size
[] Initial RAM disk (initrd) support
[*] Support for Large Block Devices
ATA/ATAPI/MFM/RLL support ---> (A diferiencia del 2.4, no ahi que emular el ide como scsi para grabar)
<> ATA/ATAPI/MFM/RLL support
<> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
<> Include IDE/ATA-2 DISK support (Si disponemos de disco duro ide)
[*] Use multi-mode by default
<> Include IDE/ATAPI CDROM support (Si disponemos de cdrom/dvd ide)
[*] IDE Taskfile Access
[] IDE Taskfile IO (EXPERIMENTAL)
<> generic/default IDE chipset support
[] PCI IDE chipset support
[*] Generic PCI IDE Chipset Support
[] Generic PCI bus-master DMA support
[*] Use PCI DMA by default when available (Debajo de esta opcion ahi un gran numero de chipsets, selecciona el tuyo)
<> AMD and nVidia IDE support (Selecciono el mio, ya que tengo una nvidia nforce2, vosotros seleccionar el vuestro)
< > Intel PIIXn chipsets support (Si teneis un chipset(northbridge) que de intel seleccionar esta opción
SCSI device support --->
--- SCSI device support
[*] legacy /proc/scsi/ support
<> SCSI disk support (Si tenemos un disco duro scsi o s-ata)
< > SCSI CDROM support (Si disponemos de un cdrom/dvd scsi)
<> SCSI generic support
SCSI low-level drivers --->
[] Serial ATA (SATA) support (Seleccionamos si tenemos s-ata, y debajo nuestra controladora s-ata)
<M> Silicon Image SATA support (Yo selecciono este porque mi controladora es esa, de una abit an7)
Multi-device support (RAID and LVM) ---> (Si queremos poner algun tipo de RAID esta es nuestra opción)
IEEE 1394 (FireWire) support ---> (Si disponemos de un firewire)
<> IEEE 1394 (FireWire) support
<M> OHCI-1394 support (Por lo general sera este vuestro modulo firewire)
Networking support --->
[] Networking support
Networking options --->
<> Packet socket
<> Unix domain sockets
[*] TCP/IP networking
[] IP: multicasting
[*] IP: advanced router
[] Network packet filtering (replaces ipchains) --->
--- Network packet filtering (replaces ipchains)
[*] Network packet filtering debugging
IP: Netfilter Configuration --->
<> Connection tracking (required for masq/NAT)
<M> IRC protocol support
<> IP tables support (required for filtering/masq/NAT)
<M> limit match support
<M> Packet type match support
<M> Connection state match support
<M> Packet filtering
<M> Full NAT
<M> MASQUERADE target support
<M> REDIRECT target support
[] NAT of local connections (READ HELP)
[*] Network device support
Ethernet (10 or 100Mbit) ---> (Si disponemos de tarjeta de red de 10 a 100mbit, las convencionales)
[] Ethernet (10 or 100Mbit)
<> Generic Media Independent Interface device support
[] EISA, VLB, PCI and on board controllers (Acontinuación seleccionamos nuestra tarjeta de red)
<M> Reverse Engineered nForce Ethernet support (EXPERIMENTAL) (Esta es la integrada en placa)
<M> RealTek RTL-8139 PCI Fast Ethernet Adapter support (Y esta es la PCI)
Ethernet (1000 Mbit) ---> (Para tarjetas de red Gigalan, entramos y elegimos la nuestra)
Input device support --->
(1280) Horizontal screen resolution (En mi caso es la resolucion que tengo, 1280x1024 si la vuestra es otra cambiarla)
(1024) Vertical screen resolution
[*] Mice
<> PS/2 mouse
Character devices --->
[*] Legacy (BSD) PTY support
(256) Maximum number of legacy PTY in use
<> Intel/AMD/VIA HW Random Number Generator support
<> /dev/nvram support
<> Enhanced Real Time Clock Support
<> /dev/agpgart (AGP Support) (Acontinuacion salen un conjunto de controladoras agp, seleccionamos la nuestra)
<> NVIDIA nForce/nForce2 chipset support (Esta es la mia )
[ ] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) (Si teneis una tarjeta mencionada acontinuacion seleccionar esta opcion)
Multimedia devices --->
Video For Linux ---> (Seleccionar el chipset de vuestra tarjeta de TV)
<M> BT848 Video For Linux
Graphics support ---> (Para Frame Buffer)
[*] Support for frame buffer devices
<> VGA 16-color graphics support
[*] VESA VGA graphics support (Si dispones de algunas de las tarejtas de abajo seleccionala)
<> Virtual Frame Buffer support (ONLY FOR TESTING!)
Console display driver support --->
--- VGA text console
[*] Video mode selection support
<> Framebuffer Console support
Logo configuration --->
[*] Bootup logo
[] Standard 16-color Linux logo
Graphics support ---> (Para Bootsplash, los gentoo-sources llevan ya el parche, si usastes el basico deberas parchearlo)
[*] Support for frame buffer devices
[] VESA VGA graphics support
Console display driver support --->
--- VGA text console
[*] Video mode selection support
<> Framebuffer Console support
Logo configuration --->
[*] Bootup logo
[] Standard 16-color Linux logo
Bootsplash configuration --->
[*] Bootup splash screen
Sound --->
<> Sound card support
Advanced Linux Sound Architecture --->
<> Advanced Linux Sound Architecture
<> Sequencer support
<> OSS Mixer API
<> OSS PCM (digital audio) API
[*] OSS Sequencer API
<M> RTC Timer support
PCI devices ---> (Aqui seleccionamos nuestra tarjeta de sonido)
<M> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111 (esta es la mia, una soundstorm)
USB support --->
<> Support for Host-side USB
[*] USB device filesystem
--- USB Host Controller Drivers
<M> EHCI HCD (USB 2.0) support (Soporte para USB 2.0)
<M> OHCI HCD support (Esta es mi controladora USB 1.0(nforce2), para ver la tuya # cat /proc/pci | grep US
< > UHCI HCD (most Intel and VIA) support (La mayoria de controladoras usb 1.0 usan esta)
<M> USB Printer support (Para impresoras US
<M> USB Mass Storage suppor (Para dispositivos de escritura lectura, como una camara digital)
[] Microtech/ZiO! CompactFlash/SmartMedia support (La mayoria de camaras digitales usan este dispositivo)
(Existen un monton mas de dispositivos USB, buscarlo en este punto y elegirlo como M)
File systems ---> (Si vemos algun formato que nos vayamos a usar seleccionarlo tambien)
<> Second extended fs support
<M> Ext3 journalling file system support (Si alguna de nuestras particiones es ext3 escogerla como * y no como M)
[] Ext3 extended attributes
<> Reiserfs support (Yo uso reiserfs, si vosotros no lo usais ponerla como M)
[] Stats in /proc/fs/reiserfs
<M> JFS filesystem support
<M> XFS filesystem support
<> ROM file system support
CD-ROM/DVD Filesystems --->
<> ISO 9660 CDROM file system support
[*] Microsoft Joliet CDROM extensions
[] Transparent decompression extension
<> UDF file system support
DOS/FAT/NT Filesystems --->
<M> DOS FAT fs support
<M> MSDOS fs support
<M> VFAT (Windows-95) fs support
<M> NTFS file system support
[] NTFS write support (Ojito con esta opción que las grabaciones en ntfs desde linux pueden dañar una partición)
Pseudo filesystems --->
[*] /proc file system support
[] /dev file system support (OBSOLETE)
[*] /dev/pts Extended Attributes
[] Virtual memory file system support (former shm fs)
<> Supermount removable media support
Network File Systems --->
<M> NFS file system support
<M> NFS server support
<M> SMB file system support (to mount Windows shares etc.)
Native Language Support --->
--- Base native language support
(iso8859-15) Default NLS Option (Apretando intro podemos poner la que nosotros creamos)
<> NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)
Cryptographic options --->
<M> MD5 digest algorithm
<> Deflate compression algorithm
Una vez compilado deberemos de guardar nuestra configuración en la opcion de: Save Configuration to an Alternate File, con el nombre que nosotros deseemos. Y acontinuación compilaremos el kernel y sus modulos, asi como copiaremos el kernel compilado en el directorio boot preparado para ser cargado.
make bzImage
make modules
make modules_install
cp arch/i386/boot/bzImage /boot
Acontinuacion tendriamos que editar el fichero /etc/modules.autoload y poner los modulos necesarios que queremos que se carguen en el arranque del SO. Notar que solo ahi que poner el nombre y no modprobe ni insmod:
vim /etc/modules.autoload
Un ejemplo de fichero modules.autoload seria este:
cat /etc/modules.autoload
usb-storage
nvidia
8139too
iptable_filter
iptable_mangle
iptable_nat
ip_conntrack_irc
ipt_limit
ipt_state
ip_nat_irc
Ahora deberiamos de cargar nuestro sistema de arranque. Existen principalmente 2º, LiLO y GRUB, en mi caso siempre he usado LILO por lo que usaremos este, puesto que me parece mas facil de entender. No os preocupeis si no habeis entendido muy bien lo que haces con el LILO puesto que en el siguiente punto se explica muy bien.
emerge lilo
lilo
Y por fin ya hemos terminado, veis como no es tanto como parece .
14ºLILO:
Lilo o linux loader es el encargado de gestionar el arranque del sistema operativo linux, ademas de soportar otros sistemas operativos. Lilo tiene su configuración en el ficher /etc/lilo.conf, tienes un fichero de ejemplo en el /etc/lilo.conf.example. Acontinuación expondre un ejemplo de fichero lilo.conf muy basico:
lba32 #Esto permite poder cargar kernel en discos duros de "gran tamaño"(gran numero de cilindros, los actuales).
boot = /dev/hda #Le decimos de que disco duro leeremos el mbr(master boot record), es decir, donde tenemos cargado el lilo
map =/boot/System.map #Establece la ubicación del fichero de mapeado(generado por lilo)
install = /boot/boot-menu.b #Instala el fichero especificado como nuevo sector de arranque.
menu-scheme=Wb #Local de entorno
prompt #Permite tener una especie de "mini shell" donde podemos introducir por comandos el "label" de la particion a cargar
delay=20 #Una vez cargado el lilo, espera 20 segundos, si no aprietas nada carga el kernel que tenga como default
timeout=150 #Tienes 150 segundos para elegir, si no eliges pasado 150 segundos arrancara el kernel default
default=gentoo2.6 #Aqui le indicamos que kernel queremos cargar como default
image=/boot/bzImage #Le indicamos donde esta el kernel que queremos cargar, este es el que compilamos nosotros
root=/dev/hda2 #Aqui le decimos cual es la partición root(/) de nuestra distribución
vga=normal #Aqui como queremos que arranque(800x600, 1024x768 y con que profundidad de color)
label=gentoo2.6 #Aqui le introducimos el nombre que nos aparecera a la hora de elegir el arranque, en nuestro caso gentoo2.6
read-only
image=/boot/rescue #Aqui tenemos como seria para meter un segundo kernel en nuestro sistema
root=/dev/hda2
vga=normal
label=Linuxrescue
read-only
other=/dev/hda1 #Si tubieramos otro sistema operativo que no fuera windows
label=Ventanukos
table=/dev/hda
Los valores de vga pueden ser los siguientes:
->Normal VGA console
vga = normal
->VESA framebuffer console @ 1024x768
vga=791 a 64k / vga=790 a 32K / vga=773 a 256
->VESA framebuffer console @ 800x600
vga=788 a 64K / vga=787 a 32K / vga=771 a 256
->VESA framebuffer console @ 640x480
vga=785 a 64K / vga=784 a 32K / vga=769 a 256
Si tubieramos otro disco duro, y quisieramos que se arrancara con el lilo, unicamente deberiamos especificarle que particion sera la raiz, por ejemplo si nuestro disco duro fuera el hdb y la partición raiz fuera la hdb1 sera asi:
image=/boot/mikernel
root=/dev/hdb1
vga=normal
label=otrohd
read-only
Pero si la otra partición fuera de otro sistema operativo, como pudiera ser un windows deberiamos de añadir 2 opciones con lo que quedaria de la siguiente forma:
other=/dev/hda1
label=Ventanukos
table=/dev/hda
map-drive = 0x80
to = 0x81
Para cargar lilo en el mbr sobrara con llamar al programa(Recuerda que si no lo emergistes en la creación del kernel deberas de hacerlo ahora):
emerge lilo *(si no lo hicistes)
lilo
Y nos apareceran los nucleos cargados, asi como si cometemos algun tipo de error que produza que no arranque. Para mas información man lilo.
15ºRunlevels en Gentoo:
Los runlevels en gentoo siguen otro sistema distinto al acostumbrado con los linux tradicionales. Los runlevels en gentoo se dividen en:
-> boot #Programas que se cargan en el arranque seguido del kernel ej: alsa
-> default #Programas que se cargan una vez cargado el kernel y toda la distribucion, justo antes de proporcionarte una prompt de login. ej: apache
-> nonetwork #Programas que se cargan antes de la conexion a inet
-> single #Desconozco su uso Ò.Ó!
Se encuentran en /etc/runlevels. Los programas se cargan usando la siguiente sintaxis: rc-update add "programa" el_runlevel" siendo el_runllevel cualquiera de los 4 expuestos anteriormente y programa la implementación de programa que se encuentra en /etc/init.d/. Por ejemplo para el apache2:
rc-update add apache2 default
- apache2 added to runlevel default
- Caching service dependencies...
- rc-update complete.
Para eliminarlos pondremos unicamente: rc-update dell "programa", sin especificar el runlevel, puesto que el rc-update ya lo busca en los 4 posibles, un ejemplo con el apache2 seria:
rc-update del apache2
- apache2 removed from the following runlevels: default
- Caching service dependencies...
- rc-update complete.
Al cargarlos deben de tener una implementación en en /etc/init.d/. Si queremos cargar un fichero con un script de shell que no este implementado en el /etc/init.d deberemos de usar los ficheros local.start y local.stop que se encuentran en /etc/conf.d/
Para ver todos los posibles programas(Servicios) que tenemos arrancados, asi como los que disponemos pero no los tenemos asignados a ningun runlevel:
rc-status -a
Como habreis visto, cuando instalais un programa que necesita de los runlevels, para la ejecución de un demonio/servicio/etc se genera su pertinente implementación en el directorio /etc/init.d/ pero ademas existen unos pequeños scripts localizados en /etc/conf.d que deberian de ser usados, para por ejemplo el uso de iptables. A mi gusto esta es la zona donde gentoo peca mas de falta de "edad"(junto con el emerge).
Recordar que muchos de los programas que cargamos en los runlevels son demonios/servicios. Estos servicios se cargaran automaticamente al haber sido añadidos con el rc-update al runlevel. Si queremos pararlos, reiniciarlos o volverlos a arrancar una vez parados, un ejemplo seria con el ssh, apache, proftpd etc. se usa los siguientes comandos:
#/etc/init.d/servicio stop #Detiene la ejecución
#/etc/init.d/servicio start #Arranca de nuevo el demonio/servicio, si ya esta arrancado dara error
#/etc/init.d/servicio restart #Rearranca el servicio, es equivalente a hacer un stop y un start
16ºCreación de usuarios:
La creación de usuarios debe de ser obligatorio aunque solo usemos el ordenador una persona. El usurio ROOT solo debe de usarse cuando tengamos la necesidad de configurar/administrar nuestro sistema, puede parecer algo engorroso, pero os dareis cuenta que siendo usuarios normales si cometeis algun tipo de error, si no soys root, es deificil que dañeis el sistema, ademas que no siendo root evitais problemas como pudean ser: troytanos, gusanos,etc etc
Para la creación de ficheros podemos hacerlo a "mano" usando los comandos de:
adduser nombre_usuario
passwd nombre_usuario *Si aparece un mensage de este estilo BAD PASSWORD: it is based on a dictionary word, es que no usasteis un passwd fuerte
mkdir /home/nombre_usuario
Acontinuación debemos de comprobar si el usuario esta creado, y verificar que fue correctamente. Para ello editaremos el fichero /etc/passwd y verificaremos que el usuario sigue una estructura asi(se encontrara en la ultima linea): nombre_usuario1000:/home/nombre_usuario:/bin/bash (el valor 1000 es el identificador del usuario, puede ser 1000 o superior). En mi caso usare el editor vim:
vim /etc/passwd
Ahora deberemos de agregar el usuario a los grupos que nos interese añadir, es importante, remarcar que ahi un grupo en gentoo(y en otras distribuciones de linux/unix muy seguras) que tienen el grupo wheel el cual es necesario tener a nuestro usuario si queremos que sea capaz de usar el comando "su -" para tener acceso como root, sin tener que habrir una consola nueva. Los grupos que seria logico añadir al usuario serian: wheel, audio, cdrom, games, cdrw, usb. Para añadir usuarios seria: grupo:usuario1,usuario2,usuario3... un ejemplo: wheel::10:root,miusuario
vim /etc/group
Gentoo implementa un script fantastico para la edición facil y rapida de usuarios. Se llama superadduser. Yo os lo recomiendo puesto que os ahorrara tiempo. el script se encuentra en /usr/sbin/superadduser. Vamos a emergerlo:
emerge superadduser
Un ejemplo de uso sera el siguiente, recordar que al preguntarnos siempre aparece entre [ ] la opcion default y que con apretar "intro" sin introducir nada te toma la opción default si la tiene o simplemente no te introduce nada en esa opción. Un ejemplo es el siguiente:
superadduser
Login name for new user []: nombre
User ID ('UID') [ defaults to next available ]:
Initial group [ users ]:
Additional groups (comma separated) []: wheel,audio,cdrom,games,cdrw,usb
Home directory [ /home/nombre ]
Shell [ /bin/bash ]
Expiry date (YYYY-MM-DD) []:
New account will be created as follows:
Login name.......: nombre
UID..............: [ Next available ]
Initial group....: users
Additional groups: wheel,audio,cdrom,games,cdrw,usb
Home directory...: /home/nombre
Shell............: /bin/bash
Expiry date......: [ Never ]
This is it... if you want to bail out, hit Control-C. Otherwise, press
ENTER to go ahead and make the account.
Creating new account...
Changing the user information for nombre
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
New UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Account setup complete.
Como veis es bastante facilillo la creación de usuarios con este script.