Ejecutar programas de Windows en Linux con Bottles

Wine permite ejecutar bastantes programas de Windows en Linux, pero configurar cada aplicación a mano puede acabar en una mezcla de versiones, librerías y ajustes difícil de mantener. Bottles pone una interfaz encima de ese proceso y separa cada programa en su propio entorno, al que llama botella.

La ventaja no es que vuelva compatible cualquier ejecutable. Lo útil es poder crear un entorno para una aplicación, probar otro runner, instalar una dependencia o restaurar una configuración sin afectar a todos los demás programas de Windows.

Logotipo de Bottles para ejecutar programas de Windows en Linux
Icono oficial de Bottles.

Qué es una botella

Una botella es un prefijo de Wine administrado por Bottles. Dentro tiene su unidad C:, registro, dependencias y configuración. Si instalo dos programas en botellas diferentes, los cambios de uno no deberían contaminar el entorno del otro.

Bottles ofrece perfiles preparados para aplicaciones y juegos. En esta guía me centro en programas normales de Windows: utilidades, clientes antiguos o herramientas que todavía no tienen una versión para Linux. Para un juego, antes comprobaría también Proton y la compatibilidad en Steam.

Antes de instalar: comprobar si existe una alternativa mejor

Ejecutar el programa de Windows no siempre es la mejor opción. Primero revisaría si el desarrollador ofrece una versión nativa, Flatpak, AppImage o aplicación web. Una versión para Linux suele integrarse mejor, actualizarse con menos problemas y necesitar menos espacio.

También conviene consultar la base de compatibilidad o la documentación del programa. Bottles facilita Wine, pero no elimina incompatibilidades con controladores, DRM, componentes del sistema o aplicaciones que dependen de servicios profundos de Windows.

Instalar Bottles en Linux

El método recomendado por el proyecto es Flatpak. Si todavía no lo tengo preparado, puedo seguir el tutorial para instalar Flatpak y añadir Flathub. Después ejecuto:

flatpak install flathub com.usebottles.bottles

También aparece buscando Bottles en tiendas compatibles con Flathub. En el primer inicio puede descargar componentes necesarios, por lo que tarda más que las siguientes aperturas.

Crear una botella para el programa

  1. Abro Bottles y pulso el botón para crear una botella nueva.
  2. Escribo un nombre que identifique el programa, por ejemplo EditorAntiguo.
  3. Elijo el entorno Application. El perfil de juegos activa ajustes distintos que no necesito para una utilidad de escritorio.
  4. Espero a que Bottles cree el prefijo y termine de preparar sus componentes.

Prefiero una botella por programa cuando se trata de aplicaciones importantes o que necesitan dependencias distintas. Se pueden compartir varias aplicaciones compatibles, pero la separación hace mucho más fácil deshacer una prueba que sale mal.

Ejecutar el instalador EXE o MSI

  1. Entro en la botella recién creada.
  2. Pulso Run executable o Ejecutar ejecutable.
  3. Selecciono el instalador .exe o .msi descargado de la web oficial.
  4. Sigo el asistente como lo haría en Windows.
  5. Al terminar, vuelvo a la botella y compruebo si Bottles ha detectado el acceso al programa.

No ejecutaría instaladores procedentes de páginas de descargas genéricas. Wine no es un antivirus: un ejecutable malicioso sigue pudiendo acceder a los recursos que tenga permitidos la aplicación.

Crear un acceso directo

Después de instalar, Bottles suele mostrar el programa en el apartado Programs. Desde allí puedo ejecutarlo y, según la versión, añadirlo a la biblioteca o crear una entrada en el menú de aplicaciones.

Si no aparece automáticamente, busco su ejecutable dentro de la unidad virtual C:. Suele estar bajo Program Files o Program Files (x86). No confundiría el instalador descargado con el ejecutable final del programa.

Qué hacer si el instalador no ve una carpeta

Al estar instalado como Flatpak, Bottles puede no tener acceso directo a todos los discos y carpetas del equipo. Primero probaría el selector de archivos normal. Si necesito que una botella trabaje siempre con una ubicación concreta, puedo darle acceso con Flatseal.

Lo recomendable es añadir sólo la carpeta necesaria, por ejemplo /mnt/Datos/Proyectos, en lugar de abrir todo el sistema. En nuestra guía de permisos Flatpak con Flatseal explicamos cómo hacerlo y cómo restablecer el cambio.

Dependencias: instalarlas sólo cuando hacen falta

Algunas aplicaciones necesitan componentes de Microsoft como determinadas bibliotecas de Visual C++, .NET o fuentes. Bottles incluye un apartado de dependencias para instalarlas dentro de la botella seleccionada.

No instalaría una lista entera «por si acaso». Primero ejecuto el programa, leo el error y consulto sus requisitos. Añadir muchas dependencias a la vez ocupa espacio y hace más difícil saber cuál ha cambiado el comportamiento.

Cambiar el runner sin tocar las demás botellas

El runner es la versión o variante de Wine que ejecuta la botella. Una aplicación puede funcionar con el valor predeterminado y otra necesitar uno diferente. Bottles permite administrar runners y elegirlos por botella.

Antes de cambiarlo anotaría cuál estaba seleccionado y haría una copia del entorno si contiene una configuración importante. Que un runner más reciente exista no significa que vaya a mejorar todos los programas; también puede introducir una regresión.

Si el programa no arranca

  1. Compruebo que el instalador y el programa sean de una arquitectura compatible.
  2. Abro los registros de la botella y busco el primer error útil, no sólo la última línea.
  3. Reviso los requisitos oficiales del programa.
  4. Instalo únicamente la dependencia que falte.
  5. Pruebo otro runner después de guardar el estado anterior.
  6. Compruebo si el problema está documentado en el proyecto o en Wine.

Crear botellas nuevas al azar puede servir para confirmar si el entorno se ha estropeado, pero no sustituye leer el error. Si una aplicación necesita un controlador de Windows o una función del kernel que Wine no implementa, ninguna combinación de botones lo arreglará.

Hacer una copia antes de experimentar

Una botella puede contener ajustes y documentos del programa. Antes de cambiar dependencias, runner o registro, utilizo las funciones de copia o exportación disponibles en Bottles y guardo el archivo fuera de la propia botella.

La exportación del entorno no reemplaza una copia de los documentos importantes. Si el programa guarda proyectos en una carpeta del usuario, esa carpeta debe formar parte de la copia de seguridad habitual.

Desinstalar un programa o eliminar la botella

Para conservar otros programas de la misma botella puedo ejecutar el desinstalador de Windows. Si la botella estaba dedicada a una sola aplicación y ya no necesito nada de ella, eliminarla suele ser más limpio: se retiran el prefijo, sus dependencias y sus ajustes juntos.

Antes reviso si hay documentos guardados dentro de la unidad C: virtual. Borrar la botella elimina su contenido; no asumiría que todos los archivos están en Documentos de Linux.

Bottles, Wine o una máquina virtual

  • Bottles: la opción más cómoda para mantener varias aplicaciones Wine separadas y cambiar su configuración desde una interfaz.
  • Wine directamente: ofrece control y encaja bien si ya conozco los prefijos y quiero automatizar el proceso.
  • Máquina virtual: consume más recursos, pero ejecuta un Windows completo y puede ser necesaria para aplicaciones incompatibles con Wine.
  • Arranque dual: mantiene acceso directo al hardware y es la salida para programas o juegos que sencillamente exigen Windows.

Bottles funciona mejor cuando lo trato como un administrador de entornos, no como un botón mágico. Una botella por aplicación importante, pocos cambios cada vez y una copia antes de experimentar convierten un proceso bastante propenso a romperse en algo controlable.

Si el programa es compatible, el resultado puede quedar integrado en el escritorio y abrirse como cualquier otra aplicación. Si no lo es, Bottles al menos permite llegar a esa conclusión sin ensuciar todo el entorno de Wine ni repetir desde cero cada intento.

Sergio Almela

Senior Software Engineer con más de diez años de experiencia. Escribo sobre Linux, software libre, backend, arquitectura, rendimiento, testing e IA aplicada al desarrollo.

Ver todas las entradas de Sergio Almela →

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *