Articulo de referencia

Aplicación portátil

Una unidad USB puede contener aplicaciones portátiles. Una aplicación portátil ( o app portátil ), también llamada software independiente , es un programa informático diseñado p...

Una unidad USB puede contener aplicaciones portátiles.

Una aplicación portátil ( o app portátil ), también llamada software independiente , es un programa informático diseñado para funcionar sin modificar otros archivos ni requerir la instalación de otro software. De esta forma, se puede añadir, ejecutar y eliminar fácilmente de cualquier ordenador compatible sin necesidad de configuración ni efectos secundarios. [ 1 ]

En términos prácticos, una aplicación portátil suele almacenar los datos y la configuración creados por el usuario en el mismo directorio donde reside. Esto facilita la transferencia del programa, junto con las preferencias y los datos del usuario, entre diferentes ordenadores. Un programa que no tenga opciones de configuración también puede ser una aplicación portátil. [ 1 ]

Las aplicaciones portátiles pueden almacenarse en cualquier dispositivo de almacenamiento de datos , incluyendo almacenamiento masivo interno , un recurso compartido de archivos , almacenamiento en la nube o almacenamiento externo como unidades USB , pendrives [ 2 ] y disquetes , almacenando sus archivos de programa y cualquier información de configuración y datos únicamente en el medio de almacenamiento. Si no se requiere información de configuración, un programa portátil puede ejecutarse desde almacenamiento de solo lectura como CD-ROM y DVD-ROM . Algunas aplicaciones están disponibles tanto en versiones instalables como portátiles.

Algunas aplicaciones que no son portátiles por defecto admiten portabilidad opcional mediante otros mecanismos, siendo el más común el uso de argumentos de línea de comandos . Algunos ejemplos incluyen /portableindicar al programa que se comporte como un programa portátil o --cfg=/path/inifileespecificar la ubicación del archivo de configuración.

Al igual que cualquier aplicación, las aplicaciones portátiles deben ser compatibles con el hardware y el sistema operativo del ordenador .

Dependiendo del sistema operativo, la portabilidad es más o menos compleja de implementar; en sistemas operativos como AmigaOS , todas las aplicaciones son portátiles por definición.

Aplicaciones portátiles para Windows

La mayoría de las aplicaciones portátiles no dejan archivos ni configuraciones en el equipo anfitrión ni modifican el sistema ni su configuración. Es posible que la aplicación no escriba en el registro de Windows [ 3 ] ni almacene sus archivos de configuración (como un archivo INI ) en el perfil del usuario , pero hoy en día, muchas aplicaciones portátiles sí lo hacen; sin embargo, muchas aún almacenan sus archivos de configuración en el directorio portátil. Otra posibilidad, dado que las rutas de archivo suelen variar en diferentes equipos debido a la asignación de letras de unidad , es que las aplicaciones portátiles las almacenen en un formato relativo . Si bien algunas aplicaciones tienen opciones para admitir este comportamiento, muchos programas no están diseñados para ello. Una técnica común para estos programas es el uso de un programa de inicio para copiar las configuraciones y los archivos necesarios al equipo anfitrión cuando se inicia la aplicación y moverlos de vuelta al directorio de la aplicación cuando se cierra.

Una estrategia alternativa para lograr la portabilidad de las aplicaciones en Windows, sin necesidad de modificar su código fuente, es la virtualización : una aplicación se "secuencia" o "empaqueta" en una capa de ejecución que intercepta de forma transparente sus llamadas al sistema de archivos y al registro, y las redirige a otro almacenamiento persistente sin que la aplicación lo sepa. Este enfoque deja la aplicación inalterada, pero con la ventaja de ser portátil.

El mismo enfoque se utiliza para los componentes individuales de la aplicación: bibliotecas de tiempo de ejecución , componentes COM o ActiveX , no solo para la aplicación completa. [ 4 ] Como resultado, cuando los componentes individuales se portan de esta manera, pueden: integrarse en las aplicaciones portátiles originales, instanciarse repetidamente (instalarse virtualmente) con diferentes configuraciones/ajustes en el mismo sistema operativo (SO) sin conflictos mutuos. Dado que los componentes portados no afectan a las entidades relacionadas protegidas por el SO (registro y archivos), los componentes no requerirán privilegios de administrador para su instalación y gestión.

Microsoft vio la necesidad de un registro específico para aplicaciones en su sistema operativo Windows ya en 2005. [ 5 ] Finalmente incorporó parte de esta tecnología, utilizando las técnicas mencionadas anteriormente, a través de su base de datos de compatibilidad de aplicaciones [ 6 ] utilizando su biblioteca de código Detours [ 7 ] , en Windows XP. No puso a disposición ninguna de estas tecnologías a través de sus API del sistema .

Portabilidad en sistemas tipo Unix

Los programas escritos con una base tipo Unix en mente a menudo no hacen suposiciones. Mientras que muchos programas de Windows asumen que el usuario es administrador —algo muy común en la época de Windows 95 / 98 / ME (y en cierta medida en Windows XP / 2000 , aunque no en Windows Vista ni Windows 7 )—, esto provocaría rápidamente errores de "Permiso denegado" en entornos tipo Unix, ya que los usuarios se encontrarán en un estado sin privilegios con mucha más frecuencia. Por lo tanto, los programas generalmente están diseñados para usar la HOMEvariable de entorno para almacenar la configuración (por ejemplo, $HOME/.w3mpara el navegador w3m ). El enlazador dinámico proporciona una variable de entorno LD_LIBRARY_PATHque los programas pueden usar para cargar bibliotecas desde directorios no estándar. Suponiendo que /mntcontiene los programas portátiles y la configuración, una línea de comandos podría verse así:

HOME=/mnt/home/user LD_LIBRARY_PATH=/mnt/usr/lib /mnt/usr/bin/w3m www.example.com

Se puede lograr una aplicación Linux sin necesidad de interacción del usuario (por ejemplo, adaptando un script o una variable de entorno) en rutas de directorio variables con la opción del enlazador GCC que permite una ruta de búsqueda de biblioteca relativa. [ 8 ]$ORIGIN

No todos los programas respetan esto; algunos ignoran por completo $HOME y, en su lugar, realizan una búsqueda de usuario /etc/passwdpara encontrar el directorio de inicio, lo que dificulta la portabilidad.

También hay formatos de paquetes entre distribuciones que no requieren derechos de administrador para ejecutarse, como Autopackage , AppImage o CDE, pero que obtuvieron una aceptación y un soporte limitados en la comunidad Linux en la década de 2000. [ 9 ] [ 10 ] [ 11 ] Alrededor de 2015, la idea de empaquetar de forma portátil e independiente de la distribución para el ecosistema Linux ganó más tracción cuando Linus Torvalds discutió este tema en la DebConf 2014 y posteriormente respaldó AppImage para su aplicación de registro de buceo Subsurface . [ 12 ] [ 13 ] [ 14 ] Por ejemplo, MuseScore y Krita siguieron en 2016 y comenzaron a usar compilaciones de AppImage para la implementación de software. [ 15 ] [ 16 ] RedHat lanzó en 2016 el sistema Flatpak , que es un sucesor del proyecto glick de Alexander Larsson que se inspiró en klik (ahora llamado AppImage). [ 17 ] De manera similar, Canonical lanzó en 2016 paquetes Snap para Ubuntu y muchas otras distribuciones de Linux.

Muchas aplicaciones de Mac que se pueden instalar arrastrando y soltando son inherentemente portátiles como paquetes de aplicaciones de Mac. [ 18 ] Ejemplos incluyen Mozilla Firefox , Skype y Google Chrome que no requieren acceso de administrador y no necesitan colocarse en un área central restringida. Las aplicaciones colocadas en /Users/username/Applications( ~/Applications) se registran con macOS LaunchServices de la misma manera que las aplicaciones colocadas en la /Applicationscarpeta principal. Por ejemplo, haciendo clic con el botón derecho en un archivo en Finder y luego seleccionando "Abrir con..." se mostrarán las aplicaciones disponibles tanto en /Applications como en ~/Applications. Los desarrolladores pueden crear instaladores de productos de Mac que permiten al usuario realizar una instalación en el directorio de inicio, etiquetada como "Instalar solo para mí" en la interfaz de usuario del instalador. [ 19 ] Dicha instalación se realiza como el usuario.

Véase también

Referencias

  1. 1 2 "¿Qué es una aplicación portátil?" . PortableApps.com. Definición . Consultado el 15/11/2022 .
  2. "Aplicaciones y juegos portátiles gratuitos para USB ▷ Pendrive Software" . pendriveapps.com . 8 de enero de 2007. Consultado el 17 de junio de 2024 .
  3. ""¿Qué es una aplicación portátil?"" . PortableApps.com. Directrices . Consultado el 15-11-2022 .
  4. "Tecnología de conversión de aplicaciones portátiles" . Sphinx Software. Archivado del original el 7 de septiembre de 2010. Recuperado el 19 de enero de 2012 .
  5. "Registro de aplicaciones portátiles" . ip.com . Consultado el 19 de enero de 2012 .
  6. Ionescu, Alex. "Secretos de la base de datos de compatibilidad de aplicaciones (SDB) – Parte 1" . Consultado el 19 de enero de 2012 .
  7. "Desvíos" . Microsoft Research . Consultado el 19 de enero de 2012 .
  8. Hustvedt, Eskild (8 de febrero de 2009). "Nuestra nueva forma de cumplir con la LGPL" . Archivado del original el 20 de febrero de 2009. Consultado el 9 de marzo de 2011. Se puede usar la palabra clave especial $ORIGIN para indicar "en relación con la ubicación real del ejecutable". De repente, descubrimos que podíamos usar -rpath $ORIGIN/lib y funcionó. El juego cargaba las bibliotecas correctas, por lo que era estable y portátil, ¡y además cumplía completamente con el espíritu y la letra de la LGPL!
  9. Vining, Nicholas (13 de octubre de 2010). "Querida comunidad Linux: Necesitamos hablar" . Gaslamp Games . Recuperado el 30 de enero de 2011. La comunidad Linux, en su infinita sabiduría, procede a criticar duramente a CDE. [...] "Todos deberíamos usar simplemente la gestión de paquetes". Esto es lo que quiero decir, y que mis palabras sean llevadas desde las cimas de las montañas, escritas en pequeñas tablas de piedra: La gestión de paquetes no es una panacea universal.
  10. Byfield, Bruce (12 de febrero de 2007). "Autopackage lucha por ser aceptado" . linux.com. Archivado del original el 31 de marzo de 2008. Recuperado el 21 de enero de 2012. Si Hearn tiene razón, la verdadera lección de Autopackage no es cómo mejorar la instalación de software, sino la dificultad —quizás la imposibilidad— de realizar cambios a gran escala en la arquitectura de Linux tan avanzada su historia. Es una conclusión desalentadora y decepcionante para un proyecto que alguna vez pareció tan prometedor.
  11. "AppImages" . Proyecto Elementary. Archivado del original el 13 de diciembre de 2010. Recuperado el 19 de enero de 2012 .
  12. Linus Torvalds (29-08-2014). "Preguntas y respuestas con Linus Torvalds" (video) . DebConf 2014 Portland . debian.net . 6:28 . Recuperado el 14-05-2016 . Lo he visto de primera mano con el otro proyecto en el que estoy involucrado, que es mi aplicación de registro de buceo. Hacemos binarios para Windows y OSX, básicamente no hacemos binarios para Linux. ¿Por qué? Porque hacer binarios para aplicaciones de escritorio de Linux es un verdadero dolor de cabeza.
  13. Torvalds, Linus . "Esto es genial" . Google+ . Finalmente me animé a probar la versión "AppImage" de +Subsurface, y realmente parece que "simplemente funciona".
  14. Hohndel, Dirk (25-11-2015). "Esto es genial" . Google+ . Yo, como mantenedor de la aplicación, ya no quiero que mi aplicación se incluya en una distribución. Demasiado dolor para ningún beneficio. Cada vez que recibo un informe de error, mi primera pregunta es "¿qué versión de qué distribución? ¿qué versión de qué biblioteca? ¿Qué conjunto de parches descabellados se aplicaron a esas bibliotecas?". No, Windows y Mac lo hacen bien. Yo controlo las bibliotecas con las que se ejecuta mi aplicación. [...] Con una AppImage puedo darles justo eso. Algo que se ejecuta en su computadora.
  15. Weiss, Isaac. "MuseScore 2.0.3 se ha publicado" . MuseScore.org . MuseScore. Archivado del original el 23 de abril de 2016. Consultado el 5 de abril de 2016 .
  16. «Lanzamiento de Krita 3.0» . Krita.org . Krita. 2016-05-31.
  17. Experimentos con paquetes de aplicaciones sin tiempo de ejecución por Alex Larsson (2007)
  18. "Distribución de su aplicación" . developer.apple.com . Consultado el 23 de mayo de 2017 .
  19. "Referencia XML de distribución" . developer.apple.com . Consultado el 23 de mayo de 2017 .