Also sprach Alessandro

Installare Qt 5.12 e Qt 5.9 con il Qt online installer

Stamattina ho rimosso l’ambiente 5.12.4. “Poco male, avvio Maintenance tool e lo reinstallo”: sorpresa! Lo hanno rimosso.

Le strade sono dunque due:

  1. Usare l’offline installer, dove al termine dell’installazione mi sono però ritrovato con un Maintenance Tool non aggiornato e privo di repository Qt (addio aggiornamenti);
  2. Ingannare il Qt Online Installer.

Non essendo riuscito ad ottenere ciò che volevo col metodo 1, ho provato ad ingannare il secondo.

Usare l’offline installer

Banalmente, scaricare l’installer opportuno per il proprio SO da qui per la 5.12.4 o da qui per la 5.9.9.

Ingannare il Qt Online Installer

I punti esplicitati nella guida sono:

  1. Installare un proxy HTTP che intercetti le richieste/risposte e ne permetta la modifica; a. Predisporre l’ambiente a catturare unicamente la regex che ci interessa.
  2. Configurare Qt Installer (dal pulsante impostazioni del tool stesso) affinché venga usato il proxy;
  3. Lanciarlo
  4. Attendere la GET e catturarne la risposta. La risposta è un JSON: modificarlo aggiungendoci, per ogni versione di Qt che vogliamo aggiungere, 2 entry: toolchain e documentazione.

Procedere all’installazione da GUI di Qt.

Guida pratica (qualora andasse offline)

Installazione del proxy

Installare e lanciare il proxy:

$ apt install mitmproxy && mitmweb

Si aprirà una pagina sul browser web. Andare nelle impostazioni del browser e configurare come HTTP e HTTPS proxy: 127.0.0.1:8080

Impostare dunque come regex: iapi\.qt\.io\/api\/v2\/repositories.+

Premere dunque nella pagina web di mitmproxy il pulsante blu “mitmproxy” -> Install certificates. Questo aprirà una pagina con alcune instruzioni da seguire per installare i certificati, che riassumo in:

  1. scaricare un file .pem;
  2. spostarlo in /usr/local/share/ca-certificates/;
  3. $ sudo update-ca-certificates.

Installazione

Avviare il Qt online installer e configurarlo (da pulsante in basso a sx) affinché usi come proxy 127.0.0.1:8080 (potrebbe essere necessario impostarlo anche per server FTP). Inserire le credenziali e proseguire.

A questo punto dovrebbe bloccarsi a “Fetching […]”. Andare sull’interfaccia del proxy: vi sarà una entry in arancione in sospeso. Cliccandoci sopra si aprirà la sezione “Flow” in alto nell’applicativo: premere su Resume.

Ora sarà arrivata la risposta da parte del server: nel riquadro a destra cliccare sulla scheda (tab) Response. Premere “Edit flow” (icona matita), copiare il JSON in un editor (o un beautifier) e aggiungere

{
    "action": "add",
    "categories": ["Latest releases", "Archive"],
    "name": "Qt linux-x86 Desktop Qt5.9.9 online repository",
    "releasedate": "2019-12-10T11:00:00.000Z",
    "url": "https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt5_599/"
}, {
    "action": "add",
    "categories": ["Latest releases", "Archive"],
    "name": "Qt Linux-x86 Qt5.9.9 src online repository",
    "releasedate": "2019-12-10T11:00:00.000Z",
    "url": "https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt5_599_src_doc_examples/"
}, {
    "action": "add",
    "categories": ["Latest releases", "Archive"],
    "name": "Qt Linux-x86 Desktop Qt5.12.12 online repository",
    "releasedate": "2021-11-24T11:00:00.000Z",
    "url": "https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt5_51212/"
}, {
    "action": "add",
    "categories": ["Latest releases", "Archive"],
    "name": "Qt Linux-x86 Qt5.12.12 src online repository",
    "releasedate": "2021-11-24T11:00:00.000Z",
    "url": "https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt5_51212_src_doc_examples/"
}

Inserire quindi il nuovo JSON come Response e proseguire premendo Resume. Una volta giunti alla schermata “Welcome” dell’installer, disattivare il proxy e continuare l’installazione normalmente dal Qt installer.

Conclusione

Maledetti.