Bottles在Linux上运行Windows软件

Bottles 类似于 Wine(一种流行的 Windows 兼容层),但提供了一些高级选项。此外,Bottles 允许您在 Linux 上轻松安装 Windows 软件。

由 Wine 提供支持,Bottles 带来了一个直观的图形用户界面,可以在 Linux 上运行 Windows 可执行文件和程序。

Linux 无疑是提供高度安全和可靠环境的最佳操作系统。但是,由于缺乏软件支持,Linux 总是受到一些人的反对。

如果您也有同感,请不要担心,因为现在您可以使用 Bottles 来使用 Linux 中的任何软件。Bottles 类似于 Wine(一种流行的 Windows 兼容层),但提供了一些高级选项。此外,Bottles 允许您在 Linux 上轻松安装 Windows 软件。如果你也有兴趣在 Linux 上运行任何 Windows 软件,你应该在你的机器上安装 Bottles。

因此,让我们从有关 Bottles 的一些基本信息开始。

什么是 Bottles?

Bottles 是一个开源应用程序,可以以一种完全先进的方式简化和管理 Wine 进程。Wine 进程模仿 Windows C 驱动器并包含在 Linux 上使用基于 Windows 的应用程序所需的所有文件。然而,Wine 进程需要一些升级。因此,Bottles 被开发为以基于 GUI 的方法提供 Wine 进程。

简单来说,这个工具通过模仿 C 盘提供 Linux 中的 Windows 环境,让你可以在 Linux 中运行不同的游戏和软件。您还可以根据任何特定程序的要求使用其调整选项来更改系统设置。

每次您为应用程序添加任何依赖项时,Bottles 都会使用默认配置生成一个全新的状态。因此,在 Linux 上运行 BAT、MSI 和 EXE 文件变得很容易,因为 Bottles 会根据可执行文件修改系统。

Bottles 是结合 Python 和 Bash 开发的,Bottles 的当前版本是第三个版本,但如果您愿意,仍然可以使用第一个版本。但是,由于一些内部问题,第二个版本已停产。

Bottles 的主要特点

  • 在 Bottles 中直接从文件管理器添加环境变量和运行可执行文件很简单
  • 它具有自动应用程序检测、安装、管理和包修复选项
  • 它支持基于社区驱动存储库的集成依赖安装程序
  • Bottles 内置了游戏性能改进和优化选项,包括 fsync、着色器编译器、DXVK、缓存管理、esync 等。
  • 您可以创建定期备份并导入必要的数据
  • 它具有 WineHQ 和 ProtonDB 的访问选项
  • 内置的依赖管理器和多语言支持使其更易于使用
  • 自带集成任务管理器,监控软件运行
  • 安装程序的智能检测系统。

如何在 Linux 中安装和使用 Bottles

您可以通过 Flatpak、DEB、AppImage、Snap 等不同的包格式安装 Bottles。不过,Flatpak、AppImage 和 Snap 之间存在差异,请根据需要选择一种。

让我们在 Ubuntu 中使用 Flatpak 安装 Bottles;首先在您的系统上安装 Flatpak。

Flatpak安装成功后,使用以下命令安装Bottles:

sudo flatpak install flathub com.usebottles.bottles

安装后,访问“应用程序”菜单并搜索“Bottles”以启动它。


单击箭头图标开始 Bottles 配置过程。

一切都设置好后,让我们安装 WinRAR,它仅适用于 Windows,不适用于 Linux。为此,首先,访问官方 WinRAR 网站并下载最新版本。

下载:​​ WinRAR​​

在 Bottles 中,单击加号( + ) 图标或创建新的 Bottle(Create a new Bottle)按钮并输入您要使用的名称。


当我们安装 WinRAR 时,它是一个 Windows 应用程序,从 Environment 列表中选择Application并单击Create按钮。您可以选择列表中的不同环境:

游戏Gaming:创建一个专注于游戏的Bottles,并进行大量调整以帮助您顺利运行游戏
应用程序Application:通过改进来修改瓶子以运行不同的 Windows 桌面应用程序
自定义Custom:创建一个没有特别调整的自定义Bottles(它有助于用户试验设置)


完成后,系统将根据 Windows 应用程序的要求开始设置配置。

现在,您将看到Bottles主界面中列出的新Bottles。双击 WinRAR 将其打开。

在这里,您可以根据需要更改设置、首选项和安装程序选项。

单击“运行可执行文件 Run Executable”选项并选择 WinRAR 的 EXE 文件。

选择 WinRAR 安装文件后,您将获得一个安装程序的新窗口。

最后,您可以在 Linux 上访问 WinRAR 以提取任何存档文件,包括 RAR 和 ZIP。

如您所见,Bottles 使用 Wine 进程创建了用于安装 WinRAR 的 Windows 环境。

Bottles 的高级选项

您可以在 Installers 选项中为任何应用程序安装不同的程序来调整 Bottles。它类似于 ProtonDB 的 Installer 选项,并根据程序与系统的兼容性显示程序的评级。例如,白金级(Platinum)意味着它高度兼容,而青铜级意味着它与系统的一致性较差。


让我们安装 EA Launcher,因为它的评级为白金Platinum。单击下载符号以获取它。

从Dependencies选项中,您可以下载可以增强 Windows 程序兼容性的编解码器和库。该列表包含不同的依赖项以及有关它们的特定详细信息,因此您可以相应地安装它们。

使用 Bottles 在 Linux 中使用任何 Windows 软件

关于为什么许多 Windows 软件不支持 Linux 一直存在争论。许多 Linux 用户都在寻找 Wine 的替代品来在 Linux 上运行 Windows 可执行文件,如果您发现自己也在做同样的事情,Bottles 就是为您准备的。它是一个兼容层,您可以使用它在 Linux 上运行任何 Windows 软件。基于 Wine 进程,Bottles 具有高级选项和直观的图形环境。

您可以安装任何 Windows 软件,只要您在创建和安装程序之前调整它的 Bottles。否则,它可能无法在您的系统上正常运行,并且您可能会遇到错误、崩溃、错误等。

您可以使用 Flatpak(一种与发行版无关的打包格式)在任何发行版上安装 Bottles,因为几乎所有基于 Linux 的操作系统都支持它。此外,如果您在 Linux 上安装 Bottles 时遇到任何错误,也可以使用 AppImages。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
import os # 创建储存用户信息和漂流瓶信息的文件 if not os.path.exists('users.txt'): with open('users.txt', 'w') as f: pass if not os.path.exists('bottles.txt'): with open('bottles.txt', 'w') as f: pass # 读取用户信息和漂流瓶信息 with open('users.txt', 'r') as f: users = eval(f.read()) with open('bottles.txt', 'r') as f: bottles = eval(f.read()) # 定义用户注册函数 def register(): username = input('请输入用户名:') if username in users: print('该用户名已被注册,请重新输入!') return password = input('请输入密码:') users[username] = password print('注册成功!') # 定义用户登录函数 def login(): username = input('请输入用户名:') if username not in users: print('该用户不存在,请重新输入!') return password = input('请输入密码:') if users[username] != password: print('密码错误,请重新输入!') return print('登录成功!') # 定义写入漂流瓶信息的函数 def write_bottle(): content = input('请输入漂流瓶内容:') username = input('请输入你的用户名:') if username not in users: print('该用户不存在,请先注册!') return bottle = {'content': content, 'owner': username} bottles.append(bottle) print('漂流瓶已经扔进海里了!') # 定义读取漂流瓶信息的函数 def read_bottle(): if not bottles: print('海里没有漂流瓶!') return bottle = bottles.pop() print(f'你捞起了一瓶来自{bottle["owner"]}的漂流瓶,里面写着:{bottle["content"]}') # 定义保存用户信息和漂流瓶信息的函数 def save_data(): with open('users.txt', 'w') as f: f.write(str(users)) with open('bottles.txt', 'w') as f: f.write(str(bottles)) while True: print('1. 注册') print('2. 登录') print('3. 写入漂流瓶') print('4. 读取漂流瓶') print('5. 退出') choice = input('请选择功能:') if choice == '1': register() elif choice == '2': login() elif choice == '3': write_bottle() elif choice == '4': read_bottle() elif choice == '5': save_data() print('再见!') break else: print('输入有误,请重新输入!')这串代码有误;请修改
06-03
这段代码的主要问题在于使用 `eval()` 函数来读取文件中的内容,这会让代码存在安全隐患。此外,还有一些细节问题,比如注册成功后应该保存用户信息,读取漂流瓶时应该判断漂流瓶列表是否为空。 这里给出一个修改后的版本: ```python import json import os # 创建储存用户信息和漂流瓶信息的文件 if not os.path.exists('users.txt'): with open('users.txt', 'w') as f: json.dump({}, f) if not os.path.exists('bottles.txt'): with open('bottles.txt', 'w') as f: json.dump([], f) # 读取用户信息和漂流瓶信息 with open('users.txt', 'r') as f: users = json.load(f) with open('bottles.txt', 'r') as f: bottles = json.load(f) # 定义用户注册函数 def register(): username = input('请输入用户名:') if username in users: print('该用户名已被注册,请重新输入!') return password = input('请输入密码:') users[username] = password print('注册成功!') save_data() # 定义用户登录函数 def login(): username = input('请输入用户名:') if username not in users: print('该用户不存在,请重新输入!') return password = input('请输入密码:') if users[username] != password: print('密码错误,请重新输入!') return print('登录成功!') # 定义写入漂流瓶信息的函数 def write_bottle(): content = input('请输入漂流瓶内容:') username = input('请输入你的用户名:') if username not in users: print('该用户不存在,请先注册!') return bottle = {'content': content, 'owner': username} bottles.append(bottle) print('漂流瓶已经扔进海里了!') save_data() # 定义读取漂流瓶信息的函数 def read_bottle(): if not bottles: print('海里没有漂流瓶!') return bottle = bottles.pop() print(f'你捞起了一瓶来自{bottle["owner"]}的漂流瓶,里面写着:{bottle["content"]}') save_data() # 定义保存用户信息和漂流瓶信息的函数 def save_data(): with open('users.txt', 'w') as f: json.dump(users, f) with open('bottles.txt', 'w') as f: json.dump(bottles, f) while True: print('1. 注册') print('2. 登录') print('3. 写入漂流瓶') print('4. 读取漂流瓶') print('5. 退出') choice = input('请选择功能:') if choice == '1': register() elif choice == '2': login() elif choice == '3': write_bottle() elif choice == '4': read_bottle() elif choice == '5': save_data() print('再见!') break else: print('输入有误,请重新输入!') ``` 修改后的代码使用 `json` 模块来读写文件,同时将保存数据的操作封装成了一个函数,并在必要的时候调用该函数。此外,对输入的数据进行了一定的验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值