首页 > 解决方案 > 在 Linux 中用户友好地执行下载的文件

问题描述

在我的网站上,我需要让用户能够在 Linux 上下载并轻松启动我的可执行文件(AppImage 二进制文件)。对于Windows版本,它只是.exe在下载并单击后才起作用:

  1. 下载文件
  2. 单击浏览器下载面板中的文件以启动它

对于 Linux 用户现在需要执行以下操作:

  1. 下载文件
  2. 从浏览器下载面板打开包含文件的文件夹
  3. 右键添加执行权限
  4. 单击“允许执行此文件”复选框
  5. 按确定
  6. 单击文件以启动它

对于普通用户来说很难解释这个流程,它会让用户离开。

是否可以像在 Windows 上那样将其最小化到最少的点击?

任何建议都表示赞赏以实现最少的点击。我可以为任何格式编译应用程序(它在电子上,但我可以在上传之前对其进行处理)

我考虑过使用.deb. 它只会限制基于 Debian 的应用程序,但主要问题是我没有找到将安装后运行到 exec 应用程序的能力,并且我不想要求用户进入开始菜单。

标签: linuxdownloadexecutablebinappimage

解决方案


可执行位是基本的 UNIX 安全措施,因此解决这个问题并不容易(有充分的理由)。考虑到这一点,对于下载文件的特定情况,Windows 也应用了一些限制(特殊的 NTFS 流告诉 Windows 资源管理器警告来自 Internet 的可执行文件的危险)。

您当然可以将您的应用程序作为.tar.something存档提供并在其中存储可执行文件。提取后,它们通常会设置正确的执行位。

deb-package 的选项也可以解决您的问题(对于某些用户),但有点复杂:

  • 用户下载deb包
  • 用户单击 deb 包并安装了一些程序,该程序提供了用于安装包的 GUI(如 gdebi)。就像在 Windows 上一样,会有一些以对话框形式出现的“安全检查”,用户需要在其中输入(sudo)密码。之后,apt 将安装该软件包
  • 如果包创建正确,它可以正确传输可执行位,这样之后就不需要显式更改权限。如果由于某种原因需要在安装后做一些事情,Debian 软件包可以提供postinst在软件包安装结束时运行的脚本(以 root 身份!)。

无论如何,由于处理可执行文件是 Linux 上的常见过程,它可能不会像预期的那样吓跑这么多用户。如果您想让用户感到舒适,请按照他们的期望/喜欢的方式提供包。在 Windows 上,我认为这是一个.msi包,而在 Linux 上,我更喜欢与我的发行版 ( .deb, .rpm) 相对应的包。

如果您希望用户定期更新他们的包(有利于安全),那么提供一个“存储库”是有帮助的,用户可以从中添加和安装您的包。当然,“最好的”是将软件包作为分发的一部分,但这是相当大的努力,需要通过很多“质量保证门”:)


推荐阅读