Tag: Linux

Solucionar error en Docker para Centos8: client version 1.40 is too new

Llevo usando Centos 8 hace varios meses para hacer laboratorios y pruebas, estaba armando un Dockerfile y cuando quise probarlo encontré este mensaje de error:

Docker: “Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39”

Lo curioso era que si podía levantar contenedores, el problema radica cuando invocas cualquier comando que quiera comunicarse con el daemon de docker, me puse a investigar y encontré el problema:
This is known issue with docker client 19.03.09. It happens if the daemon version supports only max api-version 1.39. Client is not downgrading the API version to match the server supported version automatically. It should be fixed in 19.03.10.
https://github.com/docker/cli/issues/2533

Tal y como refieren en el issue hay un problema conocido y se puede solucionar de 2 maneras, la forma rápida es exportar una variable de entorno especificando la version de API que quieres usar

export DOCKER_API_VERSION=1.39

Pero yo prefiero la solución permanente que es hacer el upgrade y asi no tengo que lanzar esa variable de entorno cada vez que quiera usar el daemon o meter una línea más en mi .bashrc

En centos uso el repo oficial de docker, pero al querer hacer el update encontré este error

[root@behemoth ~]# yum update
Last metadata expiration check: 0:00:07 ago on Sat 11 Jul 2020 12:35:05 PM -05.
Error:
 Problem: package docker-ce-3:19.03.12-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
  - cannot install the best update candidate for package docker-ce-3:18.09.1-3.el7.x86_64
  - package containerd.io-1.2.10-3.2.el7.x86_64 is filtered out by modular filtering

Tenía que hacer upgrade al paquete containerd pero la versión que necesito no esta disponible a traves del repo, asi que busqué y encontré el rpm que necesitaba, para instalarlo ejecutan

yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

Y luego de eso ya podrán hacer el upgrade de la versión de Docker sin problemas

# yum update
Last metadata expiration check: 0:02:13 ago on Sat 11 Jul 2020 12:35:05 PM -05.
Dependencies resolved.
=============================================================================
 Package          Arch      Version                Repository           Size
=============================================================================
Upgrading:
 docker-ce        x86_64    3:19.03.12-3.el7       docker-ce-stable     24 M
 docker-ce-cli    x86_64    1:19.03.12-3.el7       docker-ce-stable     38 M

Transaction Summary
=============================================================================
Upgrade  2 Packages

Total download size: 62 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): docker-ce-19.03.12-3.el7.x86_64.rpm   1.3 MB/s |  24 MB     00:17
(2/2): docker-ce-cli-19.03.12-3.el7.x86_64.r 1.7 MB/s |  38 MB     00:21

Espero les resulte útil

tput para mejorar tus scripts en bash

bash
Cuando escribes scripts en bash acostumbras a hacerlo todo simple, sin embargo hay ocasiones en las cuales quieres tener un mayor control de la salida del programa. Una de las herramientas que sirve para este propósito es tput que viene por defecto instalado con ncurses, en muchas distribuciones ncurses viene instalado por defecto, asi que no debería ser problema.

La idea de usar tput es poder controlar de una forma sencilla distintos aspectos de tu terminal y hacer algunas cosas divertidas como dar formato y poner texto en negritas o de colores por citar un ejemplo, a continuación daré una lista de usos para tput que para mí resultaron especialmente útiles.

Limpiar pantalla
# tput clear
ejemplo:

echo "Este mensaje no lo veras"; tput clear; echo "Este mensaje si lo veras"

Para saber el número total de líneas que tiene tu consola actual
# tput lines

Para sabe el número total de columnas
# tput cols

Mover el cursor a una posición específica
# tput cup 15 20

Para poner un mensaje en negrita
# tput bold
ejemplo:

tput bold; echo "mensaje en negrita"

Para saber cuántos colores soporta tu consola usamos
# tput colors

Usar colores para el texto y el fondo, este me gusta bastante porque te evita tener que usar secuencias de escape ANSI.
Para poner texto de color rojo usamos
# tput setaf 1

Para poner background de color verde usamos
# tput setab 2

Les dejo 2 scripts para que vean la lista de colores básicos 🙂

for i in `seq 1 7`; do tput setaf $i; echo "Este es el color $i"; done
for i in `seq 1 7`; do tput setab $i; echo "Este es el color $i"; done

Si quieres usar más colores entonces vas a tener que especificarlo ejecutando

export TERM=xterm-256color ; reset

Si vuelves a ejecutar tput verás que ahora ya tienes soporte para 256 colores
# tput colors

Hint: cambia el script que puse arriba y en vez de 7 ponle 255 para que tengas toda la lista de colores

Si quieren ocultar el cursor pueden ejecutar
# tput civis

Para volver el cursor a su estado normal
# tput cnorm

AHora veremos unas funciones de formato, si por algún motivo quieren quitar el formato
# tput sgr0

Un reseteo general de toda la consola se hace con reset
# tput reset

Para subrayar texto
# tput smul

Para quitar subrayado
# tput rmul
ejemplo

tput smul; echo "texto subrayado"; tput rmul

Para hacer que el texto tintilee (blink)
# tput blink
ejemplo

tput blink; echo "blink blink blink"

No se olviden de # tput sgr0 para quitar el blink

Finalmente les dejo el enlace con algunos scripts de ejemplo hechos en bash

https://github.com/cvillegas/bash

Espero que les sea de utilidad 🙂

Howto: Como cambiar el timezone en RedHat/Centos/Fedora Linux

Los 2 métodos mas comunes son:

a) Usando la herramienta system-config-date
Lo cual te obliga a instalar una serie de dependencias que finalmente no tienen mayor utilidad en tu servidor

b) Editando manualmente la configuración
– Entra como root al sistema
– Edita el contenido del archivo /etc/sysconfig/clock
por ejemplo en mi caso los valores correctos serí­an

America/Lima
UTC=False

Recuerden que UTC y GMT son lo mismo, asi que a menos que quieran sincronizar con el Meridiano de Greenwich deberí­an tener este valor en False.
– Ahora hacemos que nuestro sistema identifique nuestro timezone de forma correcta

/usr/sbin/tzdata-update

– Actualizar la hora en el sistema con el comando
lo puede hacer manualmente con date o mucho mejor aún con ntp

/usr/sbin/ntpdate -b clock.redhat.com

Obvio que pueden cambiar clock.redhat.com por el servidor ntp de su preferencia 🙂

Espero les sea útil.

10 aniversario de Gentoo Linux

Revisando el blog de Daniel Robbins (el creador de Gentoo) me entero que mi distribución favorita tiene 10 años de existencia!! Precisamente Daniel hace una recopilación de los eventos ocurridos en el nacimiento de esta distribución para tratar de encontrar el momento exacto en que deberí­a considerarse como el aniversario de Gentoo.

Por lo visto aún no hay un dí­a exacto pero la fecha tiene que ser en última parte del año si consideramos la linea de tiempo que Daniel puso en el post:

http://blog.funtoo.org/2009/06/10th-anniversary-of-gentoo.html

Se esta discutiendo mucho y por lo visto la fecha va a ser el 4 de Octubre que fué la fecha en que el dominio gentoo.org fué registrado. Asi que ya saben todos los fieles usuarios de Gentoo, tenemos motivos para celebrar por nuestra magní­fica distro.

BSD is dead

Es una broma recurrente entre gente que usa *nix decir BSD is dead en alusión a el bajo porcentaje de uso que tiene esta familia de sistemas operativos que son bastante parecidos a Linux.

Particularmente yo prefiero Linux en vez de *BSD, pero hay gente que prefiere BSD sobre Linux y esto genera intensas flamewars. Yo creo que ambos son excelentes SOs para servidores, cada uno tiene sus pros y contras pero en general ambos pueden hacer lo mismo.

El video que presento a continuación se llama BSD is still Dying y es la continuación de uno denominado BSD is dying donde se cuenta un poco que es BSD, sus orí­genes, quiénes lo usan y que esta pasando con su comunidad, es una excelente charla dada por Jason Dixon en la conferencia DCBSDCon2009

Y si quieren ver la antigua charla que es casi igual visiten:
BSD is Dying

Divertidos trucos para hacer en tu consola linux

El otro dí­a estuve haciendo una “limpieza” de diskettes y CDs que tení­a guardados y me pasé mucho rato revisando los contenidos para ver si tení­a algo que valiera la pena rescatar antes de tirar todo a la basura, y asi fué como encontré una venerable carpeta llamada console_fun donde tení­a algunos scripts que hací­an tonterí­as y que ahora comparto con Uds.

Los pueden usar de 2 formas, o se crean un archivo y le pegan el contenido para luego ejecutarlo o simplemente lo escriben directamente en sus consolas

Casi todos se pueden cortar con CTRL-C

1) Efecto Matrix

tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"

2) Efecto Matrix 2

echo -e "\e[31m"; while $t; do for i in `seq 1 30`;do r="$[($RANDOM % 2)]";h="$[($RANDOM % 4)]";if [ $h -eq 1 ]; then v="\e[1m $r";else v="\e[2m $r";fi;v2="$v2 $v";done;echo -e $v2;v2="";done;

3) Ver StarWars desde la consola

telnet towel.blinkenlights.nl

4) Ver escala de grises

yes "$(seq 232 255;seq 254 -1 233)" |
while read i; do printf "\x1b[48;5;${i}m\n"; sleep .01; done

Hay otros mas pero ya son un poco nerds o son mas trucos para Linux que quizás deberí­a publicar en otro post.

Enjoy 🙂

Cuidado con las fork bombs como

:(){ :|:& };: