Avviamo il terminale Linux su iOS

Avviamo il terminale Linux su iOS

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 un cyberdeck aziendale di un classico gioco di ruolo 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 LibTerm. Questo è open source 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 è a-Shell, descritta dagli sviluppatori come "un'interfaccia utente per test su piattaforme con input da schermo". I sorgenti di a-Shell sono disponibili open source, è 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.

Blink shell è un'app SSH a pagamento molto popolare in open source. 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. TestFlight — è 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

iSH — è un'applicazione open-source TestFlight che avvia una macchina virtuale con una distribuzione pronta Alpine Linux (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 via SSH. 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 TestFlight dall'App Store. Poi installate iSH, ottenendo il link per l'installazione 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.

Avviamo il terminale Linux su iOS
In Alpine si utilizza un gestore di pacchetti apk, che è più semplice di apt o pacman.

Come installare un pacchetto:

apk add package

Come rimuovere un pacchetto:

apk del package

Come scoprire altri comandi e informazioni:

apk --help

Aggiornamento del gestore di pacchetti:

apk update
apk upgrade

Installazione dell'editor di testo

L'editor di testo predefinito di Alpine è Vi, ma io preferisco Vim, quindi l'ho installato:

apk add vim

Se desideri, puoi installare anche Nano o Emacs.

Cambia shell

Non so per voi, ma avevo bisogno di fish shell. Altri preferiscono Bash o Zsh. Tuttavia, in Alpine si utilizza ash! Ash è un fork della shell Dash, che è essa stessa un fork dell'originale ash, o Almquist shell. 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 fish

Se hai bisogno di Bash con il suo completamento automatico e le man-page, installale:

apk add bash bash-doc bash-completion

L'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 questo tutorial.

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 fish

Ecco 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/passwd

La mia prima riga era così:

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

Per rendere fish la shell predefinita, cambieremo questa riga in:

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

Poi 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!

Avviamo il terminale Linux su iOS

Configurazione di Python e pip

Ho deciso di aggiungere Python (versione 3.x), non solo per scrivere codice, ma anche perché utilizzo diverse applicazioni in Python. Installiamolo:

apk add python3

Anche se Python 2.x è obsoleto, si può installare anche quello:

apk add python

Installeremo il gestore di pacchetti Python chiamato pip e setuptools:

python3 -m ensurepip --default-pip

Per 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 curl:

apk add curl

Leggiamo 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 less:

apk add man man-pages less less-doc

In aggiunta al man utilizzo il magnifico progetto tldr pages, 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 dotfiles 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 "what works" con report su quali pacchetti funzionano attualmente. A proposito, sembra che npm non funzioni attualmente.

Su un'altra pagina wiki viene spiegato come accedere ai file di iSH 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 server virtuali su Linux o Windows. Utilizziamo esclusivamente hardware di marca, il miglior pannello di controllo server della sua categoria e uno dei migliori data center in Russia e nell'UE. Affrettati a ordinare!

Avviamo il terminale Linux su iOS

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster