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 497 invitados y ningún miembro en línea