Riinstallare Linux

Accade regolarmente

Indice

Occorre avere una sequenza standard di compiti post-installazione di riferimento, quindi la registro qui.

Ubuntu desktop molto vuoto

Dove

Di solito uso distro basate su ubuntu. L’ultima installazione è Mint 21.3 (basata su ubuntu 22.04).

Come

alcuni strumenti utili

sudo apt-get install git git-lfs gimp mc flameshot htop nvtop chkservice

# se il lavoro grafico è previsto
sudo apt-get install imagemagick
git lfs install

# se necessario manipolare alcuni pdf
sudo apt-get install poppler-utils

manipolazione json

Esempi si vedono in Bash Cheat Sheet

sudo apt-get install jq jo

Installazione dei driver NVidia

Metodo 1

Rimuovi i driver NVidia locali

sudo apt-get purge 'nvidia*'
sudo apt-get autoremove
sudo apt-get autoclean

Aggiungi il PPA e aggiorna le referenze locali dei pacchetti

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

Verifica quale versione del driver NVidia raccomanda per il tuo dispositivo

ubuntu-drivers devices

Installa

sudo apt-get install nvidia-driver-535
sudo reboot

Verifica che possa vedere la tua GPU e quale versione è installata

nvidia-smi

Metodo 2

Vedi qui per la versione del tuo sistema operativo: https://developer.nvidia.com/cuda-downloads

Per installare la versione del modulo kernel open:

sudo apt-get install -y nvidia-driver-555-open
sudo apt-get install -y cuda-drivers-555

Installazione CUDA

Lo stesso NVidia ufficiale: https://developer.nvidia.com/cuda-downloads

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.9.0/local_installers/cuda-repo-ubuntu2204-12-9-local_12.9.0-575.51.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-9-local_12.9.0-575.51.03-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-9-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-9

flatpacks

vlc, obsidian, nextcloud desktop, foliate, dbeaver

ungoogled-chromium

https://github.com/ungoogled-software/ungoogled-chromium

echo 'deb http://download.opensuse.org/repositories/home:/ungoogled_chromium/Ubuntu_Jammy/ /' | sudo tee /etc/apt/sources.list.d/home:ungoogled_chromium.list
curl -fsSL https://download.opensuse.org/repositories/home:ungoogled_chromium/Ubuntu_Jammy/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_ungoogled_chromium.gpg > /dev/null
sudo apt update
sudo apt install ungoogled-chromium

golang

Questo installa una versione abbastanza vecchia, attualmente 1.18

sudo apt-get install golang-go

quindi, vai a https://go.dev/dl/ e scegli la tua versione più recente, quindi,

sudo bash

e

wget https://go.dev/dl/go1.24.3.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.3.linux-amd64.tar.gz

poi aggiungi a $HOME/.profile

export PATH=$PATH:/usr/local/go/bin

poi

source $HOME/.profile
go version

vs code

https://code.visualstudio.com/docs/setup/linux

Installa il pacchetto deb (devi scaricarlo prima). L’installazione del pacchetto .deb installerà automaticamente il repository apt e la chiave di firma per abilitare l’aggiornamento automatico utilizzando il gestore pacchetti del sistema.

Oppure fai lo stesso manualmente qui sotto:

sudo apt-get install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg

Poi aggiorna la cache dei pacchetti e installa il pacchetto utilizzando:

sudo apt install apt-transport-https
sudo apt update
sudo apt install code # o code-insiders

Installare le estensioni di vs code:

Python, C#, Go, Hugohelper, Front Matter CMS, React*, Flutter

Il vs code standard ha alcuni dati di telemetria - parzialmente rimossi nelle impostazioni: user:application:telemetry=>off … ma non completamente …

VSCodium flatpack è una versione senza telemetria, non molto indietro.

Python e Anaconda

Installa pip

sudo apt install python3-pip

https://www.anaconda.com/download/success

scarica la versione linux come

wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh

e eseguilo

bash Anaconda3-2024.06-1-Linux-x86_64.sh

presta attenzione alla fine:

Se preferisci che l'ambiente base di conda non venga attivato all'avvio,
   esegui il seguente comando quando conda è attivato:

conda config --set auto_activate_base false

Puoi annullare questa operazione eseguendo `conda init --reverse $SHELL`? [yes|no]

hugo

https://gohugo.io/installation/linux/

per esempio questo: https://github.com/gohugoio/hugo/releases/tag/v0.124.1

scarica e installa hugo_extended_0.124.1_linux-amd64.deb

kubectl

https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-using-native-package-management

sudo apt-get update
# apt-transport-https potrebbe essere un pacchetto finto; se è così, puoi saltare quel pacchetto
sudo apt-get install -y apt-transport-https ca-certificates curl
# Se la cartella /etc/apt/keyrings non esiste, dovrebbe essere creata prima del comando curl, leggi la nota qui sotto.
# sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # permette ai programmi APT non privilegiati di leggere questa chiave
# Questo sovrascrive qualsiasi configurazione esistente in /etc/apt/sources.list.d/kubernetes.list
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list   # aiuta gli strumenti come command-not-found a funzionare correttamente
sudo apt-get update
sudo apt-get install -y kubectl

chiavi ssh

copia le chiavi ssh in ~/.ssh

poi copia l’id in tutti gli ipaddrs del tuo laboratorio

ssh-copy-id username@ipaddr

docker

sudo docker images

disinstalla l’esistente

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

Installazione utilizzando il repository apt

# Aggiungi la chiave ufficiale di Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Aggiungi il repository a Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

se utilizzi derivati di ubuntu devi utilizzare UBUNTU_CODENAME invece di VERSION_CODENAME, come

# Aggiungi la chiave ufficiale di Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Aggiungi il repository a Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$UBUNTU_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Installa l’ultima versione:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verifica

sudo docker run hello-world

Opzionalmente, aggiungi l’utente corrente al gruppo docker

usermod -aG docker $USER

portainer

Per iniziare, avrai bisogno di:

  • L’ultima versione di Docker installata e funzionante
  • Accesso sudo sulla macchina che ospiterà l’istanza del server Portainer
  • Per default, Portainer Server esporrà l’interfaccia utente sulla porta 9443 e un server tunnel TCP sulla porta 8000. L’ultimo è opzionale e è necessario solo se hai intenzione di utilizzare le funzionalità Edge con agenti Edge.

Requisiti:

  • SELinux è disabilitato sulla macchina che esegue Docker. Se necessiti di SELinux, dovrai passare il flag –privileged a Docker quando deployerai Portainer.

Prima, crea il volume che Portainer Server utilizzerà per archiviare il suo database:

sudo docker volume create portainer_data

Poi, scarica e installa il container Portainer Server:

sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

controlla

sudo docker ps

Naviga a: https://localhost:9443

L’username è admin, imposta la password nell’interfaccia utente

Agent di Portainer per Kubernetes

Crea l’ambiente k8s, l’agente

kubectl apply -f https://downloads.portainer.io/ce2-19/portainer-agent-k8s-lb.yaml
kubectl get services --all-namespaces

poi copia e incolla l’indirizzo ip esterno del servizio portainer nell’interfaccia utente, non dimenticare la porta 9001

.netcore sdk

https://learn.microsoft.com/en-gb/dotnet/core/install/linux-ubuntu-install?tabs=dotnet8&pivots=os-linux-ubuntu-2204

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-8.0 aspnetcore-runtime-8.0

o se non si prevede aspnet

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-8.0 dotnet-runtime-8.0

Dipendenze

Quando installi con un gestore pacchetti, queste librerie vengono installate per te. Ma, se installi manualmente .NET o pubblichi un’app autocontenuta, devi assicurarti che queste librerie siano installate:

  • libc6
  • libgcc-s1
  • libgssapi-krb5-2
  • libicu70
  • liblttng-ust1
  • libssl3
  • libstdc++6
  • libunwind8
  • zlib1g

Le dipendenze possono essere installate con il comando apt install. Il seguente frammento dimostra l’installazione della libreria zlib1g:

sudo apt install zlib1g

awscli

Per installare awscli dal repository ubuntu (a luglio 2024 ti dà v1.22.34-1):

sudo apt install awscli

Per controllare la versione di awscli installata sul tuo pc:

aws --version

Oppure per ottenere la versione più aggiornata appena rilasciata da Amazon (2.0): https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html

attualmente:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update

Terraform

Terraform può essere installato in molti modi, vedi qui: https://developer.hashicorp.com/terraform/install

Sto installando dal repository di hashicorp per ubuntu

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

E per linux mint fai attenzione, l’installer di terraform non funziona correttamente. Controlla i risultati di questi comandi

lsb_release -cs

cat /etc/upstream-release/lsb-release 

Ora vai a Software Sources e sostituisci in Hashicorp ‘virginia’ con ‘Jammy’ e ripeti

sudo apt update && sudo apt install terraform

Per controllare che terraform sia installato correttamente, esegui

terraform version

Controllo dei servizi systemd

Puoi utilizzare

systemctl status
systemctl stop some-service
systemctl disable some-service 

o puoi utilizzare chkservice

sudo apt-get install chkservice

sudo chkservice