ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Balena Etcher 在 Linux 上报 “No polkit authentication agent found“ 怎么解决

Balena Etcher 在 Linux 上报 “No polkit authentication agent found“ 怎么解决 Balena Etcher 在 Linux 上报 No polkit authentication agent found 怎么解决【免费下载链接】etcherFlash OS images to SD cards USB drives, safely and easily.项目地址: https://gitcode.com/GitHub_Trending/et/etcher在 GNU/Linux 上用 EtcherbalenaEtcher写镜像时烧录过程需要以提权方式写入设备。如果你的系统里没有可用的 polkit 认证代理提权这一步就会失败应用弹出标题为No polkit authentication agent found的错误正文是Please install a polkit authentication agent for your desktop environment of choice to continue这条错误的含义在 docs/FAQ.md 和 docs/USER-DOCUMENTATION.md 中有一致的说明Etcher 需要一个可用的 polkit authentication agent才能弹出安全的密码输入对话框来完成提权。解决路径就是为你的桌面环境安装对应的认证代理然后重新执行烧录操作。为什么 Etcher 在 Linux 上依赖 polkit 认证代理从 lib/shared/sudo/linux.ts 可以看到 Etcher 在 Linux 上提权的实现它依次检查/usr/bin/kdesudo和/usr/bin/pkexec是否存在且可执行存在则用于执行提权命令。当使用的是pkexec时会额外加上--disable-internal-agent参数——即禁用 pkexec 自带内部的认证代理完全依赖系统里独立运行的桌面环境认证代理来弹出密码框。也就是说pkexec --disable-internal-agent模式下如果系统里没有任何图形化的 polkit 认证代理在运行密码框无从弹出提权流程就会以No polkit authentication agent found.报错结束。lib/shared/permissions.ts 捕获到这条内部错误信息后就抛出了上面那个带提示语的用户错误要求你安装一个与你桌面环境匹配的 polkit 认证代理。安装匹配的 polkit 认证代理项目文档给出的解决办法是确认你的桌面环境安装了 polkit authentication agent见 docs/USER-DOCUMENTATION.md 的 “No polkit authentication agent found error in GNU/Linux” 一节措辞与 FAQ 相同Make sure you have one installed for the desktop environment of your choice。具体装哪个包取决于你使用的发行版和桌面环境。仓库 package.json 的hostDependencies中Debian 系Debian/Ubuntu运行环境声明的依赖为polkit-1-auth-agent | policykit-1-gnome | polkit-kde-1这里的|表示三者任一满足即可分别对应不同的桌面环境。在 Debian/Ubuntu 系发行版上从这三个包中挑选与你桌面环境匹配的一个安装即可例如 GNOME 环境对应policykit-1-gnome、KDE 环境对应polkit-kde-1。文档没有给出其他发行版的具体包名清单因此非 Debian 系发行版请按本发行版软件源中对应的 polkit 认证代理包来安装。如何验证问题已解决安装认证代理后重新打开 Etcher再次执行之前触发提权的烧录操作。判断依据是提权环节不再弹出No polkit authentication agent found错误而是出现安全的密码输入对话框输入密码后写操作继续执行。这就是文档中描述的认证代理的作用——show a secure password prompt dialog to perform elevation。另外注意一个分支如果你系统里装有可执行的/usr/bin/kdesudoEtcher 会优先使用它而不是pkexec见 lib/shared/sudo/linux.ts 中checkLinuxBinary的检查顺序。这种情况下认证方式由 kdesudo 自身提供是否还受该报错影响以实际表现为准。注意与这条错误区分开lib/shared/permissions.ts 中对提权失败还有其他几种独立处理遇到时不要与 polkit 报错混淆Your user doesnt have enough privileges to proceed对应内部错误 is not in the sudoers file说明当前用户对写盘所需的 sudo 权限不足与认证代理是否安装无关The elevated process died unexpectedly对应Command failed:开头的内部错误附带的描述里会给出进程错误码User did not grant permission.对应你在认证对话框中主动拒绝了授权此时操作被标记为取消而不是系统错误。只有No polkit authentication agent found这一条指向缺少桌面环境的 polkit 认证代理按本文步骤安装匹配的代理包即可解决。【免费下载链接】etcherFlash OS images to SD cards USB drives, safely and easily.项目地址: https://gitcode.com/GitHub_Trending/et/etcher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表