Il mio tentativo di trasformare un vecchio telefono Android in un server Linux si è concluso con la sperimentazione di diverse distribuzioni Linux.
Ma che ne dite di trasformare il vostro telefono Android in un server domestico, in grado di competere con dispositivi come il Raspberry Pi? Questo mi ha portato a un'altra idea e ho deciso di provare questo progetto. Dopotutto, avevo già provato a far girare giochi per PC sul mio smartphone, quindi far girare container Linux non dovrebbe essere troppo difficile, giusto? Beh, non esattamente. A causa delle limitazioni dovute alla mancanza di privilegi di root, sono riuscito a far girare solo poche distribuzioni sul mio telefono e ho ottenuto una configurazione migliore per passare da una distribuzione all'altra rispetto all'esecuzione di servizi pacchettizzati.
Selezionare i pacchetti appropriati per questa configurazione.
Alla fine ho scelto di installare Temux + proot-distro.
La sfida più grande in questo progetto è stata trovare una configurazione che funzionasse in modo affidabile senza dover effettuare il rooting del telefono. In passato, effettuavo il jailbreak dei miei telefoni subito dopo l'acquisto. Ma con tutte le restrizioni imposte dalle app moderne, ho pensato che fosse meglio evitare la strada del rooting.
Sfortunatamente, il metodo diretto per eseguire i container richiede una macchina con root e, in alcuni casi, persino moduli kernel personalizzati. Questa limitazione mi ha costretto a cercare un'alternativa. L'esecuzione di macchine virtuali, anche quelle eseguite tramite chroot, presentava un problema simile su macchine non con root.
Questo mi ha lasciato con una soluzione alternativa che coinvolgeva Termux, un potente emulatore di terminale che uso spesso nei miei progetti Android. Una breve ricerca casuale su GitHub mi ha portato a proot-distro, che mi è sembrato il pacchetto perfetto per questo esperimento. In sostanza, crea un ambiente proot (una variante user-space di chroot), dove posso sperimentare con le distribuzioni Linux a mio piacimento. Non immaginavo che questo mi avrebbe presto portato a un viaggio tra le distribuzioni.
Sperimentare le distribuzioni Linux su Android
All'inizio proot-distro funzionava bene.
Completati tutti i preparativi, era giunto il momento di portare il progetto alla fase successiva. Dopo aver eseguito il comando `pkg install proot-distro` in Termux, ho atteso qualche minuto affinché i pacchetti necessari venissero scaricati. Poi, ho eseguito il comando `proot-distro install debian` per iniziare a configurare l'ambiente Debian sul mio smartphone. Una volta completata l'installazione, ho eseguito il comando `proot-distro login debian` per accedere a Debian e, come previsto, il famoso sistema operativo Debian era in esecuzione sul mio telefono.
Dato che non potevo eseguire alcun pacchetto con privilegi sudo, ho iniziato aggiornando i pacchetti usando i soliti comandi `apt update` e `apt upgrade`. Poi, ho provato a installare alcuni pacchetti standard, tra cui DokuWiki. Ma la maggior parte dei pacchetti ha fallito immediatamente. Ho anche provato a installare Docker, che ha generato alcuni errori. Incurante di questi tentativi falliti, ho rivolto la mia attenzione a Podman, che si è rifiutato di funzionare. Ripensandoci ora, la cosa aveva perfettamente senso, dato che ho dovuto apportare alcune modifiche al kernel per far funzionare i runtime dei container sul mio telefono.
Ma non sono riuscito a eseguire le app root.
Dopo aver navigato un po' su GitHub, ho trovato il repository proot-apps. Come avrete già intuito dal nome, si tratta di una raccolta di applicazioni degli sviluppatori creativi di LinuxServer, progettate per essere eseguite in un ambiente proot. Ho quindi iniziato a installare alcune di queste applicazioni nella mia macchina virtuale Debian. Sfortunatamente, quelle progettate per i tipici container Docker, come Nextcloud, non funzionavano nella mia configurazione. È interessante notare che il codice di errore menzionava QEMU (o meglio, la sua assenza), che non dovrebbe nemmeno essere richiesto dall'applicazione.
Tuttavia, ho pensato di provare a eseguire i pacchetti su una distribuzione diversa. Fedora supporta meglio Podman, quindi ho pensato di provare a eseguire il runtime del container su una distribuzione diversa, ma anche in questo caso non ha funzionato. Poi, ho provato a eseguire proot-apps in una configurazione Arch Linux, ma alcune altre distribuzioni si sono rifiutate di funzionare. Era quest'ultima parte che mi dava più fastidio...
Spostato nel repository Termux-Pentesting-Distro
Ma a quel punto avevo perso lo scopo del progetto iniziale.
Sebbene distribuzioni come Debian, Fedora e Arch "funzionassero", ho scoperto di non riuscire a installare molte applicazioni senza problemi con i pacchetti, incluso un semplice programma come neofetch. Ho deciso di fare un ultimo tentativo dopo aver trovato il repository Termux-Pentesting-Distro su GitHub. Il risultato? Ho scoperto che questo repository non solo supportava un'ampia gamma di fantastiche distribuzioni, ma eseguiva anche molte applicazioni. Sebbene non potessi eseguire alcun gestore di finestre o ambiente desktop, sono riuscito a installare molte distribuzioni sul mio telefono.
Allo stesso modo, sono riuscito a installare Emacs, Neovim e altre applicazioni Linux essenziali dai repository della nuova distribuzione. Il problema? A questo punto, avevo completamente deviato dal mio obiettivo originale di gestire container e mi ero completamente dedicato alla sperimentazione di distribuzioni fantastiche. A mia discolpa, devo dire che il mio cervello non ha potuto fare a meno di entusiasmarsi per l'enorme numero di distribuzioni Linux, soprattutto perché ce n'erano diverse con nomi completamente nuovi. Inoltre, ogni versione di Linux includeva Neofetch già pronto all'uso, e se c'è una cosa che adoro più del passare da una distribuzione all'altra, è vedere il fantastico widget di Neofetch.
Per ora, sono soddisfatto dello strano passaggio da una distribuzione all'altra che ho organizzato, soprattutto perché non ho ancora trovato un modo per eseguire container di base sul mio telefono. Ho intenzione di eseguire presto il rooting di un secondo telefono, leggermente più vecchio, così da poter riprovare con i container Docker e Podman come tutti gli altri.
I commenti sono chiusi.