我在 LaTeX 中经常陷入软件包依赖地狱:我的系统上有多个 LaTeX 项目,并且都使用相同的 TeX Live 安装。对系统/用户范围安装的更改会影响所有现有项目。幸运的是,tex 内核很稳定,但软件包会发生变化,可能会破坏其他软件包或您自己的代码,这两种情况我都遇到过。
现在我避免更新我的 LaTeX 安装,并担心任何系统范围的 TeX Live 升级。但是,我无法使用新软件包版本引入的新可能性或修复。
因此,我希望按项目安装软件包并按项目冻结其版本。这样我就可以在新项目中使用新版本的软件包,而不会影响整个系统。
我遇到过其他软件环境的包管理器,例如
这使得按项目安装软件包变得快速而简单。实际上,它们默认按项目安装,并且通常按项目创建两个文件。
- 列出依赖项和版本范围的文件(例如 composer.json、packages.json、Pipfile)
- 一个用于修复软件包版本的锁定文件(例如 composer.lock、packages-lock.json、Pipfile.lock)。这允许在新系统上安装项目,并且使用已知可以工作的完全相同的软件包版本。
是否有一个包管理器或者一个类似 LaTeX 包的项目?
据我所知,ctan.org 不存储软件包的历史记录。这是正确的吗?