Installare Tex Live 2021 – Aggiornare da Tex Live 2020
Indice - Table of Contents
Introduzione
Da qualche settimana è disponibile la nuova versione Tex Live 2021, un sistema TeX completo per tutti i sistemi operativi da GNU/Linux ai vari Unix in generale (e.g. BSD), Macintosh, Microsoft Windows ed altre piattaforme.
Comprende programmi per la scrittura, la composizione tipografica, la visualizzazione e la stampa di documenti TeX con un’ampia raccolta di macro TeX e raccolte di caratteri tipografici. La distribuzione include una vasta documentazione generale su TeX, così come la documentazione per i pacchetti software inclusi.
Mi sono già occupato dell’installazione Tex Live, versione 2020, su sistemi GNU/Linux e di preciso nell’articolo Installare Tex Live in GNU/Linux. Questa volta non solo illustrerò l’installazione da zero ma anche l’aggiornamento di una versione già esistente.
Installare TeX Live 2021
La procedura è di fatto uguale alla versione TeX Live 2020. Il punto di partenza rimane sempre il download dell’ultima versione del file (archivio) install-tl-unx.tar.gz il quale, una volta salvato in una cartella della propria home utente, dovrà essere decompresso.
La decompressione creerà la cartella install-tl-annomesegiorno all’interno della quale si dovrà lanciare – con i permessi dell’utente amministratore in un terminale o utilizzando il comando sudo per quelle distribuzioni che lo abilitano di default – il file install-tl; se non si specificano opzioni si procederà all’installazione in modalità testuale che in questo contesto non prenderò in considerazione (poco pratica per illustrare via web con immagini una procedura. Un video sarebbe più adeguato).
Il file install-tl è di fatto un file Perl che contiene tutte le istruzioni necessarie all’installazione del sistema TeX completo. Per procedere per via grafica occorre assicurarsi di aver installato il toolkit Tk nonché il pacchetto Perl-Tk (o nome simile a seconda delle distribuzioni in uso). A questo punto è sufficiente lanciare il comando ./install-tl -gui per vedere apparire una prima finestra che imposterà automaticamente il mirror dal quale verrà effettuato il download di tutto il necessario per l’installazione e per i futuri aggiornamenti. Dopo qualche secondo, se il mirror predefinito è raggiungibile, apparire la finestra di installazione di TeX Live 2021 (visibile di lato, click per ingrandirla).
Optare subito per il pulsante Avanzate e nelle nuova finestra impostare il percorso di installazione. Personalmente scelgo sempre il percorso /opt/texlive/anno_versione cliccando sul pulsante Cambia associato al rigo TEXDIR: Posizione dell’installazione e cambiando solo la prima parte del percorso nella nuova finestra (in primo piano in basso) cliccando sul pulsante Sfoglia. Questa procedura termina la sezione Cartelle nella parte di sinistra della finestra.
Nel procedere lascio tutto invariato nelle sezioni Piattaforme e Selezioni (in quest’ultima mi assicuro che in N. di collezioni sia presente 40 / 41, la 41esima collezione è per sistemi Microsoft Windows che in questo contesto è di non interesse). Notare in basso a sinistra come lo spazio richiesto su hard disk si aggiri intorno ai 7,1GB!
Nella parte di destra nell’unica sezione Opzioni spunto la casella Crea i collegamenti simbolici nelle cartelle di sistema assicurandomi, cliccando sul pulsante Specifica le cartelle, che i percorsi siano /usr/local/* e questo perché tali percorsi sono visibili da tutti gli utenti senza doverlo specificare modificando la variabile d’ambiente PATH (sebbene una modifica, seppur provvisoria, si renda necessaria qualora si optasse in futuro per un upgrade in luogo di una installazione da zero. Leggere oltre).
Chiusa la pop-up dei collegamenti simbolici occorre cliccare in basso a destra su Installa al fine di procedere all’installazione che durerà un po’ di tempo (circa 40 minuti nel mio caso) in funzione della velocità di linea della propria connessione.
Al termine è sufficiente cliccare su chiudi per avere a disposizione il nuovo ambiente TeX Live 2021. Analogamente alla versione 2020, al fine di verificarne il corretto funzionamento si può fare un semplice test integrato: si apra un terminale e si impartisca il comando latex small2e. Dopo qualche secondo di compilazione – figura al lato – nel punto dove è stato aperto il terminale dovrà essere presente il file small2e.dvi da aprirsi con un lettore dvi o pdf (ad esempio Okular in ambiente KDE, documento in basso) per vedere il risultato del test e/o convertirlo in formato ps con dvips small2e.dvi oppure convertirlo in pdf con dvipdfm small2e.dvi.
Aggiornare i pacchetti TeX Live 2021
In seguito all’installazione, così come avveniva per la versione precedente, per procedere all’aggiornamento dei vari pacchetti è possibile utilizzare il tool tlmgr (script Perl) impartito con le credenziali dell’amministratore (o con comando sudo anteposto per quelle distribuzioni che lo installano in maniera predefinita). Si è liberi di approfondirne l’uso consultando il manuale online tlmgr --help. Tale comando è presente come link simbolico in /usr/local/bin/ (immagine a lato, comando which). Il link punta all’omonimo tlmgr in /opt/texlive/2021/bin/x86_64-linux/ in realtà anch’esso un link simbolico che punta al reale script Perl in /opt/texlive/2021/texmf-dist/scripts/texlive/. Come primo passo si può verificare se esiste un aggiornamento dello stesso gestore con tlmgr update --self. Lo storico degli aggiornamenti del gestore integrato è possibile visionarlo al link tlmgr news.
Notare come lo script sia visibile poiché è stata spuntata la casella Crea i collegamenti simbolici nelle cartelle di sistema durante la fase di installazione. Qualora non la si fosse spuntata si sarebbe dovuto aggiungere il percorso specifico alla variabile d’ambiente PATH la quale, come noto, in maniera predefinita – praticamente in quasi tutte le distribuzioni – punta ai percorsi riportati in figura a lato ottenibili con il classico comando echo $PATH oppure, per una migliore leggibilità, echo $PATH | tr : \\n (man tr per approfondimenti) od anche il comando, con medesimo output, echo $PATH | sed s/:/’\n’/g (per approfondimenti man sed) oppure con export | grep -w PATH e così via a seguire.
Per verificare se esistono ambienti da aggiornare, di nuovi – eventualmente da utilizzarsi per specifici scopi – da installare e/o di deprecati da rimuovere è sufficiente impartire il comando tlmgr update --list con il quale vengono solo elencati gli ambienti, ma non si procederà ad alcuna installazione. Per rendere esecutiva l’installazione occorrerà impartire il comando tlmgr update --all e attendere che termini l’aggiornamento: in genere il tempo necessario dipende dalla velocità della linea e dal numero di pacchetti/ambienti da aggiornare. Esattamente come la versione precedente, è possibile recuperare spazio rimuovendo il contenuto della cartella /opt/texlive/2021/tlpkg/backups/.
Tex Live 2021 da Tex Live 2020
Si premette che non c’è alcun motivo specifico per non eseguire una installazione ex-novo in luogo di un aggiornamento di versione, anche perché l’aggiornamento prevede qualche passaggio meno semplice per chi mastica poco l’ambiente GNU/Linux. Ad ogni modo tutto i passaggi necessari vengono riportati nel seguito e a prova di errore.
Fatta la debita premessa nel seguito illustrerò la procedura per aggiornare TeX Live sul mio portatile dalla versione 2020 alla 2021 osservando come sul suddetto l’installazione non la effettuo in /opt/texlive/ (come nel PC desktop) bensì nel percorso /usr/local/texlive/.
Passo numero 1
Seguendo la procedura ufficiale il primo passo vede la “copia conforme” della intera directory 2020 nella nuova 2021 preservando tutti i link simbolici. Si potrebbe rinominare la cartella 2020 presente in /usr/local/texlive in 2021, ma non è consigliato poiché si potrebbe perdere l’attuale installazione se qualcosa dovesse andar male e senza nessuna chance di poterla ripristinare.
Per effettuare la copia 1:1 preservando i link simbolici è sufficiente aprire una shell nel percorso /usr/local/texlive quindi impartire il comando, che creerà anche la cartella 2021, cp -ar 2020 2021 e attendere il tempo necessario al completamento della copia (parliamo di circa 7GB). Poiché l’utente normale non ha accesso in scrittura in /usr/local/ va da se che il comando dovrà essere impartito da utente amministratore oppure facendolo precedere da sudo per quelle distribuzioni che lo abilitano di default. Al solito, se presenti dei backup, è possibile salvare spazio rimuovendo tutto il contenuto della cartella /usr/local/texlive/2021/tlpkg/backups/ o direttamente in /usr/local/texlive/2020/tlpkg/backups/ prima di eseguire la copia.
Passo numero 2
Il passo successivo vede la rimozione dei link simbolici che – almeno io – faccio creare dall’installer durante la fase di installazione. I link simbolici sono presenti in /usr/local/bin/ e attualmente puntano tutti /usr/local/texlive/2020/bin/x86_64-linux/. Il motivo è semplice; il percorso /usr/local/bin/ è nel percorso predefinito della variabile d’ambiente PATH praticamente in tutte le distribuzioni, come riportato nel paragrafo precedente. Per la loro rimozione è sufficiente impartire il comando tlmgr path remove.
Passo numero 3
A questo punto non avendo più link simbolici la shell non vedrà più gli eseguibili/script di TeX Live pertanto occorre impostare – anche temporaneamente – il nuovo percorso aggiungendolo alla variabile d’ambiente PATH. Per questa operazione occorre ricordare come la shell venga configurata all’avvio di una sessione al livello di sistema così come per ogni singolo utente. A chi non fosse avvezzo suggerisco la lettura – quanto meno un “ripasso” per un refresh della memoria – del mio articolo Shell bash: i file di configurazione.
Si potrebbe pensare da utente “normale” ad un qualcosa del genere:
echo 'export PATH=$PATH:/usr/local/texlive/2021/bin/x86_64-linux/' >> /home/nome_utente/.bashrc
Questo però aggiorna il percorso solo per l’utente interessato e non per tutto il sistema, quindi è evidente come, ad esempio, al riavvio della nuova sessione l’utente root non veda quel percorso poiché la sua variabile PATH non è stata cambiata. Allora si può operare in due modi differenti. Lo stesso comando eseguito dall’utente amministratore sul proprio file .bashrc, presente nella cartella /root (la cartella dell’utente amministratore), in sostanza:
echo 'export PATH=$PATH:/usr/local/texlive/2021/bin/x86_64-linux/' >> /root/.bashrc
oppure aggiungere un file .sh di nome qualsiasi in /etc/profile.d/ che riporti il nuovo percorso. Tale ocmando da impartirsi, ovviamente, come utente amministratore (infatti l’utente “normale” non ha nemmeno l’accesso in lettura alla cartella /root).
Si fa presente che questa “modifica” va fatta sempre e comunque a prescindere, anche se si ha una versione di TeX Live installata in /opt/texlive/. In questo caso per la variabile d’ambiente PATH va specificato il percorso /opt/texlive/2021/bin/x86_64-linux/ in luogo di /usr/local/texlive/2021/bin/x86_64-linux/.
Riavviamo la sessione e verifichiamo con echo $PATH che il nuovo percorso sia visibile dall’utente amministratore.
Ma …sorpresa! 🙂
In realtà esiste un terzo metodo com’è consuetudine sui sistemi GNU/Linux (e di questo non c’è nulla di cui meravigliarsi!). Prima di tutto si fa presente che per portare a termine l’aggiornamento di TeX Live 2021 non vi è alcun motivo per il quale occorra riavviare il sistema. Allora è pensabile fornire un comando che faccia vedere temporaneamente alla shell il percorso di interesse senza modificare alcun file. Ad esempio il seguente comando impartito da root:
export PATH=$PATH:/usr/local/texlive/2021/bin/x86_64-linux/
In questo modo è stato temporaneamente aggiunto ai percorsi visibili in maniera predefinita, anche il percorso riportato e senza mettere mano ad alcun file di configurazione sia esso di sistema o relativo ad uno specifico utente. Va da se che tale impostazione verrà persa al successivo riavvio, o meglio, all’uscita dall’attuale sessione di root (vedere figura a lato, click per ingrandirla), ma la cosa non ci interessa perché, come vedremo, si andranno a creare nuovamente i link simbolici nel percorso visibile in maniera predefinita dalla shell, i.e. /usr/local/bin/.
NOTA: Si fa presente che questa procedura non è necessaria per quelle distribuzione che abilitano di default il comando sudo, poiché esso darà all’utente “normale” temporaneamente i diritti di scrittura necessari a compiere le suddette operazioni. Naturalmente se un percorso non è visibile occorrerà sempre aggiungerlo nel modo indicato indipendentemente o meno dall’uso di sudo.
Passo numero 4
Rimanendo sempre loggati come utente amministratore spostiamoci nella cartella 2021 e scarichiamo nel percorso corrente il file update-tlmgr-latest.sh ad esempio con:
wget https://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
quindi lanciare il file appena scaricato con il comando:
sh update-tlmgr-latest.sh -- --upgrade
per vedere in pochi secondi un output del tipo:
Passo numero 5
A questo punto occorre installare/aggiornare/rimuovere tutto il necessario per il passaggio definitivo alla versione 2021. Infatti occorre ricordare come la cartella 2021 sia una copia della 2020 e pertanto contiene tutti gli ambienti della precedente versione di TeX Live. Per tale scopo è sufficiente impartire il comando:
tlmgr update --self --all
e pazientare – nel mio caso circa 50 minuti – affinché tutta la procedura possa essere portata a termine (sequenza di immagini in basso).
Passo numero 6 – Il finale
Gli ultimi passi vedono il lancio del comando luaotfload-tool -fu al fine di interrogare il database, aggiornarlo e indicizzare i nuovi font (laddove presenti).
A questo punto si possono ripristinare i link simbolici con tlmgr path add terminando così la procedura.
Prima di uscire dalla sessione di root se si vuole si può rimuovere la vecchia installazione andando nel percorso /usr/local/texlive quindi impartire il comando rm -rf 2020 (attenzione a non sbagliare!) per la cancellazione definitiva. In realtà ci si potrebbe affidare al tool tlmgr presente nell’installazione 2020, il punto è che sono presenti dei link simbolici in /usr/local/man/* ed altre locazioni che potrebbero indurre in errore il suddetto script.
Altrimenti si può sempre invertire la dinamica:
- Si rimuove la vecchia installazione con il tlmgr presente nella 2020 nel percorso /usr/local/texlive/2020/bin/x86-64-linux/, da non confondersi con il tlmgr presente in /usr/local/texlive/2021/bin/x86-64-linux/ altrimenti si va a rimuovere la versione appena installata! ;
- Si aggiungono i link simbolici con il tlmgr (a questo punto l’unico presente) della versione 2021.
Infine, qualora eseguita, si rimuova la modifica al file .bashrc.
Un pensiero su “Installare Tex Live 2021 – Aggiornare da Tex Live 2020”