Dato che è invecchiato più di 30 anni (la prima release risale al 1993!) dovremo conoscere bene Wine, il programma per sistemi UNIX che consente di "far girare" i programmi per Windows. Sappiamo bene ormai che non è un emulatore (come dice il nome, acronimo ricorsivo che sta per "Wine Is Not an Emulator") ma una piattaforma che consente di tradurre le chiamate di sistema fatte dai programmi per Windows in qualcosa di comprensibile per sistemi UNIX. Sappiamo anche che, nonostante l'ottimo lavoro di sviluppatori e contributori, ha alcuni limiti, uno su tutti quello di offrire, di base, solo uno stesso ambiente comune a qualsiasi programma si installi. Ma la configurazione di Wine necessaria per alcuni programmi può non essere funzionale per altri, ogni programma può richiedere una messa a punto diversa dagli altri. Per questo sono nate delle interfacce per Wine in grado di creare facilmente ambienti unici (detti Windows prefix o WINEPREFIX dal nome della variabile associata) la cui configurazione può essere ottimizzata per programmi diversi, senza fare la messa a punto delle impostazioni o creare manualmente configurazioni diverse ogni volta che si vuole avviare un programma. L'ultimo arrivato in questo campo è, appunto, Bottles che sfrutta le caratteristiche di Flatpak e riesce ad isolare e confinare in sandbox anche i programmi per Windows.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Qualcuno starà già pensando: "ma a che serve la sandbox? I virus per Windows possono attaccare anche Linux attraverso Wine??". Se proprio lo volete sapere, la riposta è sì, anche se è altamente improbabile che funzionino correttamente. Ma la sandbox può servire anche e soprattutto per limitare l'accesso ai nostri file personali altrimenti completamente esposti al programma che vogliamo far girare: non solo sicurezza quindi, ma anche privacy.

La sandbox comunque non è la sola caratteristica di Bottles che ne ha molte altre assolutamente interessanti e che lo contraddistinguono dai programmi simili; elenchiamole velocemente:

  • non solo Wine, come base per l'esecuzione dei programmi Windows possono essere utilizzati altri "runners" (o Avviatori) tra cui versioni di Wine personalizzate dal team di Bottles come Caffe e Vaniglia o versioni ottimizzate per i giochi come Lutris, Proton e Proton-GE;
  • ha un gestore di dipendenze integrato e basato su un repository creato dalla comunità (utile per completare velocemente una configurazione per determinati programmi o giochi);
  • ha un sistema di controllo di versione, utile per ripristinare uno stato precedente di una "bottiglia";
  • dispone di ambienti già preconfigurati e ottimizzati per giochi o altri programmi;
  • offre la possibilità di creare, esportare, importare e clonare backup;
  • dispone del rilevamento automatico dei programmi installati;
  • offre la possibilità di configurare e personalizzare facilmente (tramite GUI) gli ambienti per programmi e giochi;
  • ha un gestore per l'installazione dei programmi con un clic, anche questo basato su un repository gestito dalla comunità.

INSTALLAZIONE

Adesso che abbiamo conosciuto un po' Bottles possiamo passare all'installazione!

Come detto, Bottles si presenta come una applicazione Flatpak e si installa quindi come già sappiamo; io preferisco il metodo da riga di comando.

» Leggi: [LINUX] Guida completa a Flatpak

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Una volta installato, al primo avvio di Bottles, ci sarà una breve (e abbastanza inutile...) presentazione e poco dopo verranno scaricati alcuni componenti indispensabili per il suo funzionamento e presenti su un repository pubblico. Lo sviluppatore utilizza questo sistema dove componenti e applicazione sono dissociati in modo da poter aggiornare i primi indipendentemente dalla seconda dato che i componenti si aggiornano più spesso e in tempi diversi rispetto all'applicazione; è un modo pratico per poter aggiornare velocemente i componenti senza dover ogni volta ricompilare il programma.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

A questo punto siamo pronti per creare una "bottiglia" e installare il nostro programma per Windows sulla nostra distro Linux! Ma prima andiamo a vedere un po' come si presenta Bottles e curiosiamo nelle impostazioni.

PREFERENZE

Bottles a questo punto si presenta con una finestra e due tab: Bottles e Libreria. Nella seconda, aperta per impostazione predefinita, potranno essere aggiunti collegamenti per l'avvio dei programmi installati nelle varie bottiglie. Queste ultime verranno create cliccando sull'altra tab (Bottles appunto). Questa è l'occasione giusta per far presente che in una bottle (o bottiglia) possono essere installati più programmi ma, per praticità e per farli convivere al meglio, converrà scegliere programmi che necessitano di una configurazione simile se non uguale; infine nessuno vieta di creare una bottiglia per ogni programma...

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Sempre nella barra in alto sono presenti un + che è una scorciatoia presente in ogni tab per creare una nuova bottiglia, un cuore che serve per fare una donazione allo sviluppatore in modo da supportare il progetto, una lente di ingrandimento simbolo universale che indica un metodo per eseguire una ricerca all'interno dell'app, molto utile in caso di numerose bottiglie e programmi installati e il classico menu ad "hamburger" (quello composto da tre linee orizzontali); da questo menù possiamo accedere alle preferenze (Preferences) oltre che ad una guida (Help), alle informazioni sul programma Bottles (About Bottles), alla configurazione delle scorciatoie da tastiera (Keyboard shortcuts) ed è infine possibile importare qualche bottiglia (Import) (magari esportata da un amico che ha già configurato un gioco...).

Vediamo un po' più in dettaglio Preferences; nella nuova finestra che si aprirà sono presenti, oltre alla solita icona per la ricerca rapida di una impostazione, 4 tab: Generale, Avviatore, Componenti DLL e Sperimentali.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Nella tab Generale ci sono poche impostazioni realmente interessanti, due su tutte è la possibilità di forzare la modalità offline anche con la connessione internet attiva sul sistema e la possibilità di gestire l'integrazione con Steam (una icona di un salvagente ci porterà alla documentazione contenente le istruzioni necessarie per la configurazione).

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Nella tab Avviatori, possiamo gestire i runners visti in precedenza. Per ogni tipo di avviatore ci sono diverse versioni disponibili; per impostazione predefinita sarà scaricato solo la versione più recente di Soda (che si affiancherà ad una versione di Wine integrata direttamente in Bottles). Non correte però a scaricarli tutti! Quelli necessari potranno essere installati automaticamente grazie al gestore per l'installazione dei programmi (che vedremo poi) o manuale se necessario per particolari giochi o programmi.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Nella terza tab troviamo Componenti DLL. Qui possiamo gestire diverse librerie grafiche tra cui DXVK, VKD3D, DXVK-NVAPI, LatencyFlex. Per ogni libreria, durante la configurazione iniziale, sarà stata scaricata l'ultima versione disponibile, di solito quella con meno bug e più compatibile con giochi recenti. Anche in questo caso non conviene installare manualmente altre librerie se non strettamente necessario per problemi con qualche gioco o programma.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Nell'ultima tab troviamo le funzioni Sperimentali di Bottles, nel momento in cui scrivo è presente solo una: la possibilità di isolare tramite sandbox una bottiglia da un'altra. Per impostazione predefinita, la sandbox di Bottles è infatti una sola che contiene tutte le bottiglie e quindi tutti i giochi e/o programmi installati.

CREAZIONE DI UNA BOTTIGLIA

Come detto con "bottiglia" si intende una configurazione ottimizzata di un ambiente per uno o più programmi e/o giochi. Portandosi nella tab Bottles e cliccando Crea nuova bottiglia... si aprirà una nuova finestra: qui avremo la possibilità di scegliere un nome per identificare subito la bottiglia che stiamo creando, potremo poi scegliere una configurazione di base già ottimizzata per giochi o altri programmi piuttosto che crearne una completamente personalizzata, dovremo scegliere un avviatore (per impostazione predefinita sarà sempre l'ultima versione di soda) e infine scegliere dove la configurazione di questa bottiglia sarà salvata (per impostazione predefinita, trattandosi di un'applicazione Flatpak, sarà ~/.var/app/com.usebottles.bottles/data/bottles/bottles/).

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Una volta scelte le suddette impostazioni, non ci rimane che cliccare su Crea e attendere la creazione della bottiglia. Durante il processo di creazione possiamo vedere che alcuni componenti vengono scaricati ed installati per approntare l'ambiente richiesto e rispettare la configurazione scelta.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

A questo punto siamo pronti per "riempire" la nostra bottiglia installando i nostri programmi ma prima diamo un occhiata alla configurazione della bottiglia appena creata, cliccandoci sopra.

Nella schermata che si presente abbiamo subito un idea di che bottiglia sia: Win64 indica che possiamo eseguire programmi per architettura a 64bit, Gaming indica il tipo di configurazione di base scelto e infine è presente il tipo di avviatore.

Poco più sotto Avvia eseguibile ci consente di avviare un programma di installazione scegliendolo dal disco e la ruota dentata a fianco ci permette di impostare delle opzioni da passare all'eseguibile al momento dell'avvio.

Nella sezione Programmi troviamo un tasto (Installa programmi...) che ci consente di installare i programmi presenti nel repository e uno per la creazione di collegamenti per l'avvio dei programmi installati (vi ricordo ancora che ogni bottiglia può contenere più programmi), funzione che si rende necessaria solo in particolari situazioni e con particolare programmi, dato che Bottles è in grado di rilevare automaticamente gli eseguibili installati.

Saltiamo all'ultima sezione, Strumenti, troviamo la possibilità di modificare il registro di sistema e aprire un prompt dei comandi; sono presenti anche i vecchi strumenti di Wine (come Esplora file, Pannello di controllo, Configurazione, Disinstallazione,...) non più utili dato che Bottles offre strumenti migliore per fare le stesse cose.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

La sezione più interessante è sicuramente quella che abbiamo saltato: Opzioni. Qui possiamo creare un Snapshot delle impostazioni della bottiglia (da fare assolutamente prima di sperimentare e modificare le impostazioni!), controllare l'attività dei programmi in esecuzione nella bottiglia, scegliere quali altre Dipendenze aggiungere o modificare tutte le Impostazioni. Da quest'ultimo menu possiamo non solo di modificare l'avviatore e scegliere diverse versioni delle librerie grafiche ma è anche possibile applicare diverse opzioni per il miglioramento della resa grafica e delle prestazioni generali del gioco. Presente anche la possibilità di scegliere opzioni per migliorare la compatibilità (utili per programmi o giochi più datati) e infine è possibile personalizzare il funzionamento degli Snapshot, ad esempio, rendendoli automatici per ogni modifica o salvarli compressioni per risparmiare spazio.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Qualora volessimo esportare o eliminare una bottiglia, duplicarla, fare un backup completo o copiare la configurazione è possibile utilizzando il menu che si presenta cliccando sui tre puntini in alto a destra. Da qui è possibile anche sfogliare i file presenti nel drive_c (così come in Wine, rappresenta il C: per i programmi installati) mostrare programmi nascosti o cercare nuovi programmi installati dentro la bottiglia.

Il menu presente sempre in alto a destra accessibile cliccando il simbolo per accensione/spegnimento consente di arrestare, riavviare o terminare tutti i processi della bottiglia.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Adesso è davvero arrivato il momento di installare un programma all'interno della nostra bottiglia!

INSTALLAZIONE DI UN PROGRAMMA

Come abbiamo visto è possibile installare un programma direttamente dalla bottiglia dove questo verrà poi eseguito, con il tasto Avvia eseguibile: si aprirà una finestra del gestore file dove potremo cercare e selezionare il file.exe dell'installer del programma e cliccando su Esegui, partirà subito l'installazione.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Se tutto è configurato per il meglio e se il gioco è pienamente supportato dall'avviatore scelto, l'installazione procederà senza ostacoli e, al termine, sarà possibile lanciare subito il gioco. In caso di problemi si può provare a verificare se le dipendenze richieste dal programma/gioco sono installate o provare a cambiare avviatore.

Possiamo vedere come la schermata della nostra bottiglia sia cambiata: adesso, in Programmi, è presente un nome riferito al gioco, collegamento all'eseguibile del programma appena installato e alla sua destra sarà presente un'icona di Play (o di Stop se abbiamo già avviato il gioco). Se clicchiamo sui tre puntini alla destra di Play, si aprirà un menu dove potremo scegliere diverse opzioni tra cui lanciare l'eseguibile da terminale (utile per vedere se c'è qualche errore), ispezionare la cartella dove è stato installato il gioco, rinominare il lanciatore il gioco o aggiungere delle opzioni da passargli, aggiungere un collegamento al Desktop o alla nostra Libreria per avviare più rapidamente il nostro gioco, nascondere il programma oppure disinstallarlo.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Come detto in precedenza, è disponibile anche un repository di programmi installabili direttamente con un clic. Questi sono visibili selezionando Installa Programmi: qui possiamo trovare la lista di quelli disponibili e anche il grado di supporto (Platinum, Gold, Silver, Bronze secondo la classificazione ripresa da Wine). Possiamo notare come molti siano delle piattaforme dove è possibile acquistare e scaricare altri giochi ma ci sono anche utili programmi come Evernote, Ableton Live o Autodesk Fusion (NB: sono versioni di prova che richiedono una valida licenza!).

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Per installare uno di questi programmi occorrono esattamente due clic: uno sull'icona del dischetto accanto al programma scelto e una di conferma sulla nuova finestra che si aprirà. Bottles si occuperà di scaricare e installare le dipendenze necessarie, di applicare la configurazione migliore e infine di scaricare e installare il programma scelto, a noi non rimane che attendere pazientemente la fine di tutte le operazioni, quando il programma dovrebbe avviarsi automaticamente e confermare la fine dell'installazione con Mostra programmi.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

GLI SNAPSHOT

Nel caso in cui voleste sperimentare per trovare una configurazione migliore o più performante senza però rischiare di perdere le impostazioni attuali, gli snapshot (o istantanee) sono una valida soluzione che consente di tornare in brevissimo tempo ad una configurazione precedente. Se intendete fare diverse prove, la cosa migliore è quella di abilitare le Istantanee automatiche nelle impostazioni della bottiglia, così che, ad ogni modifica alla configurazione della bottiglia, verrà creata un'istantanea. Nel caso voleste solo fare una prova potete fare a meno di abilitare questa funzione e creare, al bisogno, un'istantanea manualmente: è possibile farlo da Snapshots, cliccare sull'icona +, inserire un breve commento, ad esempio, per ricordare che operazione andremo a fare e infine fare clic sul segno di spunta.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

Per ripristinare lo stato di una istantanea sarà sufficiente tornare in Snapshots, selezionare l'istantanea da ripristinare e subito apparirà un messaggio dove poter confermare il ripristino che avverrà in pochi secondi a secondo dei cambiamenti da effettuare.

[LINUX] "Imbottiglia" giochi programmi Windows Flatpak: guida Bottles

DISINSTALLAZIONE DI UN PROGRAMMA

Per disinstallare un programma è possibile utilizzare l'apposita voce del menu vista in precedenza ma durante le mie prove non ha sempre funzionato. Se abbiamo un solo programma installato possiamo risolvere facilmente eliminando la bottiglia: questo infatti eliminerà tutte le configurazioni fatte, le dipendenze installate e anche i programmi installati al suo interno. In alternativa possiamo utilizzare la funzione Avvia eseguibile per provare a lanciare il programma di disinstallazione di solito contenuto nella cartella del programma o tentare con gli Strumenti di Wine obsoleti (nel mio caso, è stato l'unico metodo funzionante!). Se anche queste opzioni non dovessero funzionare, possiamo rimuovere la voce del programma dall'elenco e se vogliamo recuperare un po' di spazio, andare a cancellare i file e le cartelle relative all'interno del percorso ~/.var/app/com.usebottles.bottles/data/bottles/bottles/<nome_bottigli>/drive_c/Program Files o ~/.var/app/com.usebottles.bottles/data/bottles/bottles/<nome_bottiglia>/drive_c/Program Files (x86).

CONCLUSIONI

Si trovano molti articoli riguardo a Bottles che lo presentano però in maniera sommaria, indicandolo come la soluzione definita per utilizzare qualsiasi programma per Windows su Linux. Purtroppo la realtà è un po' diversa ma non è affatto un limite di Bottles che anzi non può che essere apprezzato da chiunque abbia mai provato ad utilizzare Wine. Il vero problema è e rimane il supporto degli avviatori (Wine e simili) ai programmi per Windows, tutt'altro che facile da realizzare e mantenere.

Bottles riesce davvero a semplificare l'esecuzione dei programmi di Windows su Linux (a patto che questi siano supportati in maniera adeguata!) e rappresenta una valida soluzione (probabilmente la migliore tra quelle free ed open) per questo scopo, da prendere però in considerazione solo e soltanto se non si trovano alternative che funzionano nativamente su Linux; molto spesso è meglio accontentarsi di un programma con meno funzioni o più spartano piuttosto che tentare la strada delle bottiglie. Prima di provare anche solo ad installare Bottles per avviare un preciso programma, consiglio di documentarsi al meglio per sapere se questo funziona o meno e quale medaglia conquista: se non è nei primi 3 (Platinum, Gold, Silver), meglio cercare delle alternative... al programma, non a Bottles!

Per concludere Bottles è una bellissima idea, ispirata ad alcuni predecessori (come PlayOnLinux) ma ampliata nelle funzioni e migliorata nell'usabilità, molto ben realizzata in un programma completo e curato che richiede ancora un po' di lavoro per migliorare qualche aspetto (disintallazione dei programmi!) ed essere poi considerato davvero perfetto. Se lo utilizzate attivamente, ricordatevi di supportare il progetto!