¿Sabía que puede ejecutar una línea de comandos de Linux en un dispositivo iOS? Es posible que se pregunte: "¿Por qué debería usar aplicaciones de texto en el iPhone?" Buena pregunta. Pero si está leyendo Opensource.com, probablemente sepa la respuesta: los usuarios de Linux quieren poder usarlo en cualquier dispositivo y quieren usar su propia configuración.
Pero sobre todo anhelan resolver problemas complejos.
Tengo un iPad 2 Mini de siete años que sigue siendo bueno para leer libros electrónicos y otras tareas. Sin embargo, también quiero usarlo para acceder a la línea de comandos de las aplicaciones con mi conjunto de programas y scripts, sin los cuales no puedo trabajar. Necesito un entorno al que estoy acostumbrado, así como mi entorno de desarrollo estándar. Y así es como me las arreglé para lograr esto.
Conexión a un teclado
Trabajar con la línea de comandos para programar a través del teclado en pantalla de un teléfono o tableta es bastante inconveniente. Recomiendo conectar un teclado externo, ya sea por Bluetooth o usando un adaptador de conexión de cámara para conectar un teclado con cable (yo elegí este último). Conectar un teclado dividido Kinesis Advantage a un iPhone 6 da como resultado un dispositivo extraño que parece
Instalación de la carcasa en iOS
Para ejecutar un sistema Linux completamente funcional en iOS, hay dos opciones:
- Shell seguro (SSH) conectado a una máquina Linux
- Ejecutar un sistema virtual usando Alpine Linux con iSH, que es de código abierto pero debe instalarse usando la aplicación TestFlight patentada de Apple
Como alternativa, hay dos aplicaciones de emulador de terminal de código abierto que brindan la capacidad de trabajar con herramientas de código abierto en un entorno limitado. Esta es la opción más simplificada; de hecho, no es así como ejecuta Linux, sino las herramientas de Linux. Existen severas limitaciones cuando se trabaja con estas aplicaciones, pero se obtiene una funcionalidad de línea de comandos parcial.
Antes de pasar a soluciones complejas, consideraré la forma más simple.
Opción 1: Shell en el Sandbox
Una de las formas más fáciles es instalar la aplicación iOS
Aproximadamente la misma funcionalidad.
Opción 2: SSH
Otro paso más allá de descargar una aplicación es configurar un cliente SSH. Durante mucho tiempo, hemos podido usar cualquiera de las muchas aplicaciones de cliente SSH de iOS para conectarnos a un servidor que ejecuta Linux o BSD. La ventaja de usar SSH es que cualquier distribución puede ejecutarse en el servidor con cualquier software. Trabaja de forma remota y los resultados de su trabajo simplemente se transfieren al emulador de terminal en su dispositivo iOS.
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 una conexión de red. Esta no es la mayor barrera, pero no se puede ignorar por completo, por lo que es posible que deba trabajar con Linux sin un servidor.
Si este es tu caso, entonces tendrás que dar un paso más allá.
Ejecución de Alpine Linux con iSH
Característica importante: aplicación experimental. Dado que iSH es actualmente una aplicación de prueba, no espere un rendimiento consistente y confiable. Las aplicaciones de TestFlight tienen un límite de tiempo. Mi compilación actual solo funcionará durante 60 días. Esto significa que después de 60 días seré expulsado y tendré que reincorporarme a la siguiente fase de la prueba iSH. Además, perderé todos mis archivos si no los exporto con Archivos en iOS o los copio a un host Git o
Instalación iSH
Empezar con la instalación
Usando el enlace, TestFlight instalará la aplicación iSH en su dispositivo. Como con cualquier otra aplicación, aparecerá un icono en la pantalla.
Gestión de paquetes
iSH ejecuta un emulador x86 con Alpine Linux. Alpine es una pequeña distribución que tiene menos de 5 MB de tamaño. Era la primera vez que trabajaba con Alpine, así que pensé que el minimalismo sería molesto, pero me gustó mucho.
Alpine usa un administrador de paquetes
Cómo instalar el paquete:
apk add package
Cómo eliminar un paquete:
apk del package
Cómo encontrar otros comandos e información:
apk --help
Actualización del administrador de paquetes:
apk update
apk upgrade
Instalación de un editor de texto
El editor de texto estándar de Alpine es Vi, pero prefiero Vim, así que lo instalé:
apk add vim
Si lo desea, puede instalar Nano o Emacs.
Cambio de caparazón
No sé ustedes, pero yo necesitaba
instalación de pescado:
apk add fish
Si necesita Bash con sus páginas man y autocompletado, instálelas:
apk add bash bash-doc bash-completion
La ideología minimalista de Alpine generalmente significa que algunos programas que son un solo paquete en otras distribuciones se dividirán en varios paquetes más pequeños. También significa que puede ajustar y reducir el tamaño del sistema tal como lo desee.
Para obtener más información sobre la instalación de Bash, consulte
Cambiar el shell predeterminado
Una vez que Fish está instalado, puede cambiarlo temporalmente escribiendo fish
y yendo a la concha. Pero quiero que fish sea el caparazón predeterminado, y el comando chsh
, que usé en otras distribuciones, no funcionó.
Primero, averigüemos dónde está instalado fish:
which fish
Esto es lo que me pasó:
/usr/bin/fish
A continuación, cambie el shell de inicio de sesión a fish. Puedes usar cualquier editor que quieras. Si es un principiante, instale Nano (con el comando apk add nano
) para que pueda editar los archivos de configuración y guardarlos mediante CTRL+X, confirmar y salir.
Pero usé Vim:
vim /etc/passwd
Mi primera línea fue:
root:x:0:0:root:/root:/bin/ash
Para hacer que el pescado sea el caparazón predeterminado, cambie esta línea a lo siguiente:
root:x:0:0:root:/root:/usr/bin/fish
Luego guarde el archivo y salga.
Estoy seguro de que hay una buena manera de cambiar la ruta del shell para que pueda usarse de inmediato. Pero no lo conozco, así que recomiendo volver al navegador de la aplicación, forzar la salida del shell y, para estar seguro, apagar y reiniciar el iPad o iPhone. Abra iSH de nuevo y ahora, además del mensaje "¡Bienvenido a Alpine!" e información sobre el lanzamiento desde el apk, verá el mensaje de bienvenida estándar de inicio de sesión de Fish: Bienvenido a fish, la simpática concha interactiva. ¡Hurra!
Configurando Python y pip
decidí agregar
apk add python3
Aunque Python 2.x está desactualizado, también puede instalarlo:
apk add python
Instale un administrador de paquetes de Python llamado pip y
python3 -m ensurepip --default-pip
Tomará algún tiempo instalar y configurar el administrador de paquetes, así que tenga paciencia.
A continuación, puede descargar una herramienta para transferir archivos a través de la red.
apk add curl
Manuales de lectura
Fish utiliza el autocompletado integrado basado en páginas man. Al igual que otros usuarios de la línea de comandos, uso el manual man
y Alpine no lo tiene instalado. Así que lo instalé con un buscapersonas terminal
apk add man man-pages less less-doc
Además del hombre, uso el magnífico
Lo instalé con pip:
pip install tldr
Equipo tldr
se conecta a la web para buscar páginas cuando encuentra una solicitud de una nueva página. Si necesita saber cómo usar un comando, puede escribir algo como tldr curl
y obtenga una descripción en inglés sencillo y buenos ejemplos sobre cómo usar el comando.
Por supuesto, todo este trabajo de instalación se puede automatizar usando
información adicional
El iSH Wiki tiene una página "
Otra página wiki explica cómo
También puedes instalar Git (¡sí! apk add git
) y envíe su trabajo a un repositorio remoto o envíelo al servidor a través de SSH. Y, por supuesto, puede descargar y ejecutar cualquier cantidad de excelentes proyectos de código abierto desde GitHub.
Puede encontrar más información sobre iSH en estos enlaces:
Sobre los derechos de publicidad
Vdsina ofertas
Fuente: habr.com