Installare AnyDesk 6.2.0 su Fedora 36

Da circa un paio di anni a questa parte, sto utilizzando AnyDesk come alternativa a TeamViewer per gestire l’accesso remoto su altri PC… sorvoliamo sul fatto che su GNU\Linux esistono svariati altri programmi da utilizzare come alternativa, ma considerando che li utilizzo esclusivamente per provare a risolvere i problemi sui PC di amici e parenti, non mi sembra il caso di utilizzare programmi che richiedono configurazioni un attimo più “impegnative”.

Mi sono accorto in questi giorni che, dopo più di un anno, era stata rilasciata una nuova versione di AnyDesk per linux quindi mi sono apprestato a scaricare l’ultimo pacchetto rpm per aggiornare la versione presente sul mio PC.

Purtroppo provando ad installare l’ultima versione (la 6.2.0 per l’appunto), ricevo un errore di una dipendenza mancante:

sudo dnf install anydesk_6.2.0-1_x86_64.rpm
Errore: 
 Problema: conflicting requests
  - nothing provides libgtkglext-x11-1_0-0 needed by anydesk-6.2.0-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages)

Lo stesso errore si presenta anche provando ad aggiungere ed installando il pacchetto tramite il repository di AnyDesk.

L’unico pacchetto che fornisce la libreria “mancante” richiesta è gtkglext-libs, tra l’altro già presente perché installato come dipendenza della precedente versione di AnyDesk.

Facendo qualche ricerca su internet ho trovato questo thread che mi è stato utilissimo nella risoluzione del problema (il link punta direttamente al post che mi ha aiutato a risolvere il problema):
anydesk 6.2 on Fedora (missing libgtkglext-x11-1_0-0)

Al momento credo sia l’unica soluzione valida, ovvero quella di modificare il pacchetto rpm modificando il file spec del pacchetto (dove vengono indicate tutte le dipendenze necessarie).

Per ovviare al problema sarà necessario scaricare il pacchetto rpm e modificarlo con rpmrebuild.

Qualora non sia già presente sul sistema, si dovrà installare rpmrebuild con il comando:
sudo dnf install rpmrebuild
in seguito sarà possibile modificare il pacchetto rpm di AnyDesk…

Premetto che quello fornito dal repository per Fedora è lo stesso che viene fornito per openSUSE (non quello per RedHat/CentOS), che è quello che ho sempre utilizzato anch’io.

Da terminale sarà sufficiente spostarsi sul percorso deve è presente il file rpm, ad esempio:
cd /home/utente/Scaricati
(o eventualmente specificare il percorso dove è situato il file rpm nel comando seguente) e utilizzare rpmrebuild con il seguente comando:
rpmrebuild -enp anydesk_6.2.0-1_x86_64.rpm

È stato invocato il comando rpmrebuild fornendo tre opzioni: -e, -n e -p.
La prima opzione, -e, è l’abbreviazione di --edit-specfile e serve a dire al programma che si vuole modificare lo specfile del pacchetto; la seconda, -n, abbreviazione di --notest-install modifica il comportamento del programma in modo che l’rpm generato non venga installato automaticamente alla fine del processo di costruzione.

Infine, usando l’opzione -p o --package, si specifica che si vuole usare un file di pacchetto .rpm effettivo come base della ricostruzione, invece di usare un rpm già installato.

Una volta eseguito il comando precedente, il file spec verrà aperto in un’istanza dell’editor di testo predefinito. Quello che occorre fare è modificare una stringa Requires, per modificare la dipendenza mancante… nello specifico occorrerà sostituire la stringa:
Requires: libgtkglext-x11-1_0-0
con:
Requires: libgtkglext-x11-1.0.so.0()(64bit)

Al termine della modifica sarà necessario salvare le modifiche apportate al file e chiudere l’editor di testo, verrà quindi visualizzato un prompt sul nostro terminale che ci chiederà se vogliamo procedere e compilare il pacchetto modificato
Do you want to continue ? (y/N)

Rispondendo affermativamente e premendo invio, inizierà il processo di ricostruzione del pacchetto (potrebbe richiedere un po’ di tempo).

È importante notare che l’rpm specificato non verrà modificato sul posto, ma ne verrà generato uno nuovo, basato su di esso. Alla fine del processo, il nuovo rpm si troverà nella cartella
$HOME/rpmbuild/RPMS/x86_64/