如何在Ubuntu上安装.bundle软件包?

我最近下载了一个扩展名为.bundle的软件包。它是VMware-Player-6.0.3-1895310.x86_64.bundle。我想安装vmware-player,但当我打开它时,它却用文本编辑器打开了。
2个回答

首先要警告一下,从Ubuntu软件仓库之外安装文件可能会危及系统的安全。VMware可能是安全的,但还是应该提到一下。
  1. 你需要更改文件的权限以使其可执行:

    chmod a+x VMware-Player-6.0.3-1895310.x86_64.bundle
    
  2. 启动该文件。安装VMWare通常需要root权限,但并非总是如此。所以在这种情况下:

    sudo ./VMware-Player-6.0.3-1895310.x86_64.bundle
    

39谢谢!叹气。如果VMware能在他们的下载页面上说这个就好了..... - nealmcb
5你也可以使用sudo /bin/sh VMware-Player-6.0.3-1895310.x86_64.bundle命令。 - Thusitha Sumanadasa
21那不应该是chmod a+x而不是chmod u+x吗?新用户不应该被鼓励将某物设为全局可执行。 - Morgoth
如何在Dolphin中运行sudo?如果我右键单击文件,没有“以root身份运行”(以管理员身份运行)的选项。如何在不使用shell的情况下安装VMWare? - Eugene Mala
@eugene 我所知道的在Dolphin中运行sudo的唯一选项是以提升的权限运行Dolphin。据我所知,chmod a+xchmod +x是等效的,请参考这里:https://www.systemconf.com/2020/12/25/using-chmod-x-command-on-linux-and-unix-with-examples/ - Cadoiz

如何找到文件的类型?

VMware Player、Workstation和其他产品的.bundle文件实际上是带有嵌入式二进制数据的shell脚本。您可以使用file实用工具来发现或验证这一点,该工具对于查找文件的类型非常有用(可能):

ek@Ilex:~$ file VMware-Player-6.0.3-1895310.x86_64.bundle
VMware-Player-6.0.3-1895310.x86_64.bundle: a /usr/bin/env bash script executable (binary data)

根据这些信息,如何使用该文件?

您可以通过 使其可执行,并使用 chmod 命令来运行它:

chmod +x VMware-Player-6.0.3-1895310.x86_64.bundle
sudo ./VMware-Player-6.0.3-1895310.x86_64.bundle

(如果它是您当前目录中唯一的.bundle文件,您可以使用chmod +x *.bundle./*.bundle。或者键入文件名的前几个字符,然后按Tab,shell会为您输入剩余部分。)

为什么需要sudo

虚拟化软件(例如VMware产品)必须以root身份安装。这就是为什么我在第二行开头放置了sudo的原因。(与虚拟化相反,不使用任何虚拟化的模拟器通常可以由有限用户安装和使用,而无需root采取任何操作。)

为什么在安装程序是图形界面时,纯粹的sudo可以使用?

VMware产品安装程序是图形化的(至少在安装的某个部分)。虽然通常建议避免使用sudo program运行图形程序(更倾向于使用gksudo programsudo -H program),但在这种情况下应该没问题:
  • VMware Player安装程序和其他可执行安装程序不太可能尝试将配置文件写入运行它们的用户的主目录。
  • 即使它们这样做,配置文件也只与安装程序本身有关--它们不会阻止受限用户正常运行程序,因为你不太可能希望以非root用户身份运行此类安装程序。

2对于不同的捆绑文件,情况各异。在Trusty系统中,file Downloads/VMw*显示为VMware-Player-7.0.0-2305329.x86_64.bundle: data。相反,您可以通过使用cat -vt ~/Downloads/V*|more命令查看文件的开头,该命令会显示以一行指示它是一个shell脚本开始:#!/usr/bin/env bash - nealmcb
VMware安装程序的附加选项 ./VMware-Player-...x86_64.bundle --help - Pau Coma Ramirez
当文件告诉你“/usr/bin/env bash脚本可执行”时,使用/bin/sh是否正确?这是由@thusitha sumanadasa另一个答案的评论中建议的 - 或者使用bashsh是否很少有区别? - Cadoiz