GNU/Linux >> Linux Esercitazione >  >> Linux

Termux trasforma Android in un ambiente di sviluppo Linux

Quindi hai finalmente capito come uscire da Vim e puoi scrivere la versione più ottimizzata di "Hello World" da questa parte del Mississippi. Ora è il momento di migliorare il tuo gioco! Dai un'occhiata a Termux per Android.

Cos'è Termux?

Termux è un emulatore di terminale Android e un ambiente Linux. Ciò significa in pratica che puoi installare Termux sulla maggior parte dei dispositivi Android e fare quasi tutto ciò che faresti in un ambiente di sviluppo Linux completo su quel dispositivo. Sembra tutto fantastico, ma probabilmente ti starai chiedendo "perché dovrei voler codificare sul mio telefono su un touch screen? Suona orribile". Inizia a pensare di più sulla falsariga di tablet abbinati a tastiere o Chromebook che ora possono eseguire applicazioni Android. Questi sono dispositivi molto economici che ora possono essere utilizzati per introdurre le persone all'hacking e allo sviluppo di Linux. So che molti di noi nella comunità Linux hanno iniziato installando Linux su un vecchio PC.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Tablet e Chromebook sono i vecchi computer spazzatura di questa generazione. E ci sono molte cose da fare. Perché non usarli per introdurre la prossima generazione a Linux? E poiché Termux può essere installato con un clic nel Google Play Store, direi che Termux è il modo più semplice per presentare a chiunque Linux. Ma non lasciare tutto il divertimento ai niubbi. Termux può soddisfare molte delle tue esigenze per un ambiente di sviluppo Linux.

Termux è Linux, ma è basato su Android e funziona in un container. Ciò significa che puoi installarlo senza che sia richiesto l'accesso come root, ma significa anche che potrebbe volerci un po' per abituarsi. In questo articolo, illustrerò alcuni suggerimenti e trucchi che ho trovato per far funzionare Termux come ambiente di sviluppo a tempo pieno.

Dov'è tutta la mia roba?

La base del filesystem Termux che puoi vedere inizia intorno a /data/data/com.termux/files/ . Sotto quella directory troverai la tua home directory e usr directory, dove sono installati tutti i pacchetti Linux. Questo è un po' strano, ma non è un grosso problema, giusto? Ti sbaglieresti, perché quasi tutti gli script del pianeta sono codificati per /bin/bash . Altre librerie, eseguibili e file di configurazione non sono coerenti con altre distribuzioni Linux.

Termux fornisce molti pacchetti che sono stati modificati per funzionare correttamente. Prova a cercare prima lì invece di fare una build personalizzata. Tuttavia, probabilmente dovrai creare molte cose personalizzate. Puoi provare a modificare il codice sorgente del tuo pacchetto e, anche se cambiare percorso è facile, invecchia rapidamente. Per fortuna Termux viene fornito anche in bundle con termux-exec. Termux-exec reindirizzerà al volo i percorsi di script per farli funzionare correttamente.

Potresti ancora imbatterti in alcuni percorsi codificati che termux-exec non gestisce. Dal momento che non hai l'accesso come root in Termux, non puoi semplicemente creare un collegamento simbolico per risolvere i problemi di percorso. Tuttavia, puoi creare una jail chroot. Usando il pacchetto PRoot, puoi creare un chroot su cui hai il pieno controllo e ti consente di modificare tutto ciò che desideri. Puoi anche creare chroot di diverse distribuzioni Linux. Se sei un fan di Fedora, puoi usare Termux ed eseguirlo in una prigione chroot. Controlla la pagina PRoot per ulteriori distribuzioni e dettagli sull'installazione, oppure puoi utilizzare questo script per creare una jail chroot di Termux. Ho provato solo il chroot di Termux e il chroot di Ubuntu. Il chroot di Ubuntu presentava alcuni problemi che dovevano essere risolti, quindi il tuo chilometraggio potrebbe variare a seconda della versione di Linux che scegli.

Un utente per governarli tutti

In Termux, tutto è installato ed eseguito sotto un utente. Questo non è tanto un problema, piuttosto qualcosa a cui devi abituarti. Ciò significa anche che i servizi tipici e i gruppi di utenti con cui potresti avere familiarità non si trovano da nessuna parte. E nulla si avvia automaticamente all'avvio, quindi spetta a te gestire l'avvio e l'arresto dei servizi che potresti utilizzare, come database, SSH, ecc. Ricorda inoltre che il tuo unico utente non può modificare il sistema di base, quindi avrai bisogno per usare un chroot se è necessario farlo. Dal momento che non disponi di script di avvio preimpostati, probabilmente dovrai inventarne alcuni.

Per lo sviluppo quotidiano, avevo bisogno di Postgres, Nginx e Redis. Non avevo mai avviato questi servizi manualmente prima; normalmente si avviano e si fermano automaticamente per me e ho dovuto scavare un po' per scoprire come avviare i miei servizi preferiti. Ecco un esempio dei tre servizi che ho appena menzionato. Si spera che questi esempi ti indichino la giusta direzione per utilizzare il tuo servizio preferito. Puoi anche guardare la documentazione di un pacchetto per trovare informazioni su come avviarlo e interromperlo.

Postgres

Inizio:pg_ctl -D $PREFIX/var/lib/postgresql start

Stop:pg_ctl -D $PREFIX/var/lib/postgresql stop

Nginx

Inizio:nginx

Stop:nginx -s stop

Redis

Inizio:redis-server $PREFIX/etc/redis.conf

Stop:kill "$("$PREFIX/bin/applets/cat" "$PREFIX/var/run/redis_6379.pid"

Dipendenze interrotte

Android è costruito in modo diverso rispetto ad altre versioni di Linux e il suo kernel e le sue librerie non sempre corrispondono a quelli del tipico software Linux. Puoi vedere i problemi di porting comuni quando provi a creare software in Termux. Puoi aggirare la maggior parte di essi, ma potrebbe essere troppo faticoso correggere ogni dipendenza nel tuo software.

Ad esempio, il problema più grande che ho riscontrato come sviluppatore Python è che il kernel Android non supporta i semafori. La libreria multi-elaborazione in Python dipende da questa funzionalità e risolverlo da solo è stato troppo difficile. Invece, l'ho aggirato usando un meccanismo di distribuzione diverso. Prima di utilizzare uWSGI per eseguire i miei servizi Web Python, quindi sono passato a Gunicorn. Questo mi ha permesso di spostarmi usando la libreria standard di elaborazione multipla Python. Potrebbe essere necessario essere un po' creativi per trovare dipendenze software alternative quando si passa a Termux, ma il tuo elenco sarà probabilmente molto piccolo.

Termux di tutti i giorni

Quando usi Termux quotidianamente, ti consigliamo di imparare il suo touch screen o le scorciatoie da tastiera hardware. Avrai anche bisogno di un editor di testo o IDE per la codifica. Tutti i probabili editor basati su console sono disponibili tramite una rapida installazione del pacchetto:Vim, Emacs e Nano. Termux è solo basato su console, quindi non sarai in grado di installare alcun editor basato su un'interfaccia grafica. Volevo assicurarmi che Termux avesse un ottimo IDE per accompagnarlo, quindi ho creato l'editor Neutron64 basato sul web per interfacciarsi perfettamente con Termux. Basta andare su Neutron64.com e installare Neutron Beam su Termux per iniziare a codificare.

Dai un'occhiata a Termux e trasforma i tuoi vecchi dispositivi Android in centrali di sviluppo. Buona codifica!


Linux
  1. Sviluppo flessibile su Linux, cos'è un buon ambiente libero?

  2. C# in ambiente Linux

  3. Dove inserisco le librerie di terze parti per configurare un ambiente di sviluppo Linux C++?

  4. Linux:processo in un servizio

  5. Impostazione delle variabili di ambiente Linux

Come installare strumenti di sviluppo in Linux

Imposta l'ambiente di sviluppo locale di WordPress in Linux

Come installare l'ambiente di sviluppo Python 3 per Ubuntu Linux

Variabili d'ambiente Linux

Cos'è Termux su Android?

Configurazione di un ambiente di sviluppo brillante all'interno di Linux su Windows 10