flatpak教程
安装
flatpak是一款跨发行版的包管理器。官网:https://flatpak.org/
这里有各个发行版的安装方法:https://flatpak.org/setup/
这里以Deepin为例。
sudo apt install flatpak
添加源
官方源:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
但是这个太慢了,建议添加国内镜像源,教程:https://seekstar.github.io/2021/12/30/给flatpak添加国内镜像源/
重启
会有这样一个提示:
Note that the directories
'/var/lib/flatpak/exports/share'
'/home/searchstar/.local/share/flatpak/exports/share'
are not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.
意思是说,在重启之后,用flatpak安装的软件才能用桌面系统访问到。所以接下来先重启。
重启之后就可以正常使用了。但是即使之后这两个目录加入到XDG_DATA_DIRS
了,有些应用可能仍然需要注销并且重新登录才能在启动器找到。
常用的命令
flatpak search xxx
flatpak install xxx
flatpak uninstall xxx
# 删除没有被任何application使用的runtime和extension
flatpak uninstall --unused
# 列出已安装的包
flatpak list
flatpak run 包名(比如com.jgraph.drawio.desktop)
# 查看源列表
flatpak remotes
# 或者flatpak remote-list
# 似乎不能看某个remote的URL之类的: https://github.com/flatpak/flatpak/issues/1983
不同于apt,flatpak可以并行安装。安装的软件存放在~/.var/app/
和/var/lib/flatpak/app
里。一般来讲,软件的启动入口一般在/var/lib/flatpak/app/com.jgraph.drawio.desktop/current/active/export/bin
。
为应用设置代理
由于flatpak的应用是运行在沙箱里的,看不到系统代理,所以如果应用需要使用代理的话,需要手动在沙箱环境里配置系统代理:
https://seekstar.github.io/2022/01/06/flatpak应用设置代理/
闭源软件
flatpak很适合用来安装闭源软件,因为闭源软件的行为不可控,而flatpak可以将闭源软件的活动范围限制在一个沙箱中。
com.qq.QQ
微信
com.tencent.WeChat
Steam
com.valvesoftware.Steam
解决steam字体在高分屏下过小的问题
flatpak install com.github.tchx84.Flatseal
然后在启动器里打开Flatseal
,在Environment
里加上:
STEAM_FORCE_DESKTOPUI_SCALING=2
3000x2000的屏幕分辨率建议用2
。
参考:
https://superuser.com/questions/1762685/font-size-in-flatpak-obs
https://forum.manjaro.org/t/steam-fontsize-to-small-the-solution/142572/7
腾讯会议
com.tencent.wemeet
Zoom
us.zoom.Zoom
会议软件。
国际版Minecraft
com.mojang.Minecraft
spotify
音乐软件
WPS
国产办公软件。但是flatpak上只有英文版的,而且不能登录,不能用输入法。
开源软件
有些开源软件在发行版的软件源里没有或者版本太旧,这时可以考虑使用flatpak安装。
思源笔记
org.b3log.siyuan
本地化的笔记。支持webdav同步。
KeePassXC
密码管理器。要把apt安装的旧版卸载之后,Deepin启动器上的才会变成flatpak的版本。
Plots
com.github.alexhuntley.Plots
https://github.com/alexhuntley/Plots
Plots
是一款非常简单的函数作图工具,直接输入表达式即可。可以是只含x的表达式,也可以是一个含x和y的等式。
可以定义一些常量,然后在之后的表达式里使用这个常量。例如先输入s=1.747
,再输入k=0.0819
,最后输入\frac{1}{s}(1+\frac{kx}{s})^{-1-\frac{1}{k}}
:
对应函数的曲线就会画出来了。
存在的问题
https://github.com/alexhuntley/Plots/issues/146
不支持中文locale。会报错:
Using the fallback 'C' locale.
Traceback (most recent call last):
File "/app/bin/plots", line 8, in <module>
sys.exit(main())
File "/app/lib/python3.10/site-packages/plots/__init__.py", line 22, in main
plots.Plots().run(sys.argv)
File "/app/lib/python3.10/site-packages/plots/plots.py", line 42, in __init__
plots.i18n.bind()
File "/app/lib/python3.10/site-packages/plots/i18n.py", line 26, in bind
locale.setlocale(locale.LC_ALL, "")
File "/usr/lib/python3.10/locale.py", line 620, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
解决方法是用命令行指定locale:
flatpak run --env=LC_ALL="en_US.UTF-8" com.github.alexhuntley.Plots
Thunderbird
Mozilla出品的邮件客户端。
Xournal++
PDF编辑软件。
相关:https://seekstar.github.io/2021/10/10/linux-pdf编辑软件/
MyPaint
可以当草稿纸用。但是写多了字之后会很卡。
相关:https://seekstar.github.io/2021/02/04/linux草稿纸软件mypaint/
Motrix
p2p下载客户端。支持多种p2p链接。
LibreOffice
org.libreoffice.LibreOffice
里面的LibreOffice Draw
是很棒的PDF编辑工具。
Zotero
一款文献管理器。可以选择把文献导出为文件,也可以直接把文献拖到文本编辑器,格式在Edit -> Preferences -> Export -> Item Format
设置。
参考:
https://www.zotero.org/support/creating_bibliographies#quick_copy
https://forums.zotero.org/discussion/87285/export-bibtex-to-clipboard
Seafile
云盘客户端。但是截至9.0.6
,flatpak版本没有单点登录。而且高分屏下窗口很小。
drawio
画图软件。装完之后Deepin系统的启动器里并找不到drawio,只能这样启动:
flatpak run com.jgraph.drawio.desktop
而且如果执行其启动脚本的话:
/var/lib/flatpak/app/com.jgraph.drawio.desktop/current/active/export/bin/com.jgraph.drawio.desktop
会报错:
bash: /var/lib/flatpak/app/com.jgraph.drawio.desktop/current/active/export/bin/com.jgraph.drawio.desktop:/bin/sh:解释器错误: 没有那个文件或目录
这是因为这个脚本的后缀名是.desktop
,然后系统以为它是启动器。
Matrix客户端
Element
包名是im.riot.Riot。需要配置代理。有一个很大的问题,是flatpak运行在沙箱环境中,默认传文件时不能看到系统里的文件。可以设置其允许读取home目录下的文件:
# https://docs.flatpak.org/en/latest/sandbox-permissions.html#filesystem-access
# https://github.com/flathub/im.riot.Riot/issues/33
flatpak override --user --filesystem=home:ro im.riot.Riot
Nheko
flatpak install io.github.NhekoReborn.Nehko
Telegram
包名是org.telegram.desktop
。需要注销重新登录才能在deepin启动器里找到。需要配置代理,用flatpak run --command=sh
的方法好像没用,貌似要在应用内设置代理。
torbrowser-launcher
launcher能打开,但是在系统启动器死活打不开tor browser。。。
通过launcher下载好tor browser之后,其实可以直接在命令行执行这个打开tor browser:
~/.var/app/com.github.micahflee.torbrowser-launcher/data/torbrowser/tbb/x86_64/tor-browser_zh-CN/Browser/start-tor-browser
注意如果选择下载的是英文版,那其中的tor-browser_zh-CN
要换掉。
关于tor browser本身能不能进flatpak可以看这个issue:
https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/25578
vscode
运行在容器里,所以不能访问系统里的SDK。而且好像不提供code命令?还是建议去官网下载安装包来安装。
Firefox国际版
org.mozilla.firefox
要先把系统里旧的firefox卸载,不然启动器启动的还是旧版本。
在浏览器里没法把自己设置为默认浏览器了。但是一般可以在系统设置里手动设置。Deepin是在设置->默认程序->网页
。
我这里一开始是正常的,但是过了几天之后显示就出问题了。