
¿Sabías que puedes ejecutar una terminal de Linux en un dispositivo iOS? Tal vez te preguntes: «¿Para qué necesitaría usar aplicaciones de texto en mi iPhone?» Es una pregunta válida. Pero si estás leyendo Opensource.com, probablemente ya conozcas la respuesta: los usuarios de Linux quieren poder trabajar con él en cualquier dispositivo y disfrutar de sus configuraciones personalizadas.
Pero lo que más desean es resolver problemas complejos.
Tengo un iPad 2 Mini de siete años, que todavía es bastante útil para leer libros electrónicos y otras tareas. Sin embargo, quiero usarlo también para acceder a la línea de comandos de aplicaciones con mi conjunto de programas y scripts sin los cuales no puedo trabajar. Necesito un entorno al que estoy acostumbrado, así como mi estándar de desarrollo. Y así es como logré conseguirlo.
Conexión a un teclado
Trabajar con la línea de comandos para programación a través del teclado en pantalla del teléfono o tablet puede ser bastante incómodo. Recomiendo conectar un teclado externo, ya sea por Bluetooth o utilizando un adaptador de cámara para conectar un teclado por cable (yo elegí la segunda opción). Al conectar un teclado dividido Kinesis Advantage al iPhone 6, se obtiene un dispositivo extraño que se asemeja a de la clásica Shadowrun.
Instalando la shell en iOS
Para ejecutar un sistema Linux totalmente funcional en iOS, hay dos opciones:
- Shell segura (SSH), conectada a un ordenador con Linux
- Ejecutar un sistema virtual con Alpine Linux usando iSH, que es de código abierto, pero debe instalarse a través de la aplicación propietaria TestFlight de Apple.
Como alternativa, existen dos aplicaciones emuladoras de terminal de código abierto que permiten trabajar con herramientas de código abierto en un entorno limitado. Esta es la opción más reducida; de hecho, no estás ejecutando Linux, sino herramientas de Linux. Al trabajar con estas aplicaciones, hay estrictas limitaciones en las capacidades, sin embargo, obtienes una funcionalidad parcial de línea de comandos.
Antes de pasar a soluciones más complejas, consideraré una forma más sencilla.
Opción 1: shell en un «sandbox»
Una de las maneras más sencillas es instalar una aplicación para iOS . Esto es una consola en "sandbox" que admite más de 80 comandos al precio de cero dólares. Incluye Python 2.7, Python 3.7, Lua, C, Clang y mucho más.
Funcionalidad similar ofrece , descrito por sus desarrolladores como "una interfaz de usuario de prueba para plataformas con entrada en pantalla". Los códigos fuente de a-Shell están disponibles , se encuentra en desarrollo activo, proporciona acceso al sistema de archivos y viene con Lua, Python, Tex, Vim, JavaScript, C y C++, así como con Clang y Clang++. Incluso permite instalar paquetes de Python usando pip.
Opción 2: SSH
Un paso más allá de descargar una aplicación es configurar un cliente SSH. Desde hace tiempo podemos usar cualquiera de las muchas aplicaciones de clientes SSH para iOS para conectar a un servidor que ejecute Linux o BSD. La ventaja de usar SSH es que en el servidor puede ejecutarse cualquier distribución con cualquier software. Trabajas de forma remota y los resultados se envían directamente al emulador de terminal en el dispositivo iOS.
es una popular aplicación SSH de pago en . Si ignoramos la pequeña pantalla del dispositivo, usar este software se asemeja a conectarse a un servidor a través de cualquier otra línea de comandos. El terminal Blink se ve magnífico, tiene muchas plantillas listas y una función para crear las propias, incluyendo la capacidad de ajustar y añadir nuevas fuentes.
Opción 3: ejecutar Linux
Usar SSH para conectarse a un servidor bajo Linux es una excelente manera de acceder a la línea de comandos, pero requiere un servidor externo y conexión de red. No es un gran obstáculo, pero no se puede ignorar completamente, por lo que puede que necesites trabajar con Linux sin servidor.
Si este es tu caso, necesitarás dar un paso más allá. — es un servicio propietario para instalar aplicaciones en desarrollo antes de que se publiquen en la App Store de Apple. La aplicación TestFlight se puede instalar desde la App Store y luego usar aplicaciones de prueba. Las aplicaciones en TestFlight permiten trabajar con ellas durante un tiempo limitado para un número reducido de beta testers (generalmente hasta 10,000). Para descargar la aplicación de prueba, es necesario acceder desde su dispositivo a un enlace que generalmente se encuentra en el sitio web del desarrollador de la aplicación de prueba.
Ejecutando Alpine Linux con iSH
— es una aplicación de código abierto TestFlight que ejecuta una máquina virtual con una distribución lista (con un poco de esfuerzo, se pueden ejecutar otras distribuciones también).
Características importantes: la aplicación es experimental. Dado que iSH es actualmente una aplicación de prueba, no espere un funcionamiento constante y confiable. Las aplicaciones de TestFlight están limitadas en el tiempo. Mi versión actual funcionará solo 60 días. Esto significa que, después de 60 días, seré excluido y tendré que unirme nuevamente a la siguiente etapa de pruebas de iSH. Además, perderé todos mis archivos si no los exporto utilizando Archivos en iOS o si no los copio a un host de Git o . En otras palabras: ¡No esperes que todo esto siga funcionando! ¡No coloques nada importante en el sistema! ¡Realiza copias de seguridad en un lugar separado!
Instalación de iSH
Comienza instalando desde la App Store. Luego instala iSH, desde el sitio web de la aplicación. Hay otra forma de instalación utilizando AltStore, pero no la he probado. O, si tienes una cuenta de desarrollador de pago, puedes descargar el repositorio de iSH desde GitHub e instalarlo tú mismo.
A través del enlace, TestFlight instalará la aplicación iSH en tu dispositivo. Al igual que con cualquier otra aplicación, aparecerá un ícono en la pantalla.
Gestión de paquetes
iSH ejecuta un emulador x86 con Alpine Linux. Alpine es una distribución muy pequeña de menos de 5 MB. Era la primera vez que trabajaba con Alpine, así que pensaba que tal minimalismo sería molesto, pero en realidad me gustó mucho.

En Alpine se utiliza un gestor de paquetes , que es más simple incluso que apt o pacman.
Cómo instalar un paquete:
apk add packageCómo eliminar un paquete:
apk del packageCómo conocer otros comandos e información:
apk --helpActualización del gestor de paquetes:
apk update
apk upgradeInstalación del editor de texto
El editor de texto estándar en Alpine es Vi, pero prefiero Vim, así que lo instalé:
apk add vimSi lo deseas, puedes instalar Nano o Emacs.
Cambio de shell
No sé sobre ustedes, pero yo necesitaba . Otras personas prefieren o . Sin embargo, en Alpine se utiliza ash. Ash es una bifurcación del shell Dash, que a su vez es una bifurcación del original ash, o . Su prioridad es la velocidad. Decidí intercambiar velocidad por autocompletado integrado, colores, gestión de teclas en Vim y resaltado de sintaxis, que me gustan y conozco de fish shell.
Instalación de fish:
apk add fishSi necesitas Bash con su autocompletado y páginas man, instálalas:
apk add bash bash-doc bash-completionLa ideología minimalista de Alpine generalmente significa que algunos programas que en otras distribuciones son un solo paquete, se dividen en varios paquetes más pequeños. Esto también significa que puedes personalizar y reducir el tamaño del sistema exactamente como desees.
Más sobre la instalación de Bash se puede encontrar en .
Cambio de shell por defecto
Después de instalar fish, puedes cambiar temporalmente a ella ingresando fish y accediendo al shell. Pero quiero hacer de fish el shell por defecto, y el comando chsh, que usé en otras distribuciones, no funcionó.
Primero averigüemos dónde se instaló fish:
which fishEsto es lo que obtuve:
/usr/bin/fish Luego cambiamos el shell de inicio de sesión a fish. Puedes usar cualquier editor que te resulte cómodo. Si eres principiante, instala Nano (con el comando apk add nano), para poder editar los archivos de configuración y guardarlos a través de CTRL+X, confirmar y salir.
Pero yo usé Vim:
vim /etc/passwdMi primera línea era así:
root:x:0:0:root:/root:/bin/ashPara hacer de fish el shell por defecto, cambiamos esta línea a la siguiente:
root:x:0:0:root:/root:/usr/bin/fishLuego guardamos el archivo y salimos.
Estoy seguro de que hay una buena manera de cambiar el camino hacia el shell para que se pueda utilizar de inmediato. Pero no la conozco, así que recomiendo volver al navegador de aplicaciones, forzar el cierre del shell y, para mayor seguridad, apagar y reiniciar el iPad o iPhone. Vuelve a abrir iSH y ahora, además del mensaje "¡Bienvenido a Alpine!" y la información de inicio de apk, verás el mensaje de bienvenida estándar de inicio de sesión de fish: Bienvenido a fish, el shell interactivo amigable. ¡Hurra!

Configurando Python y pip
He decidido añadir (versión 3.x), no solo para escribir código, sino también porque estoy usando varios programas en Python. Vamos a instalarlo:
apk add python3Aunque Python 2.x está obsoleto, también se puede instalar:
apk add pythonInstalemos el gestor de paquetes de Python llamado pip y :
python3 -m ensurepip --default-pipLa instalación y configuración del gestor de paquetes llevará un tiempo, así que solo espera.
Después podrás descargar la herramienta para transferir archivos por red :
apk add curlLeyendo los manuales
Fish utiliza autocompletado incorporado basado en las páginas man. Al igual que otros usuarios de línea de comandos, utilizo el manual man, pero en Alpine no está instalado. Así que lo instalé con el paginador de terminales :
apk add man man-pages less less-docAdemás del man, utilizo el magnífico , que proporciona páginas man simplificadas y gestionadas por la comunidad.
Lo instalé usando pip:
pip install tldr Comando tldr se conecta a la web para obtener páginas cuando se encuentra con una solicitud para una nueva página. Si necesitas saber cómo usar un comando, puedes escribir algo como tldr curl y obtener una descripción en inglés sencillo y buenos ejemplos de uso del comando.
Por supuesto, todo este trabajo de instalación se puede automatizar usando o un script de instalación, pero en realidad no se ajusta mucho a la ideología de Alpine: configurar una instalación mínima claramente adaptada a tus necesidades. Además, ¿no ha llevado tanto tiempo, verdad?
Información adicional
En la wiki de iSH hay una página "" con reportes sobre qué paquetes funcionan actualmente. Por cierto, parece que .
En otra página de la wiki se explica cómo desde la aplicación Archivos de iOS. Esta es una forma de mover y copiar archivos.
También se puede instalar Git (¡sí! apk add git ) y subir tu trabajo a un repositorio remoto o transferirlo a un servidor a través de SSH. Y, por supuesto, puedes descargar y ejecutar cualquier cantidad de maravillosos proyectos de código abierto desde GitHub.
Más información sobre iSH se puede encontrar en estos enlaces:
Publicidad
Vdsina ofrece o Windows. Usamos exclusivamente , el mejor panel de control de servidores de su clase desarrollado internamente y algunos de los mejores centros de datos en Rusia y la UE. ¡Apresúrate a hacer tu pedido!
Fuente: habr.com
