Miércoles, Septiembre 19, 2018

Karton: Ejecuta programas en GNU/Linux y macOS

karton-featured

Karton es una herramienta que puede ejecutar programas Linux de forma transparente:

🐧 En una distribución de Linux diferente,
🍎 En macOS,
💻 En una arquitectura diferente (ARMv7 y ARMv8, en un host x86-64).
Para hacer esto, solo necesitas decirle a Karton qué distribución usar, qué paquetes instalar y qué directorios hacer accesibles. Esto se llama una imagen.

Luego puedes ejecutar tus comandos dentro de la imagen simplemente agregando karton run nombre de imagen delante de tus comandos.

Eejemplo:

$ uname -a # Show we are running on macOS. Darwin my-hostname 16.4.0 Darwin Kernel Version 16.4.0 [...] $ # Run the compiler in the Ubuntu image we use for work $ # (which we called "ubuntu-work"): $ karton run ubuntu-work gcc -o test_linux test.c $ # Verify that the program is actually a Linux one. $ # The files are shared and available both on your $ # system and in the image: $ file test_linux test_linux: ELF 64-bit LSB executable, x86-64, [...] $ # Same thing but on 32-bit ARMv7 (in the image we $ # called "ubuntu-work-arm"): $ karton run ubuntu-work-arm gcc -o test_arm test.c $ file test_arm test_arm: ELF 32-bit LSB executable, ARM, EABI5 [...] $ # We can run the ARM program: $ karton run ubuntu-work-arm ./test_arm [... Output of our program ...]

En otro terminal, puedes conectarlo al programa en ejecución y depurarlo.

$ # Find the PID of the test_arm program. $ karton run ubuntu-work-arm ps aux | grep test_arm test_arm 42 [...] test_arm $ # Debug it! $ karton run ubuntu-work-arm gdb --pid 42 GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1 Copyright (C) 2016 Free Software Foundation, Inc. [...] Attaching to process 11 [...] 0x00007f53430e4740 in __nanosleep_nocancel () at ../sysdeps/unix/syscall-template.S:84 84 ../sysdeps/unix/syscall-template.S: No such file or directory. (gdb)

¿Te resulta aburrido cada vez que karton ejecuta el nombre de la imagen? Puedes usar el comando alias, consulta karton help alias.

Caracteristicas

  • Rápido. Lanzar un programa en una imagen toma fracciones de segundo.
  • No es necesario iniciar / detener una máquina virtual o contenedor, se realiza de forma transparente y rápida.
  • Múltiples terminales acceden a la misma imagen en ejecución. Puede iniciar un programa en un terminal y adjuntarlo con gdb desde otro.
  • Manejo automático de directorios y archivos compartidos. Tus archivos son accesibles tanto en su sistema como en los programas que se ejecutan en una imagen.
  • A excepción de los directorios que decides compartir, el sistema de archivos es transitorio. Puede restablecer tus cambios al sistema al instante.
  • Puede ejecutar imágenes de Ubuntu, Debian, Fedora y CentOS.
  • Basado en contenedores Docker.
  • Software libre

 

Más info en la página oficial de Karton

Fuente: maslinux

¿Quién está en línea?

Hay 181 invitados y ningún miembro en línea

Contador de Visitas

9358095
Hoy Hoy 857
Ayer Ayer 1426
Esta semana Esta semana 3725
Este mes Este mes 29363
Total de Visitas Total de Visitas 9358095

Día con más
visitantes

09-13-2018 : 2017

Gracias por su visita