分享关于scoop包管理器“应用固定在任务栏后再启动,出现两个图标”bug的绕过方法
本帖最后由 obiy 于 2024-6-17 18:00 编辑scoop是什么?一款windows平台的软件包管理器,官网 https://scoop.sh
标题是什么意思?scoop也支持一些软件的安装,但是安装后如果将软件固定在任务栏,点击图标,软件启动后反而会蹦出另一个图标,不符合预期(对于固定到任务栏的软件,启动后有且只有一个固定位置的图标)。如下图所示
github issue
原因是什么?软件自己无法处理符号链接(symlink)。符号链接可以理解成一种“快捷方式”,下文用“快捷方式”表示符号链接。
--------------------------分隔线--------------------------------
说来话长:scoop安装软件的方式是解压在:~/scoop/apps/<app-name>/<version>这个目录,并通过符号链接current指向最新版本。(~表示当前用户的根目录)
举个例子,我使用scoop安装了python,那么新增的目录实际上是:
[*]~/scoop/apps/python/current
[*]~/scoop/apps/python/3.12.4
上面的current实际上是下面3.12.4的“快捷方式”,scoop安装的软件图标在开始菜单里会放在scoop apps这个文件夹。
而这些图标的源头是current,如下图所示
为什么会出现任务栏两个图标?因为第二个图标的源头不一样,系统认为是两个不同的软件,如下图所示
有的软件可以自行处理“快捷方式”,有的不能,那么不能的app就会出现两个图标的现象。
例如Firefox可以自行处理,所以安装后直接固定到任务栏也不会出问题
当然,不能的应用也有绕过的方法(workaround),例如wezterm(一款终端模拟器),这时只要将:~/scoop/apps/wezterm/<version>/wezterm-gui.exe 固定到任务栏就行。如下图
缺点就是如果软件更新了,需要重新进行固定,否则scoop更新了实际上还在用旧版。
所幸只有一个不适配且需要固定的软件
对于不提供便携版的软件来说,不会想到还有适配符号链接的需求。例如Chrome
scoop安装一些开源软件或者不含更新功能的软件较为方便,例如ffmpeg,包管理就是干这个的。
如果想让它管理所有软件还是不太行,因为windows软件大部分不提供静默安装,且普遍有安装选项;还普遍自带软件更新功能。homebrew cask没这个问题,mac软件的主流安装方式是拖拽到:~/Applications,也几乎没有安装选项。
所以我只用scoop管理*nix风格的软件,还是很舒服的
—— 来自 S1Fun
页:
[1]