02 Apunte Completo 102 PDF
02 Apunte Completo 102 PDF
02 Apunte Completo 102 PDF
(Tema 102)
En este capítulo hablaremos sobre los pasos a seguir y los puntos a tener en cuenta
antes de instalar Linux. También explicaremos cómo administrar el software instalado
y mostraremos cómo agregar nuevos programas cuando sea necesario.
Uno de los pasos previos más importantes al instalar Linux y en preparación para su
uso consiste en crear particiones y sistemas de archivos. Una partición es una división
lógica que se hace a un dispositivo de almacenamiento con el propósito de definir un
espacio determinado para un uso en particular. Por otro lado, un sistema de archivos
puede definirse (en este contexto) como la forma en que se estructurarán los
contenidos (archivos y directorios) de dicha partición.
Diseño de particiones
Teniendo en cuenta el uso que se le vaya a dar al sistema, nunca debemos permitir
que la partición asociada con / se llene, debido a que eso ocasionaría errores en el
funcionamiento de los servicios e incluso podría llegar a inhabilitar al usuario root
para iniciar sesión. Teniendo esto en cuenta, veamos qué consideraciones debemos
tener en cuenta para la creación y la asignación de espacio de cada partición:
1. El directorio /etc siempre debe debe estar dentro de la partición destinada al
directorio raíz. Dicho de otro modo, no se le debe asignar una partición dedicada.
2. Como regla general se prefiere utilizar particiones separadas para /home, /var, y
/tmp. Hay que tener en cuenta que el uso de estos directorios es un tanto difícil
de estimar en un principio.
6. La partición destinada a /boot debe poder ser accedida desde el principio del
proceso de arranque, por lo que no debemos alojarla en una unidad de red
(preferentemente tampoco en una unidad extraíble).
Sistemas de archivos
Los sistemas de archivos más utilizados hoy en día son ext4 y xfs. Veamos algunas
características de ambos:
ext4 (tomado de la documentación oficial):
• Tamaño máximo de sistema de archivos (generalmente se extiende a toda la
partición): 1 EiB = 1024 PB (1 PiB = 1024 TiB, 1 TiB = 1024 GiB)
xfs:
• Tamaño máximo de sistema de archivos (generalmente se extiende a toda la
partición): 8 EiB en sistemas operativos de 64 bits y de 16 TiB en 32 bits.
• Journaling
Cabe aclarar que el estándar GPT permite crear hasta 128 particiones primarias en un
mismo disco, y permite alcanzar tamaños de particiones no soportados por MBR (el
cual soporta hasta 2 TB y hasta 4 particiones primarias – si se necesitan más
particiones se puede reemplazar una de las primarias por una extendida que pueda
dividirse en múltiples particiones lógicas).
Para crear una partición con fdisk, utilizamos el comando del mismo nombre seguido
por el identificador de dispositivo en cuestión. Por ejemplo, para /dev/sdb:
fdisk /dev/sdb
En la pantalla siguiente podemos presionar la tecla m para ver el menú de ayuda como
se muestra en la imagen (por limitaciones de espacio no se alcanzan a apreciar todas
las opciones disponibles):
Las operaciones más usuales que podemos llevar a cabo a partir de este momento son
las siguientes:
• m: mostrar el menú de ayuda
Por ejemplo:
En la imagen anterior vemos cómo crear una partición de 2,5 GB que recibió la
identificación /dev/sdb1. Luego de guardar el cambio volvimos a la línea de
comandos y con
fdisk -l /dev/sdb
Entre las muchas opciones de las que disponemos, -L en particular nos será de gran
utilidad para asignarle una etiqueta al sistema de archivos, mediante la cual podremos
identificarlo más fácilmente a la hora de montarlo y disponerlo finalmente para su uso
(tema que trataremos en el próximo post).
Para crear un sistema de archivos del tipo ext4 en /dev/sdb1 y asignarle la etiqueta
ALUMNO (el límite es de 16 caracteres) utilizaremos el siguiente comando:
mkfs.ext4 -L ALUMNO /dev/sdb1
Por otro lado, el redimensionado de los volúmenes lógicos bajo LVM se puede realizar
sin interrumpir el funcionamiento normal del equipo. Además, el procedimiento es
mucho más rápido que en el particionado tradicional. Los cambios quedan disponibles
a los usuarios inmediatamente sin necesidad de reiniciar ningún servicio.
• Mediante la directiva set root (recuadro rojo con flecha apuntando hacia la
derecha) se le indica a GRUB dónde buscar el archivo grub.cfg. En este caso se
trata del primer disco (hd0). Más específicamente, en la primera partición bajo el
esquema de particionado tradicional (msdos1).
Si el sistema no inicia correctamente, podemos usar la shell de GRUB para realizar un
diagnóstico preliminar. Accedemos a la misma presionando la tecla c desde el menú
principal que mencionamos antes. Esta herramienta admite el uso de varios comandos
aceptados por Bash u otras shells.
Configuración de GRUB
En el archivo /etc/default/grub se indican las directivas de configuración de GRUB,
tales como el sistema operativo o kernel que se debe utilizar por defecto en el
arranque del sistema (GRUB_DEFAULT) o el tiempo (en segundos) que se debe
esperar antes de iniciar el inicio (GRUB_TIMEOUT), por nombrar dos ejemplos:
El resto de las opciones están disponibles en la documentación de
GRUB2.
Para aplicar los cambios que se hayan hecho en la configuración de GRUB utilizaremos
el comando grub-mkconfig (el nombre puede también ser grub2-mkconfig) pero
antes es una buena idea hacer una copia de la configuración original en el caso de que
necesitemos restaurarla:
cp /boot/grub/grub.cfg /boot/grub/grub.cfg.original
grub-mkconfig > /boot/grub/grub.cfg
Librerías compartidas
Una librería es un conjunto de funciones incluidas en un mismo archivo. Dichas
funciones por lo general son utilizadas por una variedad de programas que, en vez de
incorporarlas en su propio código (enlace estático), las llaman cuando es necesario
(enlace dinámico). Esto, por supuesto, requiere que dichas librerías existan en el
sistema previo al lanzamiento del programa. La ventaja reside en que en este último
caso solamente es necesario una copia de la librería, la cual es compartida por todas
las aplicaciones que la necesitan. El enlace estático, en cambio, requiere que cada
programa disponga de su propia copia y la incluya como parte del programa en sí.
Para asegurar que los enlaces a las librerías se mantienen actualizados y en caché se
llama un programa llamado ldconfig como parte de la instalación de estas. Por lo
general no es necesario ejecutarlo manualmente a menos que hayamos hecho cambios
en el archivo /etc/ld.so.conf, que es donde se puede especificar la clase de ciertas
librerías si estas no contienen información suficiente para deducir esa información.
También podemos utilizar este archivo para indicar la ubicación de las librerías
necesarias para una aplicación en particular.
De esta manera es posible identificar las librerías compartidas que un archivo binario
ejecutable necesita para poder funcionar. Si por alguna razón no se encuentran
disponibles, podremos instalarlas como aprenderemos a continuación.
• Finalmente, tenemos la lista de componentes del repositorio (no hacen falta que
figuren los tres necesariamente):
Para asegurarnos de que nuestro sistema puede ver la lista completa y actualizada de
paquetes disponibles en los repositorios debemos sincronizar el índice local con los
mismos. En Debian y derivados lo hacemos mediante apt-get update, mientras que
en CentOS o similares utilizamos yum makecache fast.
En el próximo apartado explicaremos el próximo paso necesario a seguir antes de
efectuar la instalación propiamente dicha de un paquete proveniente de un
repositorio de terceros.
Otras dos opciones muy útiles son --info y --contents. La primera nos permitirá ver
la información sobre el paquete en cuestión, mientras que la segunda nos mostrará el
contenido de este:
dpkg --info mipaquete
dpkg --contents mipaquete
De forma similar a --contents, podemos emplear --listfiles para ver los archivos
que se agregaron al sistema al instalar un paquete (sea que lo hayamos hecho
mediante dpkg o apt-get, como veremos a continuación).
Para asegurarnos de que un programa se instale con todas las dependencias
necesarias podemos utilizar el gestor de paquetes apt-get en vez de dpkg. La
herramienta asociada apt-cache también nos resultará útil para buscar programas en
los repositorios y para ver información detallada sobre alguno que haya captado
nuestra atención. Ambas utilidades (junto con otras) forman parte de APT (Advanced
Packaging Tool) que es el sistema de gestión de paquetes principal de Debian.
Luego de haber agregado repositorios en /etc/apt/sources.list o en algún archivo
dentro de /etc/apt/sources.list.d, sincronicemos la lista de paquetes disponibles con
los repositorios de Debian:
apt-get update
El último de ellos no solamente eliminará mipaquete del sistema sino que también
hará lo mismo con cualquier archivo de configuración relacionado con el programa en
cuestión.
Para actualizar un paquete a la última versión disponible usaremos
apt-get upgrade mipaquete
Reconfigurar paquetes
Es importante notar que durante el curso de una instalación por lo general se nos
ofrece la posibilidad de configurar el programa en cuestión. Si no lo hacemos en ese
momento, también podemos hacerlo posteriormente utilizando la herramienta dpkg-
reconfigure.
CentOS y similares
RPM (Red Hat Package Manager) es el gestor de paquetes utilizado por defecto en
Red Hat Enterprise Linux como en SuSE (y distribuciones derivadas como CentOS,
Fedora, u OpenSUSE). Fue desarrollado por Red Hat y luego adoptado por otras
distribuciones. Podemos decir que consta de 2 componentes fundamentales: 1) el
comando rpm, y 2) una base de datos local. Esta última contiene la lista de paquetes
instalados e información sobre estos y se encuentra dentro del directorio
/var/lib/rpm.
Para empezar, tomemos como ejemplo a bc-1.06.95-13.el7.x86_64.rpm. Podemos
descargar el mismo desde el listado de paquetes disponibles para CentOS 7. En el
nombre del archivo podemos encontrar a primera vista los siguientes datos:
• El nombre del paquete: bc
• La versión: 1.06-95-13.el7
• La arquitectura: x86_64
Por lo general, la instalación se realiza con las opciones combinadas -Uvh o -Fvh en
vez del simple -i (o su equivalente --install, también válidos). De las dos
alternativas anteriores, la primera instala o actualiza (según sea el caso), mientras que
la segunda solamente instalará el paquete y no realizará ninguna acción si ya existe
una versión previa del mismo. Para nuestra conveniencia, -v muestra el nombre del
paquete durante la instalación y -h imprime una serie de #’s para indicar el progreso
de la instalación. Ambas son útiles en particular si estamos instalando varios paquetes
a la vez.
Otras opciones útiles del comando rpm que no pueden faltar en nuestro arsenal son
(siempre seguidas de -q, de query):
• -a: muestra la lista de todos los paquetes instalados.
• -ip: ver información detallada sobre un archivo .rpm que no ha sido instalado.
• -f: devuelve el nombre del paquete que contiene el archivo que se especifica a
continuación.
• Vemos las dependencias del paquete tuxpaint mediante rpm -qRp tuxpaint-
0.9.22-1.x86_64.rpm
Para ver el contenido completo de un archivo .rpm utilizar los comandos rpm2cpio y
cpio de la siguiente manera:
rpm2cpio tuxpaint-0.9.22-1.x86_64.rpm | cpio -idv
A pesar de lo útil que es rpm, quizás la manera más práctica de instalar un programa
determinado (si es que se encuentra en los repositorios de nuestra distribución, o si la
versión disponible cumple con nuestras necesidades), es utilizar el gestor de paquetes
yum. El mismo contiene todas las utilidades necesarias para satisfacer las
dependencias requeridas y configurar el programa ya instalado (en síntesis, ¡nos
ahorra mucho trabajo!). Utilizando esta herramienta podemos:
• Buscar un paquete por palabra clave (mipaquete, por ejemplo): yum search
mipaquete
Debido a que centosplus contiene paquetes que son mejoras para los presentes en los
repositorios base y updates, es posible que queramos deshabilitarlo en ocasiones
para que no interfieran con estos últimos. Podemos hacerlo al editar el valor de la
directiva a enabled=0 antes de hacer yum update o bien indicar yum update --
disablerepo=centosplus. Lo mismo aplica si estuviera deshabilitado y quisiéramos
habilitarlo con yum update --enablerepo=centosplus.