今天,我几周以来第一次尝试使用 intellij-idea。它告诉我 snap 中有更新。还有一个编译错误(但这可能是也可能不是我的错误)。
我尝试过更新,但没有成功。以下是我尝试过的方法。
#↳ sudo snap refresh
All snaps up to date.
#↳ snap list
Name Version Rev Tracking Publisher Notes
core 9993 latest canonical✓ broken
core18 1885 latest canonical✓ broken
gtk-common-themes 1506 latest canonical✓ broken
intellij-idea-community 2020.2.3 257 latest jetbrains✓ classic
kotlin 53 latest jetbrains✓ broken
#↳ snap list --all
Name Version Rev Tracking Publisher Notes
core 9993 latest canonical✓ broken
core 9804 latest canonical✓ disabled,broken
core18 1885 latest canonical✓ broken
gtk-common-themes 1506 latest canonical✓ broken
intellij-idea-community 249 latest jetbrains✓ disabled,broken
intellij-idea-community 252 latest jetbrains✓ disabled,broken
intellij-idea-community 2020.2.3 257 latest jetbrains✓ classic
kotlin 50 latest jetbrains✓ disabled,broken
kotlin 53 latest jetbrains✓ broken
如您所见,Snap 告诉 Be 它已损坏。什么坏了?它是否更新了损坏的代码?当 intellij-idea 告诉 Be 有更新时,它为什么不更新?
答案1
我做了什么来修复它。
我仍然不知道出了什么问题snap
,但这个解决方法对我有用。
删除所有包
for package_name in …
do
sudo snap remove $package_name
done
重新安装软件包
for package_name in …
do
sudo snap install $package_name
done
根据需要替换省略号。
答案2
有时 snap 无法挂载。systemctl --failed
显示失败的 snap 包。需要通过 启动它们,然后systemctl start <...>
通过 重新连接失败的 snap 包。/还要修复失败的 snap 包。重新安装肯定有效,但还有更简单的方法。snap disable <pkg>
snap enable <pkg>
snap revert <pkg>
snap refresh <pkg>
这是修复该问题的脚本:
#!/bin/sh
set -x
alwaysfix=chromium
[ -z "$1" ] || alwaysfix="$1"
tofix="`snap list | awk '/broken/{print $1}'`"
for t in `COLUMNS=1000 systemctl --failed | awk '/snap.+mount/{print $1}'`; do
systemctl start "$t"
done
for s in $tofix; do
snap disable "$s"
snap enable "$s"
done
for s in $alwaysfix; do
snap disable "$s"
snap enable "$s"
done