Eseguire la riga di comando Linux sul tuo iPad

Lo sapevate che è possibile eseguire una riga di comando Linux sul dispositivo iOS? Si potrebbe chiedere, ” perché dovrei voler utilizzare applicazioni basate su testo sul mio piccolo iPhone?”OK, mi sembra giusto. Questa è una domanda abbastanza ragionevole. Ma se stai leggendo Opensource.com, probabilmente conosci la risposta: gli utenti Linux vogliono essere in grado di utilizzare qualsiasi dispositivo, e vogliono anche usare le proprie personalizzazioni.

E soprattutto, vogliono una sfida.

Ho un iPad 2 Mini di sette anni che funziona ancora bene per leggere e-book e altre attività. Ma voglio anche usarlo per accedere alla riga di comando per le applicazioni e la mia suite di programmi e script di cui non riesco a fare a meno. Voglio l’ambiente a cui sono abituato, così come il mio ambiente di sviluppo standard. Ecco come ho fatto.

Connettersi a una tastiera

Utilizzando la riga di comando per la programmazione sulla tastiera su schermo di un telefono o tablet non è molto divertente. Vi consiglio di collegare una tastiera esterna, tramite Bluetooth o utilizzando un adattatore kit di connessione fotocamera per collegare una tastiera cablata (la mia preferenza). Collegare la mia tastiera split Kinesis Advantage al mio iPhone 6 crea alcune strane ottiche, come il cyberdeck di una corp dal classico gioco di ruolo Shadowrun.

Ottieni una shell su iOS

Hai due opzioni per eseguire un sistema Linux completo su iOS:

  • Secure shell (SSH) in un computer Linux
  • Eseguire un sistema virtualizzato tramite Alpine Linux con iSH, che è open source, ma deve essere installato utilizzando proprietario di Apple TestFlight app

in Alternativa, ci sono due open source emulatore di terminale applicazioni che forniscono strumenti open source all’interno di un ambiente limitato. Questa è l’opzione più limitata—in realtà non ti consente di eseguire Linux, ma stai eseguendo strumenti Linux. Ci sono pesanti restrizioni su ciò che puoi fare sul dispositivo con queste app, ma ti offrono alcune funzionalità della riga di comando.

Esaminerò l’approccio più semplice prima di esplorare soluzioni più impegnative.

Opzione 1: Una shell sandbox

Uno dei modi più semplici per iniziare è con l’app iOS LibTerm. Questa è una shell a riga di comando open source sandbox con oltre 80 comandi in bundle in un’app $0. Viene fornito con Python 2.7, Python 3.7, Lua, C, Clang e altro ancora.

Lungo linee simili è a-Shell, descritto come una “interfaccia utente basata su testo per una piattaforma basata su schermo.”a-Shell è open source, in sviluppo attivo, concede l’accesso al filesystem e viene fornito con Lua, Python, Tex, Vim, JavaScript, C e C++, insieme a Clang e Clang++. Permette anche di installare pacchetti Python con pip.

Opzione 2: SSH anywhere

Un passo avanti dal download di un’app sta configurando un client SSH. Per molto tempo è stato possibile utilizzare una delle tante app client SSH su iOS per connettersi a un server che esegue una distro Linux o BSD. Il vantaggio dell’utilizzo di SSH è che il tuo server può eseguire qualsiasi distro con qualsiasi software che ti piace. Lavori in remoto e il tuo output viene reindirizzato all’emulatore di terminale del tuo dispositivo iOS.

Blink shell è una popolare app SSH open source a pagamento. Al di fuori del piccolo schermo, l’utilizzo di questo software è simile alla connessione a un server tramite qualsiasi altro prompt dei comandi. Terminale di Blink sembra bello, con una serie di temi inclusi e la possibilità di creare i propri temi, tra cui la personalizzazione e l’aggiunta di nuovi font.

Opzione 3: Esegui Linux

Usare SSH per connettersi a un server che esegue Linux è un ottimo modo per accedere a un prompt, ma richiede l’accesso a un server esterno e una connessione. Questa non è la peggiore barriera all’ingresso, ma non è completamente trascurabile e potresti voler usare Linux senza questo requisito del server.

Se questo è il tuo caso, dovrai rompere qualcosa di un po ‘ più all’avanguardia. TestFlight è un servizio proprietario per la distribuzione di app in sviluppo prima che vengano inviate all’App Store di Apple. È possibile scaricare l’app TestFlight dallo store e quindi registrarsi per una serie di applicazioni di test. Le app in TestFlight consentono un numero limitato di beta tester esterni (generalmente fino a 10.000) per un periodo di tempo limitato. Per scaricare un’app di test, devi accedere a un link direttamente dal tuo dispositivo, che si trova generalmente sul sito Web dello sviluppatore dell’app di test.

Esegui Alpine Linux con iSH

iSH è un’app TestFlight open source che esegue una macchina virtuale con la distro Linux Alpine pronta all’uso (ma puoi eseguire altre distribuzioni con un po ‘ più di armeggiare).

Un avvertimento importante: questo è sperimentale. Poiché iSH è attualmente un’app di test, non aspettarti un servizio permanente o robusto. Le app TestFlight sono limitate nel tempo. La mia build attuale dura 60 giorni. Ciò significa che nei giorni 60, sarò bloccato e dovrò ricongiungermi alla prossima fase di test di iSH. Inoltre, perderò i miei file a meno che non li esporti con file su iOS o li esegua su un host Git o con SSH. Per essere chiari: non fare affidamento su questo per continuare a lavorare! Non mettere nulla qui che è essenziale! Esegui il backup del tuo lavoro altrove!

Installa iSH

Inizia installando TestFlight attraverso l’App Store. Quindi installare iSH ottenendo il link di installazione attraverso il suo sito web. C’è un altro metodo di installazione che utilizza l’AltStore, ma non l’ho provato. Oppure, se hai un account sviluppatore a pagamento, puoi scaricare il repository di iSH da GitHub e distribuirlo da solo.

Utilizzando il link, TestFlight installa un’app iSH sul tuo dispositivo. Come qualsiasi altra applicazione, appare sullo schermo con un’icona.

Gestisci pacchetti

iSH esegue un emulatore x86 con Alpine Linux. Alpine è una piccola distro sotto i 5 MB. Questa è stata la mia prima volta in esecuzione Alpine, e ho pensato di ottenere frustrato con una distro così minima, ma in realtà mi è piaciuto molto.

ish-installa.png

(Lee Tusman, CC BY-SA 4.0)

Alpine utilizza il gestore di pacchetti apk, che è più semplice persino di apt o pacman.

Per installare un pacchetto:

apk add package

Per rimuovere un pacchetto:

apk del package

Trova altri comandi e informazioni con:

apk --help

Aggiornare il gestore dei pacchetti:

apk updateapk upgrade

Ottenere un editor di testo

Alpine editor di testo di default è Vi, ma io preferisco Vim, quindi l’ho installato:

apk add vim

e ‘ possibile installare Nano o Emacs, se si preferisce.

Cambia la shell

Non so di te, ma ho bisogno del guscio di pesce. Altre persone preferiscono Bash o Zsh. Ma Alpine usa la cenere! Ash è una forcella di Dash shell, a sua volta una forcella della cenere originale o Almquist shell. È progettato per la velocità. Ho deciso di scambiare la velocità a favore del completamento automatico incorporato, del colore, del controllo Vim-key e dell’evidenziazione della sintassi che conosco e amo in fish shell.

Installa fish:

apk add fish

Se invece vuoi Bash e i suoi completamenti e pagine man, devi installarli e alcune cose extra:

apk add bash bash-doc bash-completion

L’ideologia minimalista di Alpine generalmente significa che alcuni programmi che sarebbero un singolo pacchetto in altre distribuzioni sono divisi in più pacchetti più piccoli. Questo significa anche che è possibile personalizzare e snellire il sistema esattamente come si desidera.

Puoi trovare maggiori dettagli sull’installazione di Bash in questo tutorial.

Modificare la shell predefinita

Dopo aver installato fish, è possibile passare temporaneamente ad esso e provarlo digitando fish e cadere nella shell. Ma voglio rendere fish la mia shell predefinita e il comandochsh a cui sono abituato da altre distribuzioni non funziona.

Innanzitutto, scopri dove è installato fish:

which fish

Il mio output:

/usr/bin/fish

Quindi, modifica la shell di accesso per utilizzare fish. Puoi usare qualsiasi editor con cui ti senti a tuo agio. Se sei un principiante, installa Nano (con apk add nano) in modo da poter modificare i file di configurazione e salvarli con CTRL+X, confermare e chiudere.

Ma ho usato Vim:

vim /etc/passwd

La mia prima riga era:

root:x:0:0:root:/root:/bin/ash

Per rendere fish il valore predefinito, cambia quella riga in:

root:x:0:0:root:/root:/usr/bin/fish

Quindi salva e esci.

Sono sicuro che c’è un buon modo per ri-source la shell in modo da poter iniziare ad usarlo subito. Ma non ne sono sicuro, quindi consiglio di tornare al browser dell’app, di uscire forzatamente dalla shell e, per buona misura, di spegnere e riavviare il tuo iPad o iPhone. Riapre iSH, e ora, oltre al ” Benvenuti a Alpine!”messaggio e informazioni su come iniziare con apk, si vedrà il pesce di default login messaggio di benvenuto: Benvenuti a fish, la shell interattiva amichevole. Urrà!

ish.png

Guscio di pesce su Alpine Linux

(Lee Tusman, CC BY-SA 4.0)

Configura Python e pip

Ho deciso di aggiungere Python (versione 3.x), non solo per poter scrivere codice ma perché mi affido a diversi programmi Python. Installalo:

apk add python3

Sebbene Python 2.x è deprecato, puoi comunque installarlo:

apk add python

Installa il gestore di pacchetti Python, pip e setuptools:

python3 -m ensurepip --default-pip

Ci vuole un po ‘ di tempo per installare e configurare il gestore di pacchetti, quindi aspetta.

Quindi, è possibile scaricare curl, lo strumento di trasferimento di rete:

apk add curl

Leggere il manuale

Fish utilizza il completamento automatico incorporato in base alle pagine man. Come altri utenti della riga di comando, mi affido al manualeman e Alpine non viene fornito con esso installato. Quindi, l’ho installato insieme al cercapersone meno:

apk add man man-pages less less-doc

Oltre a man, uso il favoloso progetto tldr pages, che fornisce pagine man semplificate e guidate dalla comunità.

L’ho installato con pip:

pip install tldr

Il comandotldr si connette al web per recuperare le pagine ogni volta che incontra una richiesta per una nuova. Se hai bisogno di imparare come usare un comando, puoi semplicemente digitare qualcosa come tldr curl per ottenere una spiegazione in inglese semplice e buoni esempi su come usare il comando.

Potresti, ovviamente, automatizzare tutto questo lavoro di installazione con dotfile o uno script di installazione, ma questo non rientrerebbe nel modo alpino di personalizzare un’installazione minima esattamente alle tue specifiche. Inoltre, non ci e ‘ voluto molto, vero?

Per saperne di più

Il wiki ISH contiene una pagina “cosa funziona” con report su quali pacchetti funzionano attualmente. Da notare, npm non sembra funzionare in questo momento.

Un’altra pagina wiki spiega come è possibile accedere ai file iSH dall’app File iOS. Questo è un modo per spostare e trasferire file.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.