![LaTeX 软件包管理器/安装程序类似于 npm(js 节点模块),它为每个项目安装 PKG 并修复版本](https://linux22.com/image/431644/LaTeX%20%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8%2F%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E7%B1%BB%E4%BC%BC%E4%BA%8E%20npm%EF%BC%88js%20%E8%8A%82%E7%82%B9%E6%A8%A1%E5%9D%97%EF%BC%89%EF%BC%8C%E5%AE%83%E4%B8%BA%E6%AF%8F%E4%B8%AA%E9%A1%B9%E7%9B%AE%E5%AE%89%E8%A3%85%20PKG%20%E5%B9%B6%E4%BF%AE%E5%A4%8D%E7%89%88%E6%9C%AC.png)
我在 LaTeX 中经常陷入软件包依赖地狱:我的系统上有多个 LaTeX 项目,并且都使用相同的 TeX Live 安装。对系统/用户范围安装的更改会影响所有现有项目。幸运的是,tex 内核很稳定,但软件包会发生变化,可能会破坏其他软件包或您自己的代码,这两种情况我都遇到过。
现在我避免更新我的 LaTeX 安装,并担心任何系统范围的 TeX Live 升级。但是,我无法使用新软件包版本引入的新可能性或修复。
因此,我希望按项目安装软件包并按项目冻结其版本。这样我就可以在新项目中使用新版本的软件包,而不会影响整个系统。
我遇到过其他软件环境的包管理器,例如
这使得按项目安装软件包变得快速而简单。实际上,它们默认按项目安装,并且通常按项目创建两个文件。
- 列出依赖项和版本范围的文件(例如 composer.json、packages.json、Pipfile)
- 一个用于修复软件包版本的锁定文件(例如 composer.lock、packages-lock.json、Pipfile.lock)。这允许在新系统上安装项目,并且使用已知可以工作的完全相同的软件包版本。
是否有一个包管理器或者一个类似 LaTeX 包的项目?
据我所知,ctan.org 不存储软件包的历史记录。这是正确的吗?