Consigli per la scelta dell’ambiente di Lavoro
Ultimo aggiornamento: 15/45/2024 alle 14:45:14
Installazione Sistema Linux
Per poter seguire efficacemente il corso è necessario avere accesso ad un sistema basato su Linux. Le tre principali modalità con cui è possibile ottenerne uno sono:
- Utilizzo di una macchina virtuale (possibile sia su host Windows che su host Mac)
- Utilizzo del Windows Subsystem for Linux - WSL2 (possibile solo con un host Windows)
- La creazione di una partizione del disco per l’installazione in dual-boot di una distribuzione Linux (possibile sia con host windows sia con host Mac).
Di seguito sono indicati vantaggi e svantaggi per ognuna delle possibili scelte di setup. Questo elenco è valido in generale ma la scelta migliore dipende dalle esigenze di ogni persona. Utilizzare la macchina virtuale fornita è la soluzione più veloce per chi inizia da zero in quanto consente di evitare l’installazione manuale di tutti i tool che serviranno ed è già pronta all’uso.
In tutto il documento il sistema operativo Linux-based a cui si farà riferimento è Ubuntu 22.04 LTS.
Pro e Contro di ciascuna scelta
L’uso di una macchina virtuale è la soluzione migliore se si ha a disposizione sufficiente RAM, indicativamente sui 16GB.
PRO: possibilità di usare Windows/Mac e Linux contemporaneamente.
CONTRO: maggiore utilizzo di risorse RAM e CPU.
Soluzione migliore per chi usa Windows e possiede un pc con ridotte risorse (RAM, CPU o Disco).
PRO: ottima integrazione con Windows e possibilità di usare Windows e Linux contemporaneamente. CONTRO: installare una UI in esso può risultare complesso se si utilizza una versione di Windows minore di Windows 10 Build 19044.
Soluzione migliore per chi ha molto spazio su disco (e non ha necessità di spostarsi spesso tra Windows/Mac e Linux).
PRO: nessun requisito eccessivo di RAM e CPU e nessun livello di virtualizzazione.
CONTRO: molto spazio su disco necessario e non è possibile utilizzare contemporaneamente Windows/Mac e Linux, per cui è necessario un riavvio per il cambio.
Setup Macchina Virtuale
La macchina virtuale fornita è in formato Open Virtualization Appliance, può essere quindi importata dalla maggior parte dei software di virtualizzazione disponibili. Le istruzioni in questo documento si riferiscono al software VirtualBox.
- Scaricare VirtualBox dal seguente link: https://www.virtualbox.org/wiki/Downloads
- Installare VirtualBox.
- Scaricare il file programmazione-scientifica-2024.ova dal seguente link (~9.4Gb).
- Avviare VirtualBox ed importare la macchina virtuale: File -> Import Appliance -> Selezionare il file programmazione-scientifica-2024.ova
Informazioni e accesso alla macchina virtuale
Il sistema operativo installato nella macchina virtuale è Ubuntu 22.04 LTS. Le credenziali per accedere richiamano il nome del corso: “scientific programming a.y. 2024”:
- Username: scipro
- Password: scipro24
Setup Windows Subsystem for Linux - WSL2
Il metodo più semplice per installare il Windows Subsystem for Linux - WSL2 è seguire la guida ufficiale Microsoft:
https://learn.microsoft.com/it-it/windows/wsl/install
Per l’interfaccia grafica fate riferimento a:
https://learn.microsoft.com/it-it/windows/wsl/tutorials/gui-apps
Mentre per accedere ai file di Ubuntu potete usare l’icona linux
nella sidebar o inserire il percorso \\\\WSL$
nella barra di navigazione. In entrambi i casi, vostra home si troverà nel percorso /home/username/
dove username è il vostro nome utente.
Setup Dual Boot Ubuntu
Per il dual boot con ubuntu è sufficiente seguire la guida ufficiale:
https://wiki.ubuntu-it.org/Installazione/InstallareUbuntu
Nota: È importante seguire tutti i passi indicati nel link al punto “7. Per installare Ubuntu accanto a Windows, è prima necessario ridimensionare la partizione di Windows”.
Per connettersi ad internet dalla macchina ubuntu potete fare riferimento a questa guida:
https://wiki.unitn.it/pub:wifi
Setup Dual Boot Generico
È possibile scegliere una qualsiasi distribuzione per effettuare il dual boot. Abbiamo deciso di consigliare Ubuntu 22.04 LTS perchè è la distribuzione per cui è più facile reperire informazioni e aiuto online. Se qualcuno fosse interessato ad una distribuzione diversa per qualsiasi motivo può iniziare le sue ricerche da uno dei seguenti link:
- Ubuntu flavours: versioni di Ubuntu con un differente ambiente grafico e differenti programmi installati. La maggior parte delle risorse per ubuntu sono valide anche per queste distribuzioni.
- Distribuzione Linux - Wikipedia: pagina wikipedia con un elenco delle distribuzioni più diffuse.
- Linux Journey - Getting Started informazioni sulle principali distribuzioni (in inglese).
Setup per Mac con chip M1
Le soluzioni sono sperimentali, qualsiasi tipo di feedback è utile.
Virtual Machine via UTM
Una possibile soluzione può essere quella di installare UTM, un software di virtualizzazione alternativo a Virtual Box e sviluppato specificatamente per Mac con processore ARM quali il chip M1.
Per prima cosa recatevi sul sito https://mac.getutm.app/ e scaricate il programma. Al termine del download procedete ad installarlo.
Una volta installato il programma apritelo e fate click su Browse UTM Gallery
. Il vostro browser si aprirà sul seguente sito:
Cliccate sull’immagine relativa a Ubuntu 22.04 Armx64
. Nella nuova pagina selezionate Open in UTM
e nel pop-up ‘Open UTM.app’.
Al termine del download fate click su avvio e potrete cominciare l’installazione di Ubuntu 22.04 nella vostra macchina virtuale. Finita l’installazione seguite il documento Setup Environment
come se aveste scelto di fare il dual boot sul vostro computer.
NDR: L’ultimo paragrafo è abbastanza vago in quanto non è possibile per noi testare il tutorial. Per qualsiasi problema utilizzare il post all’interno del moodle per chiedere chiarimenti.
NDR2: ci è stato comunicato da una vostra collega che UTM ha come utente di default ubuntu
con password ubuntu
. Per poter concedere i privilegi di amministratore al vostro utente dovete passare per l’account ubuntu
digitando sudo su ubuntu
ed inserendo come password ubuntu
. Il resto dei passaggi rimane identico.
Ulteriori risorse:
- https://docs.getutm.app/guides/ubuntu/
- https://youtu.be/1WWj6qoWhJw?si=Zk3iAjJKs_Wsxw7s (videoguida trovata e testata da un vostro collega)
Homebrew
Homebrew (https://brew.sh/) è un gestore di pacchetti per Mac OS simile (ma non equivalente) a APT (Advanced Packaging Tool). È possibile installarlo su computer mac digitando una singola linea nel terminale.
(trovate la linea da copia-incollare sul sito dedicato)
Siccome il comando per eseguire l’installazione è composto da una singola linea possiamo dedicare del tempo a capire cosa implichi quella riga:
/bin/bash
indica al terminale di eseguire il programmabash
presente nella cartella/bin/
. Il programmabash
è la shell stessa quindi indicarlo serve a far eseguire l’installazione in una nuova shell senza andare ad interferire con quella aperta dall’utente.- L’opzione
\-c
indica alla shell bash di non aprirsi in modalità interattiva bensì di leggere i comandi dalla stringa inserita fra le i doppi apici “stringa”. - Il simbolo del dollaro
$
indica alla shell di sostituire il contenuto delle successive parentesi tonde con l’output del comando contenuto al suo interno. Ad esempio, la riga$(echo "Ciao")
verrebbe intepretata come la stringa"Ciao"
. curl
(command url) è un programma da linea di comando che scarica i file presenti all’indirizzo passato come parametro. In questo caso l’indirizzo è https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh. Cliccate pure sopra l’url per vedere il contenuto dello script che stiamo andando ad eseguire.- L’opzione
\-f
dice acurl
di non preoccuparsi se per qualche motivo il file non viene trovato - L’opzione
\-s
(il trattino è implicito se più opzioni sono passate di seguito) indica acurl
di non mostrare la barra di progresso del download - L’opzione
\-S
indica invece di mostrare comunque informazioni dettagliate su eventuali errori - Infine l’opzione
\-L
acurl
di seguire eventuali reindirizzamenti. Se il file fosse stato spostato per qualsiasi motivo e al suo posso fosse presente l’indirizzo corretto del file,curl
proverebbe a scaricare il file dalla nuova posizione.
Terminata l’installazione sarà possibile utilizzare il comando brew install \[pkg-name\]
per installare pacchetti.
È importante notare che la corrispondenza non è sempre 1 ad 1 con i pacchetti di apt. Per esempio, su Ubuntu è possibile installare i compilatori tramite il pacchetto build-essential
mentre su Mac è necessario inserire nel terminale il comando: xcode-select –instal
dopo aver installato Homebrew.
Ulteriori risorse:
Configurazione del sistema Linux
Dopo aver installato il sistema operativo è necessario ottenere i privilegi di amministratore e installare i programmi che verranno utilizzati durante il corso. Sulla virtual machine questi passaggi sono stati già eseguiti ma consigliamo di leggere comunque il tutorial in quanto fornisce informazioni utili sul funzionamento del sistema operativo che andrete ad utilizzare.
Ottenere i privilegi di amministratore
Per ragioni di sicurezza nella maggior parte dei sistemi operativi sono presenti due diversi tipi di utenti:
- Utente standard: l’utente con cui si eseguono la maggior parte delle operazioni come aprire un editor di testo, un gioco o il browser per navigare su internet.
- Utente root: utente con privilegi massimi che ha il permesso di eseguire qualsiasi operazione. Questo utente viene solitamente utilizzato quando si vuole installare un programma, fare un aggiornamento od eseguire cambiamenti importanti sul sistema operativo.
Su Windows il passaggio all’utente amministratore (root) avviene attraverso una finestra specifica che viene visualizzata quando il programma richiede i privilegi di amministratore.
In sistemi Unix, è l’utente a dover concedere i privilegi di amministratore all’avvio del programma tramite il comando sudo
(superuser do) e l’inserimento della propria password.
Poichè permette di eseguire qualsiasi operazione con priorità massima indipendentemente da quanto sia stupida, sulle ultime distribuzioni Ubuntu il comando sudo
non è attivo di default.
Poichè in questo corso puntiamo a rendervi utenti responsabili e capaci di valutare le conseguenze delle proprie azioni, procederemo ora a togliere le rotelle ed abilitare il comando sudo
.
Quando usate il comando
sudo
controllate due volte quello che state facendo. Una volta ho cancellato per errore i file di avvio del computer senza che il sistema operativo si lamentasse e sono stato costretto a reinstallare tutto da zero.
-Guglielmo
Per poter ottenere i permessi di amministratore digitate nel terminale i seguenti comandi nel seguente ordine:
- Aprite il terminale cercando ‘Terminale’ fra i programmi o premendo la combinazione di tasti
ctrl+shift+T
. -
Cambiate l’utente del terminale digitando
sudo su
(superuser do substituteuser, l’utente root è implicito) ed inserendo la vostra password.NDR: sì, stiamo utilizzando il comando
sudo
per poter ottenere l’utilizzo del comandosudo
stesso. Il funzionamento dei privilgi su sistemi Unix è un argomento interessante ma fuori dallo scopo di questo corso. Un modello semplice ma incompleto è chesudo
faccia un’eccezione per il comandosu
in modo tale che sia comunque possibile cambiare utente provando di essere quell’utente e che l’utente root abbia la vostra stessa password.In questo momento avete eseguito l’accesso come amministratori. Tutte le operazioni che compierete avranno i privilegi massimi. Non usate MAI l’utente root per eseguire comandi. Passate sempre dal comando
sudo
.
Idealmente dopo questo tutorial non dovrete mai aver bisogno di utilizzare l’utente root direttamente. - Aggiungete il vostro utente al gruppo di utenti che possono utilizzare il programma
sudo
conadduser [username] sudo
dove[username]
è il nome del vostro account su Ubuntu. Se siete in dubbio sul vostro nome utente usate il comandoexit
per tornare ai vostri privilegi ordinari e digitatewhoami
per sapere il vostro nome utente. Tornate poi al punto 2. - Tornate ai vostri privilegi normali con il comando
exit
. Complimenti, adesso potete utilizzare sudo per ordinare al sistema operativo di fare quello che volete. Usate questo potere con responsabilità.
Ulteriori risorse:
- AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo - Wiki di ubuntu-it
- 🚀 The “Basics” - Putting the “You” in CPU (molto tecnico e non essenziale. Se anche capite il 10% di quello che c’è scritto state andando alla grande).
Installazione dei programmi
Per installare/utilizzare un programma su Windows è sufficiente scaricare l’eseguibile da un sito ed eseguirlo. In ambiente Unix la situazione è leggermente diversa perchè si cerca di ottimizzare lo spazio e le risorse avendo le librerie il più possibile integrate nel sistema.
Per fare ciò, è possibile appoggiarsi a gestori di pacchetti appositi come Advanced Packaging Tool (apt) o snap. Nonostante possa sembrare controintuitiva come idea a chi è abituato ad utilizzare Windows, questo modello di gestione pacchetti è stato ripreso ed implementato in tutti i sistemi operativi mobili dando origine al Play Store, all’App Store e al Microsoft Store.
Il packet manager che utilizzeremo è apt - Advanced Package Tool
e la sua sintassi per installare un programma è sudo apt install [pkg-name(s)]
dove sudo
permette di installare il programma e configurarlo per l’utilizzo in tutto il sistema operativo, apt
è il nome del programma, install
è una flag (opzione) che indica ad apt
di prepararsi ad installare qualcosa e [pkg-name(s)]
l’elenco di pacchetti da installare. Ad esempio: sudo apt install python3 python3-pip
installerà sia il programma python3
che il programma python3-pip
.
NDR: Se un programma da installare richiede altri programmi (dipendenze o prerequisiti), apt
avrà cura di installare anch’essi. Se per esempio avessimo eseguito unicamente sudo apt install python3-pip
, ‘apt’ avrebbe installato anche python3
in quanto è un prerequisito.
Se possibile e fattibile, conviene comunque installare manualmente prima i prerequisiti e poi i programmi necessari. Questo perchè in caso di errore o di configurazioni particolari è più semplice intervenire prima di installare altri programmi che a posteriori.
Esercizi
Installazione Tools
Installare i seguenti tools usando ‘apt’:
curl
python3
git
gdb
build-essential
- KCachegrind
- Valgrind
Installazione Tools (Python’s Version)
Anche python ha un suo gestore di pacchetti interno utilizzato per installare le librerie che andrà ad utilizzare. La sintassi è simile a quella di apt: pip install [pkg-name(s)]
(senza sudo
questa volta perchè l’installazione di python è specifica per il vostro utente).
Installate i seguenti pacchetti:
- matplotlib
- seaborn
- NumPy
- pandas
- JupyterLab, potrebbe essere necessario aggiornare la variabile
PATH
(fare riferimento alla documentazione) - SciPy
- scikit learn
- Pillow
- Requests. Leggete attentamente l’output dell’installazione di questo pacchetto. Lo avete veramente installato con questo comando? In caso negativo, quando pensate sia stato installato? Fate un’ipotesi.
In caso di problemi è sempre comodo fare prima un ricerca sul sito ufficiale del pacchetto scrivendo su un motore di ricerca python [pkg-name] install
o simili. Python ed i pacchetti che vi consigliamo sono talmente diffusi che difficilmente non troverete informazioni al riguardo. Nel mio caso, il primo risultato di google alla ricerca python jupyterlab install
rimanda alla pagina della documentazione con esattamente la linea che stavo cercando. Inoltre trovo la linea per installare lo stesso pacchetto usando conda e Mamba, due gestori di pacchetti alternativi che non useremo nel corso ma molto comodi sul lungo periodo.
I prof e gli esecitatori sono qui per aiutarvi. Se anche dopo una prima ricerca vi trovate in difficoltà chiedete tranquillamente aiuto a noi.
Installazione Editor
Per poter scrivere codice, è necessario utilizzare un editor di testo e programmi di videoscrittura quali Microsoft Word non sono adatti a questo scopo.
Ne esistono di vario tipo, quindi vi consigliamo di cercare ed installare quello più adatto a voi. Alcuni consigli da cui partire sono:
Primi passi con il codice
Durante il corso ci interfacceremo spesso con il terminale di Linux. Seguite la guida appositva per imparare ad utilizzarlo.