当我尝试使用以下命令将 Debian 10 上使用 Flatpak 安装的 Firefox 添加到替代方案时,出现错误:
命令:
sudo update-alternatives --install /usr/bin/gnome-www-browser gnome-www-browser "/usr/bin/flatpak run org.mozilla.firefox" 50
错误:
update-alternatives: error: alternative path /usr/bin/flatpak run org.mozilla.firefox doesn't exist
如何才能成功将使用 Flatpak 安装的程序输入到替代方案中?
答案1
正如错误消息所暗示的,“update-alternatives”处理文件路径,不能使用可运行的命令行 - 需要为其提供一个实际文件,该文件将放置在“/usr/bin/gnome-www-browser”中。(备选系统甚至不区分某个东西是否是程序。)
Flatpak 提供了每个程序的可执行链接/var/lib/flatpak/exports/bin
(每个 flatpak ID 一个,对应于其默认分支),因此您应该能够使用:
update-alternatives --install /usr/bin/gnome-www-browser \
gnome-www-browser \
/var/lib/flatpak/exports/bin/org.mozilla.firefox
否则,编写一行 shell 脚本,将其放在 /usr/local 的某个位置,然后给出那更新替代方案。
答案2
除了 user1686 的回答之外,这里还有一个更完整的示例,但请注意,我使用的是安装在用户空间中的 Flatpaks ( --user
),这对某些人来说可能看起来自相矛盾,但我只为自己使用我的系统。如果需要,请将其替换为 user1686 的回答中使用的路径。
# As suggested by user1686
update-alternatives --install \
/usr/bin/gnome-www-browser \
gnome-www-browser \
"$HOME/.local/share/flatpak/app/org.mozilla.firefox/current/active/export/bin/org.mozilla.firefox" \
1
sudo update-alternatives --config gnome-www-browser
# This may also be required
update-alternatives --install \
/usr/bin/x-www-browser \
x-www-browser \
"$HOME/.local/share/flatpak/app/org.mozilla.firefox/current/active/export/bin/org.mozilla.firefox" \
1
sudo update-alternatives --config x-www-browser
# This finally got me to use the flatpaked Firefox to use during usage of
# 'aws configure sso' and a few other tools
sudo ln -s \
"$HOME/.local/share/flatpak/app/org.mozilla.firefox/current/active/export/bin/org.mozilla.firefox"
"/usr/local/bin/firefox"
我知道最后一条命令相当于核选项,使其他一切都变得毫无意义。但是,趁我没有足够的时间对这样的事情进行进一步研究,让我们试着在这里玩一玩:https://docs.python.org/3/library/webbrowser.html