[MODIFIED] Inclusión de nuevas librerias e instalación de herramientas
- Se instalarán los paquetes: git, curl y wget - Adiciona nuevas librerias bash para ampliar funcionalidades
This commit is contained in:
		
							parent
							
								
									a4190914b6
								
							
						
					
					
						commit
						a74fc072d3
					
				
					 10 changed files with 415 additions and 11 deletions
				
			
		|  | @ -11,9 +11,9 @@ | |||
| 
 | ||||
| (Pendiente) | ||||
| 
 | ||||
| #### Instalación de herramientas para gestión de contenedores | ||||
| #### Instalación de herramientas básicas y de gestión de contenedores | ||||
| 
 | ||||
| Se utiliza para instalar los paquetes de gestión de contenedores (docker o podman) y otras herramientas requeridas. | ||||
| Instalará wget, curl, git, python3 + python3-pip (si no están instalados previamente) y podman (si no está previamente instalado o docker) | ||||
| 
 | ||||
|     $ ./bin/bootstrap.sh | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| #!/bin/bash | ||||
| #bootstrap.sh | ||||
| # | ||||
| # bootstrap.sh | ||||
| # Modified: 2024/12/01 15:27:00 | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||
|  | @ -21,7 +22,6 @@ DEVSTEAM=odoo | |||
| BIN_HOME=$HOME/$DEVSPATH/$DEVSTEAM | ||||
| BIN_MESG=bin/msg | ||||
| BIN_LIBS=bin/lib | ||||
| PYTHON_PACKAGE=python3 | ||||
| 
 | ||||
| # CHECK SHELL LANGUAGE | ||||
| BIN_LANG=${LANG:0:2} | ||||
|  | @ -50,26 +50,49 @@ install() { | |||
| 	local MESSAGES=$3 | ||||
|     local INSTALL_LANG=$4 | ||||
| 
 | ||||
|     local PYTHON_PACKAGE=python3 | ||||
|     local GIT_PACKAGE=git | ||||
| 	local CURL_PACKAGE=curl | ||||
|     local WGET_PACCKAGE=wget | ||||
| 
 | ||||
| 	# Load base bash library | ||||
| 	source $BIN_PATH/$LIBRARY/base.lib | ||||
| 
 | ||||
| 
 | ||||
| 	# Load bootstrap bash library | ||||
| 	source $BIN_PATH/$LIBRARY/bootstrap.lib | ||||
| 
 | ||||
| 	# Load bootstrap messages | ||||
| 	load_bootstrap_msg $BIN_PATH $MESSAGES $INSTALL_LANG | ||||
| 
 | ||||
| 	# Install or Update python from OS Packages | ||||
| 	command_installed $PYTHON_PACKAGE | ||||
| 	if [ $? -eq 0 ] | ||||
| 	# Install wget from OS Packages | ||||
| 	command_installed $WGET_PACKAGE | ||||
| 	if [ $? -ne 0 ] | ||||
| 	then | ||||
|       os_pkgs_install $WGET_PACKAGE | ||||
| 	fi | ||||
| 
 | ||||
| 	# Install curl from OS Packages | ||||
| 	command_installed $CURL_PACKAGE | ||||
| 	if [ $? -ne 0 ] | ||||
| 	then | ||||
| 	  os_pkgs_install $CURL_PACKAGE | ||||
| 	fi | ||||
| 
 | ||||
| 	# Install git from OS Packages | ||||
| 	command_installed $GIT_PACKAGE | ||||
| 	if [ $? -ne 0 ] | ||||
| 	then | ||||
| 	  os_pkgs_install $GIT_PACKAGE | ||||
| 	fi | ||||
| 
 | ||||
| 	# Install python from OS Packages | ||||
| 	command_installed $PYTHON_PACKAGE | ||||
| 	if [ $? -ne 0 ] | ||||
| 	then | ||||
| 	  os_update | ||||
| 	else | ||||
| 	  python3_install | ||||
| 	fi | ||||
| 
 | ||||
| 	# Check for container management installed | ||||
| 	# Check for container management installed and install podman | ||||
| 	container_mode | ||||
| 	if [ $? -eq 255 ] | ||||
| 	then | ||||
|  |  | |||
							
								
								
									
										134
									
								
								bin/lib/base.lib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								bin/lib/base.lib
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,134 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # Library: base.lib | ||||
| # Modified: 2024/11/30 15:27:00 | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||
| # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||
| # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||
| # o (a su elección) cualquier versión posterior. | ||||
| # | ||||
| # Este programa se distribuye con la esperanza de que sea útil, | ||||
| # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||
| # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||
| # Licencia Pública Affero General de GNU para obtener más detalles. | ||||
| # | ||||
| # Debería haber recibido una copia de la Licencia Pública Affero General | ||||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| 
 | ||||
| # Test library | ||||
| function baselib_test() { | ||||
|   echo "Base Library loaded!" | ||||
| } | ||||
| 
 | ||||
| # Load messages | ||||
| function load_messages() { | ||||
|   local BIN_PATH=$1 | ||||
|   local MSG_PATH=$2 | ||||
|   local LANGUAGE=$3 | ||||
|   local MSG_FILE=$4 | ||||
| 
 | ||||
|   if [ -f $BIN_PATH/$MSG_PATH/$MSG_FILE.$LANGUAGE ] | ||||
|   then | ||||
|     source $BIN_PATH/$MSG_PATH/$MSG_FILE.$LANGUAGE | ||||
|   else | ||||
|     source $BIN_PATH/$MSG_PATH/$MSG_FILE.es | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| function display_text_header() { | ||||
|   local PROJECT=$1 | ||||
|   local tittle=$2 | ||||
| 
 | ||||
|   clear | ||||
|   echo "$(cat < $PROJECT/config/project.head) $tittle" | ||||
|   echo "==========================================================" | ||||
| } | ||||
| 
 | ||||
| # Verify if your program or command is installed | ||||
| function command_installed() { | ||||
|   local PROGRAM=$1 | ||||
| 
 | ||||
|   if command -v $PROGRAM &> /dev/null; then | ||||
|       return 0 | ||||
|   fi | ||||
| 
 | ||||
|   # No program or command is installed | ||||
|   return 1 | ||||
| } | ||||
| 
 | ||||
| function os_pkgs_install() { | ||||
| 
 | ||||
|   local PACKAGE=$1 | ||||
| 
 | ||||
|   echo "${pkg_install_begin} ${PACKAGE}" | ||||
|   if [ "$(uname)" == "Darwin" ]; then | ||||
|       # En macOS, a través de Homebrew | ||||
|       /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | ||||
|       brew install $PACKAGE | ||||
|   elif [ -f /etc/debian_version ] || [ -f /etc/os-release ]; then | ||||
|       # En sistemas Debian y derivados, a través de apt | ||||
|       apt update | ||||
|       apt install -y $PACKAGE | ||||
|   elif [ -f /etc/redhat-release ]; then | ||||
|       # En sistemas Red Hat y derivados, a través de dnf | ||||
|       dnf install -y $PACKAGE | ||||
|   elif [ -f /etc/arch-release ]; then | ||||
|       # En Arch Linux, a través de pacman | ||||
|       pacman -Sy --noconfirm $PACKAGE | ||||
|   elif [ -f /etc/rc.conf ]; then | ||||
|       # En BSD, a través de pkg | ||||
|       pkg install -y $PACKAGE | ||||
|   else | ||||
|       echo "${os_nofound}" | ||||
|       exit 1 | ||||
|   fi | ||||
|   echo "${pkg_install_success} ${PACKAGE}" | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| # Update or upgrade OS Packages | ||||
| function os_update() { | ||||
| 
 | ||||
|   if [ "$(uname)" == "Darwin" ]; then | ||||
|     echo "$os_update (BREW)" | ||||
|     brew upgrade | ||||
|   elif [ -f /etc/debian_version ] || [ -f /etc/os-release ]; then | ||||
|     echo "$os_update (APT)" | ||||
|     apt update && apt upgrade -y | ||||
|   elif [ -f /etc/redhat-release ]; then | ||||
|     echo "$os_update (DNF)" | ||||
|     dnf update -y | ||||
|   elif [ -f /etc/arch-release ]; then | ||||
|     echo "$os_update (PACMAN)" | ||||
|     pacman -Syu | ||||
|   elif [ -f /etc/rc.conf ]; then | ||||
|     echo "$os_update (PKG)" | ||||
|     pkg update && pkg upgrade | ||||
|   else | ||||
|     echo "${os_nofound}" | ||||
|     exit 1 | ||||
|   fi | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| function container_mode() { | ||||
| 
 | ||||
|   command_installed "podman" | ||||
|   if [ $? -eq 0 ] | ||||
|   then | ||||
|     return 0 | ||||
|   else | ||||
|     command_installed "docker" | ||||
|     if [ $? -eq 0 ] | ||||
|     then | ||||
|       return 1 | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   # Exit with code 255 if not docker or podman installed | ||||
|   return 255 | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										78
									
								
								bin/lib/bootstrap.lib
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										78
									
								
								bin/lib/bootstrap.lib
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,78 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # Library: bootstrap.lib | ||||
| # Modified: 2024/11/30 15:27:00 | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||
| # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||
| # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||
| # o (a su elección) cualquier versión posterior. | ||||
| # | ||||
| # Este programa se distribuye con la esperanza de que sea útil, | ||||
| # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||
| # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||
| # Licencia Pública Affero General de GNU para obtener más detalles. | ||||
| # | ||||
| # Debería haber recibido una copia de la Licencia Pública Affero General | ||||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| # Install Python | ||||
| function python3_install() { | ||||
| 
 | ||||
|     echo "${pymsg_001}" | ||||
|     if [ "$(uname)" == "Darwin" ]; then | ||||
|         # En macOS, instalamos o actualizamos Python a través de Homebrew | ||||
|         /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | ||||
|         brew install python python-pip | ||||
|     elif [ -f /etc/debian_version ] || [ -f /etc/os-release ]; then | ||||
|         # En sistemas Debian y derivados, instalamos o actualizamos Python a través de apt | ||||
|         apt update | ||||
|         apt install -y python3 python3-pip | ||||
|     elif [ -f /etc/redhat-release ]; then | ||||
|         # En sistemas Red Hat, instalamos o actualizamos Python a través de yum | ||||
|         dnf install -y python3 python3-pip | ||||
|     elif [ -f /etc/arch-release ]; then | ||||
|         # En Arch Linux, instalamos o actualizamos Python a través de pacman | ||||
|         pacman -Sy --noconfirm python | ||||
|     elif [ -f /etc/rc.conf ]; then | ||||
|         # En BSD, instalamos o actualizamos Python a través de pkg | ||||
|         pkg install -y python3 python3-pip | ||||
|     else | ||||
|         echo "${os_nofound}" | ||||
|         exit 1 | ||||
|     fi | ||||
|     echo "${pymsg_003}" | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| # Install Podman | ||||
| function podman_install() { | ||||
| 
 | ||||
|     echo "${pdmsg_001}" | ||||
|     if [ "$(uname)" == "Darwin" ]; then | ||||
|         # En macOS, instalamos o actualizamos Python a través de Homebrew | ||||
|         /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | ||||
|         brew tap containers/podman | ||||
|         brew install podman | ||||
|     elif [ -f /etc/debian_version ] || [ -f /etc/os-release ]; then | ||||
|         # En sistemas Debian y derivados, instalamos o actualizamos Python a través de apt | ||||
|         apt update | ||||
|         apt install -y podman podman-compose | ||||
|     elif [ -f /etc/redhat-release ]; then | ||||
|         # En sistemas Red Hat, instalamos o actualizamos Python a través de dnf | ||||
|         dnf install -y epel-release | ||||
|         dnf install -y podman podman-compose | ||||
|     elif [ -f /etc/arch-release ]; then | ||||
|         # En Arch Linux, instalamos o actualizamos Python a través de pacman | ||||
|         pacman -Sy --noconfirm podman podman-compose fuse-overlayfs | ||||
|     elif [ -f /etc/rc.conf ]; then | ||||
|         # En BSD, instalamos o actualizamos Python a través de pkg | ||||
|         pkg install -y podman-suite | ||||
|     else | ||||
|         echo "${os_nofound}" | ||||
|         exit 1 | ||||
|     fi | ||||
|     echo "${pdmsg_003}" | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										54
									
								
								bin/lib/containers.lib
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								bin/lib/containers.lib
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,54 @@ | |||
| #!/bin/bash | ||||
| #bootstrab.lib | ||||
| # | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||
| # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||
| # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||
| # o (a su elección) cualquier versión posterior. | ||||
| # | ||||
| # Este programa se distribuye con la esperanza de que sea útil, | ||||
| # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||
| # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||
| # Licencia Pública Affero General de GNU para obtener más detalles. | ||||
| # | ||||
| # Debería haber recibido una copia de la Licencia Pública Affero General | ||||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| # Función para iniciar una instancia de odoo en contenedor (podman o docker) | ||||
| start_instance() { | ||||
|     local env_file=$1 | ||||
|     # Verificar si Docker está instalado | ||||
|     if command -v docker &> /dev/null; then | ||||
|         docker-compose --env-file ${env_file} up -d | ||||
|         return $? | ||||
|     fi | ||||
|     # Verificar si Podman está instalado | ||||
|     if command -v podman &> /dev/null; then | ||||
|         podman-compose --env-file ${env_file} up -d | ||||
|         return $? | ||||
|     fi | ||||
| 
 | ||||
|     echo "\n\nVisite http://localhost:101${odoo_port}" | ||||
|     # Ninguno de los dos está instalado | ||||
|     return 100 | ||||
| } | ||||
| 
 | ||||
| # Función para detener una instancia de odoo en contenedor (podman o docker) | ||||
| stop_instance() { | ||||
|     local env_file=$1 | ||||
|     # Verificar si Docker está instalado | ||||
|     if command -v docker &> /dev/null; then | ||||
|         docker-compose --env-file ${env_file} down | ||||
|         return $? | ||||
|     fi | ||||
|     # Verificar si Podman está instalado | ||||
|     if command -v podman &> /dev/null; then | ||||
|         podman-compose --env-file ${env_file} down | ||||
|         return $? | ||||
|     fi | ||||
| 
 | ||||
|     # Ninguno de los dos está instalado | ||||
|     return 100 | ||||
| } | ||||
							
								
								
									
										40
									
								
								bin/lib/odoo.lib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								bin/lib/odoo.lib
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| #!/bin/bash | ||||
| #odoo.lib | ||||
| # | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||
| # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||
| # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||
| # o (a su elección) cualquier versión posterior. | ||||
| # | ||||
| # Este programa se distribuye con la esperanza de que sea útil, | ||||
| # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||
| # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||
| # Licencia Pública Affero General de GNU para obtener más detalles. | ||||
| # | ||||
| # Debería haber recibido una copia de la Licencia Pública Affero General | ||||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| # Función para crear la estructura de archivos para proyecto de desarrollo local Odoo - Contenedores | ||||
| odoo_structure() { | ||||
|   if [[ ! -f "${POSTGRES_PATH}" ]] | ||||
|   then | ||||
|     mkdir -p "${POSTGRES_PATH}" | ||||
|   fi | ||||
| 
 | ||||
|   if [[ ! -f "${POSTGRES_INIT}" ]] | ||||
|   then | ||||
|     mkdir -p "${POSTGRES_INIT}" | ||||
|   fi | ||||
| 
 | ||||
|   if [[ ! -f "${ODOO_DATA}" ]] | ||||
|   then | ||||
|     mkdir -p "${ODOO_DATA}" | ||||
|   fi | ||||
| 
 | ||||
|   if [[ ! -f "${ODOO_BACKUPS}" ]] | ||||
|   then | ||||
|     mkdir -p "${ODOO_BACKUPS}" | ||||
|   fi | ||||
| } | ||||
							
								
								
									
										6
									
								
								bin/lib/requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								bin/lib/requirements.txt
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| curl | ||||
| lsof | ||||
| wget | ||||
| unzip | ||||
| jq | ||||
| dialog | ||||
							
								
								
									
										22
									
								
								bin/msg/bootstrap.es
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								bin/msg/bootstrap.es
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| #!/usr/bin/env bash | ||||
| #bash script     : bootstrap.es  | ||||
| #apps            : Personal Developer Utilities | ||||
| #description     : Bootstrap Translate Messages (es) | ||||
| #author		     : MRP/mrp - Mauro Rosero P. | ||||
| #company email   : mauro@rosero.one | ||||
| #personal email  : mauro.rosero@gmail.com | ||||
| #date            : 20240201 | ||||
| #version         : 1.0.2 | ||||
| #notes           : | ||||
| #============================================================================== | ||||
| #============================================================================== | ||||
| 
 | ||||
| bomsg_000="Bootstrap" | ||||
| 
 | ||||
| pymsg_001="Instalando Python3" | ||||
| pymsg_003="Python instalado satisfactoriamente" | ||||
| 
 | ||||
| pdmsg_001="Instalando Podman..." | ||||
| pdmsg_003="Podman fue instalado satisfactoriamente" | ||||
| 
 | ||||
| domsg_005="----> Docker previamente instalado, desinstale para poder instalar PODMAN o utilice DOCKER" | ||||
							
								
								
									
										26
									
								
								bin/msg/head.es
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								bin/msg/head.es
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | |||
| #!/usr/bin/env bash | ||||
| #bash script     : head.es  | ||||
| #apps            : MRosero Personal Developer Utilities | ||||
| #description     : Head Translate Messages (es) | ||||
| #author		     : MRP/mrp - Mauro Rosero P. | ||||
| #company email   : mauro@rosero.one | ||||
| #personal email  : mauro.rosero@gmail.com | ||||
| #date            : 20240201 | ||||
| #version         : 1.0.2 | ||||
| #notes           : | ||||
| #============================================================================== | ||||
| #============================================================================== | ||||
| 
 | ||||
| head_000="(MRDEVOPS TOOLS)" | ||||
| head_001="El comando 'dialog' no está instalado. Por favor, ejecute bootstrap.sh." | ||||
| head_installing="Instalando" | ||||
| head_info="INFO" | ||||
| head_warning="ADVERTENCIA" | ||||
| head_error="ERROR" | ||||
| head_unknow="UNKNOW" | ||||
| 
 | ||||
| os_update="Actualizando sistema operativo " | ||||
| os_nofound="Sistemas operativos soportados: Ubuntu, Debian, Arch Linux, Fedora, Redhat, AlmaLinux, Rocky, Oracle Linux, FreeBSD, MacOS" | ||||
| 
 | ||||
| pkg_install_begin="Instalando paquete(s):" | ||||
| pkg_install_success="Instalación satisfactoria de paquete(s):" | ||||
							
								
								
									
										21
									
								
								bin/msg/packages.es
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								bin/msg/packages.es
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| #!/usr/bin/env bash | ||||
| #bash script     : packages.es  | ||||
| #apps            : MRosero Personal Developer Utilities | ||||
| #description     : Packages Translate Messages (es) | ||||
| #author		     : MRP/mrp - Mauro Rosero P. | ||||
| #company email   : mauro@rosero.one | ||||
| #personal email  : mauro.rosero@gmail.com | ||||
| #date            : 20240201 | ||||
| #version         : 1.0.2 | ||||
| #notes           : | ||||
| #============================================================================== | ||||
| #============================================================================== | ||||
| 
 | ||||
| pkmsg_000="INSTALDOR DE PAQUETES" | ||||
| pkmsg_001="Instalando o actualizando la última versión del paquete..." | ||||
| pkmsg_003="Desea instalar seleecciòn de paquetes MRosero Personal Devops? " | ||||
| pkmsg_004="Operación Camcelada. No se pudo determinar el sistema operativo." | ||||
| pkmsg_005="Operación Cancelada. Lista de paquetes a instalar no definida (~/requirements.txt)" | ||||
| pkmsg_006="Operación cancelada por el operador" | ||||
| pkmsg_end="Todos los paquetes instalados/actualizados correctamente!" | ||||
| 
 | ||||
		Loading…
	
		Reference in a new issue