
Lo sapevate che è possibile eseguire un terminale Linux su un dispositivo iOS? Potreste chiedervi: «Perché dovrei utilizzare applicazioni testuali sul mio iPhone?» È una domanda legittima. Ma se state leggendo Opensource.com, probabilmente conoscerete già la risposta: gli utenti Linux vogliono lavorare su qualsiasi dispositivo e utilizzare le proprie impostazioni.
Ma desiderano soprattutto risolvere problemi complessi.
Ho un iPad 2 Mini di sette anni, che è ancora abbastanza buono per leggere e-book e fare altre attività. Tuttavia, voglio utilizzarlo anche per accedere alla riga di comando delle applicazioni con il mio set di programmi e script, senza i quali non riesco a lavorare. Ho bisogno di un ambiente a cui sono abituato, oltre al mio standard di sviluppo. Ecco come sono riuscito a ottenerlo.
Collegamento alla tastiera
Lavorare con la riga di comando per programmare tramite la tastiera a schermo del telefono o tablet è piuttosto scomodo. Raccomando di collegare una tastiera esterna, tramite Bluetooth o utilizzando un adattatore per fotocamera per collegare una tastiera cablata (io ho scelto quest'ultima opzione). Collegando la tastiera divisa Kinesis Advantage a un iPhone 6 si ottiene un dispositivo piuttosto strano, simile a di un classico Shadowrun.
Installa una shell su iOS
Per eseguire un sistema Linux completo su iOS ci sono due opzioni:
- Secure shell (SSH), collegato a un computer con Linux
- Eseguire un sistema virtuale utilizzando Alpine Linux con iSH, che è open source, ma deve essere installato tramite un'applicazione proprietaria di TestFlight di Apple.
In alternativa, ci sono due applicazioni emulatore terminale open source, che forniscono l'accesso a strumenti open source in un ambiente limitato. Questa è l'opzione più limitata: in realtà si stanno eseguendo strumenti Linux, non Linux stesso. Utilizzando queste applicazioni ci sono severe restrizioni, ma si ottiene una funzionalità parziale della riga di comando.
Prima di passare a soluzioni più complesse, prenderò in considerazione il modo più semplice.
Opzione 1: shell in "sandbox"
Uno dei modi più semplici è installare un'app per iOS . Questo è una shell da riga di comando in "sandbox" con supporto per oltre 80 comandi al prezzo di zero dollari. Include Python 2.7, Python 3.7, Lua, C, Clang e molto altro.
Un'app con funzionalità simili è , descritta dagli sviluppatori come "un'interfaccia utente per test su piattaforme con input da schermo". I sorgenti di a-Shell sono disponibili , è in fase di sviluppo attivo, fornisce accesso al file system ed è fornita con Lua, Python, Tex, Vim, JavaScript, C e C++, oltre a Clang e Clang++. Permette anche di installare pacchetti Python tramite pip.
Opzione 2: SSH
Un ulteriore passo avanti rispetto al download di un'app è la configurazione di un client SSH. Da molto tempo utilizziamo una delle molte app client SSH disponibili per iOS per connetterci a un server che esegue Linux o BSD. Il vantaggio dell'uso di SSH è che qualsiasi distribuzione con qualsiasi software può funzionare sul server. Lavori in remoto e i risultati vengono semplicemente trasferiti nell'emulatore di terminale sul dispositivo iOS.
è un'app SSH a pagamento molto popolare in . Se trascuriamo il piccolo schermo del dispositivo, l'uso di questo software è simile al collegamento a un server tramite qualsiasi altra riga di comando. Il terminale Blink ha un aspetto fantastico, offre molteplici temi pronti e la funzione di creare temi personalizzati, compresa la possibilità di configurare e aggiungere nuovi caratteri.
Opzione 3: esecuzione di Linux
Utilizzare SSH per collegarsi a un server Linux è un ottimo modo per accedere alla riga di comando, ma richiede un server esterno e una connessione di rete. Non è il più grande ostacolo, ma non può essere ignorato completamente, quindi potresti aver bisogno di lavorare con Linux senza un server.
Se questo è il tuo caso, dovrai fare un ulteriore passo avanti. — è un servizio proprietario per l'installazione di applicazioni in fase di sviluppo ancora prima che vengano pubblicate su Apple App Store. L'app TestFlight può essere installata dall'App Store e poi utilizzata per le applicazioni di test. Le applicazioni in TestFlight consentono di lavorare con un numero limitato di beta tester (di solito fino a 10.000) per un periodo di tempo determinato. Per scaricare un'applicazione di prova, è necessario accedere dal proprio dispositivo a un link che di solito si trova sul sito web dello sviluppatore dell'applicazione di test.
Avvio di Alpine Linux con iSH
— è un'applicazione open-source TestFlight che avvia una macchina virtuale con una distribuzione pronta (con un po' di lavoro, si possono avviare anche altre distribuzioni).
Caratteristica importante: l'applicazione è sperimentale. Poiché iSH è attualmente un'applicazione di test, non aspettatevi un funzionamento costante e affidabile. Le applicazioni TestFlight sono limitate nel tempo. Il mio attuale build funzionerà solo per 60 giorni. Questo significa che dopo 60 giorni verrò escluso e dovrò ricollegarmi al prossimo stadio di test di iSH. Inoltre, perderò tutti i miei file se non li esporto utilizzando Files su iOS o non li copio su un host Git o . In altre parole: Non sperate che tutto ciò continui a funzionare! Non mettete nulla di importante nel sistema! Effettuate il backup in un luogo separato!
Installazione di iSH
Iniziate installando dall'App Store. Poi installate iSH, dal sito web dell'applicazione. C'è un altro modo per installare utilizzando AltStore, ma non l'ho provato. Oppure, se avete un account sviluppatore a pagamento, potete scaricare il repository iSH da GitHub e installarlo voi stessi.
Con il link TestFlight, installerà l'app iSH sul vostro dispositivo. Come con qualsiasi altra applicazione, comparirà un'icona sullo schermo.
Gestione dei pacchetti
iSH esegue un emulatore x86 con Alpine Linux. Alpine è una distribuzione piccolissima, che occupa meno di 5 MB. Ho lavorato con Alpine per la prima volta, quindi pensavo che questo minimalismo sarebbe stato fastidioso, ma in realtà mi è piaciuto molto.

In Alpine si utilizza un gestore di pacchetti , che è più semplice di apt o pacman.
Come installare un pacchetto:
apk add packageCome rimuovere un pacchetto:
apk del packageCome scoprire altri comandi e informazioni:
apk --helpAggiornamento del gestore di pacchetti:
apk update
apk upgradeInstallazione dell'editor di testo
L'editor di testo predefinito di Alpine è Vi, ma io preferisco Vim, quindi l'ho installato:
apk add vimSe desideri, puoi installare anche Nano o Emacs.
Cambia shell
Non so per voi, ma avevo bisogno di . Altri preferiscono o . Tuttavia, in Alpine si utilizza ash! Ash è un fork della shell Dash, che è essa stessa un fork dell'originale ash, o . La sua priorità è la velocità. Ho deciso di scambiare la velocità per il completamento automatico integrato, i colori, i comandi di tastiera di Vim e l'evidenziazione della sintassi, che amo e conosco grazie a fish shell.
Installazione di fish:
apk add fishSe hai bisogno di Bash con il suo completamento automatico e le man-page, installale:
apk add bash bash-doc bash-completionL'ideologia minimalista di Alpine significa solitamente che alcuni programmi che in altre distribuzioni sono un unico pacchetto, saranno suddivisi in più pacchetti più piccoli. Questo significa anche che puoi configurare e ridurre le dimensioni del sistema esattamente come desideri.
Puoi scoprire di più sull'installazione di Bash in .
Cambia shell predefinita
Dopo aver installato fish, puoi temporaneamente passare a essa digitando fish e accedere alla shell. Ma voglio rendere fish la shell predefinita, e il comando chsh, che ho usato in altre distribuzioni, non ha funzionato.
Per prima cosa verifichiamo dove è stato installato fish:
which fishEcco cosa ho ottenuto:
/usr/bin/fish Ora cambiamo la login shell in fish. Puoi utilizzare qualsiasi editor tu desideri. Se sei un principiante, installa Nano (con il comando apk add nano), in modo da poter modificare i file di configurazione e salvarli con CTRL+X, confermare e uscire.
Ma io ho usato Vim:
vim /etc/passwdLa mia prima riga era così:
root:x:0:0:root:/root:/bin/ashPer rendere fish la shell predefinita, cambieremo questa riga in:
root:x:0:0:root:/root:/usr/bin/fishPoi salviamo il file e usciamo.
Sono sicuro che esiste un modo semplice per cambiare il percorso della shell in modo da poterla utilizzare immediatamente. Ma non lo so, quindi ti consiglio di tornare al browser delle applicazioni, forzare l'uscita dalla shell e, per sicurezza, spegnere e riavviare l'iPad o l'iPhone. Apri di nuovo iSH e ora, oltre al messaggio «Welcome to Alpine!» e alle informazioni sul lancio con apk, vedrai il messaggio di benvenuto predefinito di fish: Benvenuto a fish, la shell interattiva amichevole. Evviva!

Configurazione di Python e pip
Ho deciso di aggiungere (versione 3.x), non solo per scrivere codice, ma anche perché utilizzo diverse applicazioni in Python. Installiamolo:
apk add python3Anche se Python 2.x è obsoleto, si può installare anche quello:
apk add pythonInstalleremo il gestore di pacchetti Python chiamato pip e :
python3 -m ensurepip --default-pipPer installare e configurare il gestore di pacchetti ci vorrà un po' di tempo, quindi aspetta semplicemente.
Poi sarà possibile scaricare uno strumento per il trasferimento di file su rete :
apk add curlLeggiamo i manuali
Fish utilizza il completamento automatico integrato basato sulle pagine man. Come altri utenti della riga di comando, utilizzo il manuale man, ma su Alpine non è installato. Quindi l'ho installato con un pager da terminale :
apk add man man-pages less less-docIn aggiunta al man utilizzo il magnifico , che fornisce pagine man semplificate e gestite dalla comunità.
L'ho installato usando pip:
pip install tldr Team tldr si connette al web per recuperare le pagine quando incontra una richiesta per una nuova pagina. Se hai bisogno di sapere come usare un comando, puoi scrivere qualcosa come tldr curl e ricevere una descrizione in inglese semplice e buoni esempi sull'uso del comando.
Naturalmente, tutto questo lavoro di installazione può essere automatizzato mediante o uno script di installazione, ma in realtà non è molto in linea con l'ideologia di Alpine — configurare un'installazione minima esattamente secondo le proprie necessità. Inoltre, ci è voluto così tanto tempo, vero?
Informazioni aggiuntive
Nella Wiki di iSH c'è una pagina "" con report su quali pacchetti funzionano attualmente. A proposito, sembra che .
Su un'altra pagina wiki viene spiegato come dall'app iOS Files. Questo è uno dei modi per spostare e copiare i file.
Puoi anche installare Git (sì! apk add git ) e pushare il tuo lavoro in un repository remoto o trasferirlo su un server tramite SSH. E, naturalmente, è possibile scaricare e avviare qualsiasi numero di fantastici progetti open-source da GitHub.
Puoi scoprire di più su iSH tramite questi link:
In base alla pubblicità
VDS offre o Windows. Utilizziamo esclusivamente , il miglior pannello di controllo server della sua categoria e uno dei migliori data center in Russia e nell'UE. Affrettati a ordinare!
Fonte: habr.com
