如何阻止Julia中已移除的包被更新?及永久移除方法
如何永久移除Julia中已删除但仍被更新的包
问题原因
你遇到的情况是因为Makie.jl是当前环境中CairoMakie/GLMakie的依赖包——你只移除了Makie本身,但它的后端包(CairoMakie、GLMakie)还留在Project.toml里,这些包会强制保留Makie作为间接依赖,所以更新时Pkg仍会维护Makie及其组件。
解决步骤
1. 移除所有依赖Makie的直接包
首先需要把依赖Makie的后端包从环境中移除,执行以下命令:
pkg> rm CairoMakie GLMakie
这个操作会将CairoMakie、GLMakie从Project.toml中删除,同时Pkg会自动清理它们的依赖(包括Makie、MakieCore),将这些包从Manifest.toml中移除。
2. 清理无用的包文件
如果想彻底清除系统中未被任何环境使用的包文件,执行垃圾回收命令:
pkg> gc
该命令会删除本地Julia包仓库中不再被任何环境依赖的包,释放磁盘空间。
3. 检查残留依赖(可选)
如果不确定还有没有其他包依赖Makie,可以用以下命令查看当前环境中所有依赖Makie的包:
pkg> dependents Makie
如果有其他依赖包,重复步骤1将它们移除即可。
验证结果
执行完上述步骤后,再次运行pkg> st Makie和pkg> up,应该就不会再看到Makie被更新的日志了。
内容的提问来源于stack exchange,提问作者Shayan
相关产品推荐
相关产品推荐

