Guía de resolución de problemas comunes en entornos de desarrollo Linux

Configuración de red y gestión de proxies

Al preparar una nueva estación de trabajo, el primer paso suele ser asegurar la conectividad. Si el acceso a internet requiere un servidor intermedio, puede verificar la conexión mediante el siguiente comando:

curl -x http://servidor_proxy:puerto http://www.google.com

Para establecer variables de entorno de proxy de forma persistente para el usuario actual, edite el archivo ~/.bashrc e incluya:

export http_proxy="http://mi_proxy:8080"
export https_proxy="http://mi_proxy:8080"
export ftp_proxy="http://mi_proxy:8080"
export no_proxy="localhost,127.0.0.1"

Si necesita que esta configuración sea global para todo el sistema (incluyendo servicios de fondo), debe modificar /etc/environment. Tenga en cuenta que .bashrc se aplica a sesiones interactivas, mientras que /etc/environment afecta a todo el ecosistema del sistema operativo tras un reinicio.

Gestión de la configuración del Kernel

La forma recomendada de alterar los parámetros del kernel es mediante la interfaz visual de make menuconfig. Al presionar la tecla /, puede buscar símbolos específicos como CONFIG_DEBUG_INFO para conocer su ubicación exacta en el árbol de dependencias.

Evite editar directamente el archivo .config, ya que las dependnecias cruzadas pueden causar que sus cambios se sobrescriban o ignoren durante el proceso de compilación.

Administración de la interfaz gráfica en Ubuntu

Si tras un reinicio el sistema solo muestra la terminal (TTY), puede intentar reinstalar el entorno de escritorio:

sudo apt-get install --reinstall ubuntu-desktop

Para alternar el modo de inicio predeterminado entre la terminal pura y el entorno gráfico, utilice systemctl:

  • Modo texto: sudo systemctl set-default multi-user.target
  • Modo gráfico: sudo systemctl set-default graphical.target

Sincronización de reloj del sistema y hardware

En Linux, el comando date solo modifica el reloj de software. Para asegurar que la hora persista tras un reinicio, es necesario sincronizarla con el RTC (Real Time Clock) del hardware:

# Ajustar fecha (Mes, Día, Hora, Minuto)
sudo date 10251430
# Sincronizar hardware con el sistema
sudo hwclock --systohc

Un desfase significativo en el tiempo del sistema puede provocar errores de validación en los archivos "Release" al ejecutar apt update.

Operaciones eficientes con archivos y texto

Para depurar archivos de configuración eliminando líneas que contengan una palabra clave específica:

grep -v "patron_a_eliminar" entrada.txt > salida_limpia.txt

Si trabaja con archivos creados en Windows, puede convertir los finales de línea \r\n a \n de forma masiva en un directorio:

find ./proyectos -type f -exec dos2unix {} +

Gestión de versiones del Kernel y arranque

Si el menú GRUB muestra demasiadas opciones de arranque, puede listar e identificar los kernels instalados para eliminar versiones antiguas:

dpkg --list | grep linux-image
sudo apt-get purge linux-image-X.X.X-generic

En caso de que el sistema entre en Emergency Mode, verifique el archivo /etc/fstab. A menudo, un error en la sintaxis de montaje o un dispositivo inexistente (como un CD-ROM listado para automontaje) impide el arranque normal.

Depuración avanzada y registros del Kernel

Si los registros del kernel (dmesg) se cortan debido al límite de tasa de impresión, puede desactivar esta restricción:

echo 0 > /proc/sys/kernel/printk_ratelimit
echo 0 > /proc/sys/kernel/printk_ratelimit_burst

Para incluir información de depuración en un binario vmlinux, asegúrese de tener activas las siguientes opciones en su configuración:

CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y

Optiimzación de memoria mediante archivos Swap

Si el proceso de compilación falla por falta de memoria (Out of Memory), puede crear rápidamente un archivo de intercambio temporal:

# Crear un archivo de 4GB
sudo fallocate -l 4G /archivo_swap
sudo chmod 600 /archivo_swap
sudo mkswap /archivo_swap
sudo swapon /archivo_swap

Contenedores y servicios remotos

Para renombrar un contenedor Docker existente y mejorar la organización de sus servicios:

docker rename instancia_antigua nuevo_nombre_servicio

Si al conectar por SSH intenta ejecutar una aplicación gráfica y recibe el error x11 proxy: unsupported authorization protocol, asegúrese de habilitar el reenvío de X11 en su conexión:

ssh -X usuario@servidor_remoto

Etiquetas: linux Ubuntu bash Kernel Docker

Publicado el 10-12 00:15