Nombre del autor:admin

Listar dependencias de todos los paquetes instalados

#!/bin/bash
RED='\033[0;31m'
BLUE='\033[0;34m' 
NC='\033[0m'


dpkg -l | grep -E "^i|^rc" | sed 's/:amd64//g' | awk '{print $2}'  | while read line 
 do echo -e ${BLUE} 
      apt-cache depends --no-pre-depends --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances -qqqq $line \
     | sed -z 's/\n  Depends: /,/g;s/\n |Depends: /,/g;s/\n    /,/g;s/>//g;s/<//g'
    echo -e ${RED}-------- ${NC}
done

Version copada con sugerencias prompeadas y elaborado por chatgpt

#!/bin/bash

# Definir los colores
GREEN='\033[0;32m'
RED='\033[0;31m'
BLUE='\033[0;34m'
YELLOW='\033[0;33m'
WHITE='\033[0;37m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'  # Sin color

# Definir una lista de colores para cada nivel de dependencias
COLORS=($GREEN $RED $BLUE $YELLOW $WHITE $CYAN $PURPLE)

# Función recursiva para obtener las dependencias sin repetir, mostrando con colores e indentación
get_dependencies() {
    local package=$1
    local level=$2
    local indent=$(printf "%${level}s")  # Generar la indentación
    local deps

    # Si ya hemos listado este paquete, no lo repetimos
    if [[ " ${visited[@]} " =~ " ${package} " ]]; then
        return
    fi

    # Marcar el paquete como visitado
    visited+=("$package")

    # Obtener las dependencias del paquete
    deps=$(apt-cache depends --no-pre-depends --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances -qqqq "$package" \
           | sed -z 's/\n  Depends: /,/g;s/\n |Depends: /,/g;s/\n    /,/g;s/>//g;s/<//g' | tr ',' '\n' | sort -u)

    # Obtener el color correspondiente al nivel actual
    color=${COLORS[$((level % ${#COLORS[@]}))]}

    # Imprimir el paquete con el color correspondiente al nivel y con la indentación
    echo -e "${indent}${color}${package}${NC}"

    # Llamar a la función recursiva para cada dependencia
    for dep in $deps; do
        if [[ -n "$dep" ]]; then
            get_dependencies "$dep" $((level + 2))  # Incrementar la indentación
        fi
    done
}

# Función para manejar múltiples paquetes
process_packages() {
    for package in "$@"; do
        echo -e "${CYAN}Procesando paquete: ${package}${NC}"
        get_dependencies "$package" 0
    done
}

# Si no se proporciona ningún paquete
if [ -z "$1" ]; then
    echo -e "${RED}No se proporcionó ningún paquete como argumento.${NC}"
else
    # Inicializar una lista de paquetes visitados
    visited=()

    # Guardar la salida en una variable y pasarla a less -R para mantener los colores
    output=$(process_packages "$@")
    echo "$output" | less -R
fi

Listar dependencias de todos los paquetes instalados Read More »

OBS-Studio en Ubuntu

clear
echo ---OBS-Studio por PPA---------------
echo -------Quitando el anterior---------
sudo apt remove obs-studio --auto-remove -y >/dev/null 2>&1
echo -------Agregando repo ppa-----------
sudo add-apt-repository ppa:obsproject/obs-studio -y >/dev/null
echo -------Actualizando lista-----------
sudo apt update >/dev/null 2>&1
echo -------Instalando ultima version----
sudo apt install obs-studio -y  >/dev/null 2>&1

echo ---OBS Background removal-----------
PAQUETE=$(wget -qO- https://github.com/occ-ai/obs-backgroundremoval/releases/latest | grep linux-gnu.deb | cut -d \: -f1 | uniq)
VERSION=$(wget -qO- https://github.com/occ-ai/obs-backgroundremoval/releases/latest | grep linux-gnu.deb | cut -d \- -f3 | uniq)
wget -q -O /tmp/$PAQUETE --show-progress https://github.com/occ-ai/obs-backgroundremoval/releases/download/$VERSION/$PAQUETE
echo -------Instalando ultima version----
sudo apt install -y /tmp/$PAQUETE  >/dev/null 2>&1

#sudo add-apt-repository ppa:obsproject/obs-studio -r -y

OBS-Studio en Ubuntu Read More »

Filtro de luz azul f.lux

#!/bin/bash
which redshift >/dev/null
if [ $? -ne 0 ] ; then sudo apt install redshift -y >/dev/null 2>&1 ; fi
#Brilo de 0.1 a 1.0
BrilloDia=0.8
BrilloNoche=0.8

#Latitud se puede obtener desde https://justgetflux.com/map.html
Latitud=-34.60
Longitud=-58.38

#Temperatura de color
# 5000K (Luz solar), 4200K (Luz florecente), 3400K (Luz alógena), 
# 2700K (Tungsteno), 2300K (Regulador de incandescencia), 2000K (Un mínimo aprox)
TemperaturaColorDia=4200K
TemperaturaColorNoche=3400K

echo Reseteando configuracion
ps -fea | grep redshift | grep -v grep | awk '{print $2}' | while read line ; do kill -9 $line ; done
pkill redshift 
redshift -x -m randr >/dev/null 2>&1

echo Seteando configuracion
echo "Brillo $BrilloDia $BrilloNoche
Ubicacion $Latitud:$Longitud 
Temperatura $TemperaturaColorDia:$TemperaturaColorNoche"

redshift -b $BrilloDia:$BrilloNoche -l $Latitud:$Longitud -t $TemperaturaColorDia:$TemperaturaColorNoche -m randr >/dev/null 2>&1 &
exit
sudo apt install git redshift python3 python3-distutils -y
cd /tmp
git clone https://github.com/xflux-gui/fluxgui.git
cd fluxgui
sudo python3 download-xflux.py
sudo python3 setup.py install

Filtro de luz azul f.lux Read More »

Upgrade lubuntu 20.04 a 22.04

#!/bin/bash
if [ "$1" == "1" ] ; then
	echo ---------- Quitando repo chrome
	if [ -f /etc/apt/sources.list.d/google-chrome.list ] ; then
		rm /etc/apt/sources.list.d/google-chrome.list
	fi
	echo ---------- Quitando tonterias ubuntu-pro
	if [ -f /etc/apt/apt.conf.d/20apt-esm-hook.conf ] ; then
		rm /etc/apt/apt.conf.d/20apt-esm-hook.conf
	fi
	echo ---------- Actualizando
	apt update
	apt --fix-broken install -y
	apt upgrade -y
	echo ---------------------hay que reiniciar!!!
	exit
fi
if [ "$1" == "2" ] ; then 
	echo ---------- Chequeando si estamos en 20.04
	grep 20.04 /etc/os-release > /dev/null
	if [ "$?" == "0" ] ; then
		echo --------- upgrade to 22.04
		apt autoremove -y
		apt clean
		apt dist-upgrade -y
		do-release-upgrade
	else
		echo no hace falta actualizar
	fi
fi
if [ "$1" == "3" ] ; then
	KERNEL=6.5.0-35
	echo --------- Instalando ultimo kernel $KERNEL
	apt install linux-headers-$KERNEL-generic \
	    linux-hwe-6.5-headers-$KERNEL \
	    linux-image-$KERNEL-generic \
	    linux-modules-$KERNEL-generic \
	    linux-modules-extra-$KERNEL-generic -y
	echo -------------finalizando en la version------------
		grep 04 /etc/os-release
	echo ---------hay que reiniciar-------------
	exit
fi
if [ "$1" == "4" ] ; then 
	echo ----------- Volando snap!!
	which snap > /dev/null
	if [ "$?" == "0" ] ; then 
		for i in $(snap list| grep -vE "Name|snapd|core|bare" | awk '{print $1}'); do sudo snap remove $i ; done
		for i in $(snap list| grep -vE "Name|snapd" | awk '{print $1}'); do sudo snap remove $i ; done
		for i in $(snap list| grep -vE "Name" | awk '{print $1}'); do sudo snap remove $i ; done
		apt remove snapd -y
	fi

	echo ---------- Limpiando basura 
	apt remove --purge ubuntu-advantage-tools distro-info ubuntu-pro-client firefox snapd plasma-discover-backend-snap -y
	apt -f install
        apt remove --purge $(dpkg -l | grep "^rc" | awk '{print $2}') -y
	apt autoremove -y
	apt clean

	if [ -f /etc/systemd/system/var-snap-firefox-common-host\\x2dhunspell.mount ] ; then
		systemctl stop var-snap-firefox-common-host\\x2dhunspell.mount
		systemctl disable var-snap-firefox-common-host\\x2dhunspell.mount
		mv /etc/systemd/system/var-snap-firefox-common-host\\x2dhunspell.mount \
		  /etc/systemd/system/var-snap-firefox-common-host\\x2dhunspell.mount.fuckoff
	fi
	exit
fi

if [ "$1" == "5" ] ; then 
	#https://linuxconfig.org/switching-to-firefoxs-deb-installation-on-ubuntu-22-04-a-guide-to-avoiding-snap-packages
	#https://support.mozilla.org/en-US/kb/install-firefox-linux#w_install-firefox-deb-package-for-debian-based-distributions
	echo --------- Instalando firefox como la gente
	apt update
	apt remove firefox -y
	apt autoremove -y
	apt clean -y
        apt --fix-broken install -y

	echo ------firefox deb
	install -d -m 0755 /etc/apt/keyrings
	wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
	gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); print "\n"$0"\n"}'
	echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee /etc/apt/sources.list.d/mozilla.list > /dev/null
# quito la tabulacion sino la preferencia no sirve
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla 
	sudo apt-get update && sudo apt-get install firefox firefox-l10n-es-es -y

	echo -----firefox-esr
	BASE=http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu/pool/main/f/firefox-esr/ 
	curl -s $BASE | cut -d \" -f 8 | grep -E "firefox-esr_|firefox-esr-locale-es" | grep amd64 | grep "22.04" \
		| while read line 
		   do echo $line 
		      wget -qO $line $BASE/$line 
		   done
	echo -------- Instalando
	sudo dpkg -i $(ls firefox*.deb)
	
	find /home -type f -name '*mimeapps.list' -exec sed 's/firefox.desktop/firefox-esr.desktop/g' -i {} \;
fi
     

Upgrade lubuntu 20.04 a 22.04 Read More »

Comentarios multilinea sin # en cada una

Acá vemos un ejemplo de como colocar multiples lineas sin comentar con # adelante y que bash las ignore.
Se arranca con un menor y entre comillas simples ponemos algun tipo de TAG con el que cerramos la última linea del comentario
Este ejemplo no hace nada más que un hola mundo!! y las lineas de múltiples numerales son solo estéticas y no se necesitan para que ande el comentario.

usuario@notebook:~$ cat multilinea.sh

#!/bin/bash
############
#ACA ABRO CON UN MENOR
<<'ALGUN_NOMBRE_DE_EJEMPLO'
LINEA 1
LINEA 2
LINEA 3
LINEA 4

ALGUN_NOMBRE_DE_EJEMPLO
#ACA CIERRO CON LO QUE SEA HAYA PUESTO ARRIBA
############
echo esto es un HOLA MUNDO!!!

usuario@notebook:~$ bash multilinea.sh

esto es un HOLA MUNDO!!!

Comentarios multilinea sin # en cada una Read More »

Scroll al inicio