3 个版本

0.0.3 2020年8月24日
0.0.2 2020年8月24日
0.0.1 2020年8月24日

#527操作系统

MIT 许可证

1MB
560 代码行

gvm - 全局版本管理器

所有二进制的版本管理器。

安装

目前仅通过 cargo 分发,但该项目将来将以单个二进制文件的形式发布。

cargo install gvm

为什么?

我找不到一个类似这样的解决方案,它还能在 Windows 上运行。

设置

  1. 目前,通过 cargo 安装 gvm
  2. 手动将二进制文件夹添加到路径中
    • Windows: C:\Users\<user-name>\AppData\Local\gvm\gvm\bin
    • Mac/Linux: ~/.local/share/gvm/bin
  3. 在项目文件夹中添加一个 .gvmrc.json 文件,并指定二进制文件名和二进制清单文件的路径。
    {
      "binaries": {
        // these don't exist anywhere at the moment (again, proof of concept)
        "deno": "https://127.0.0.1:8000/deno-1.3.1.json",
        "dprint": "https://127.0.0.1:8000/dprint-0.9.0.json"
      }
    }
    
  4. 运行 gvm install

命令

gvm install

将当前配置文件中的二进制添加到路径,然后下载并安装它们。

gvmuse <二进制名称> <版本>

全局使用指定的二进制名称和版本。

二进制和版本必须已经安装。

gvm run[二进制-名称] [...参数]

根据当前配置文件使用提供的参数运行指定的二进制。

如果尚未安装,将下载并安装二进制。

这是内部用于运行正确二进制的 [binary-name] [...args]

未来改进

  1. .gvmrc.json 中指定支持的版本范围。
    {
      "binaries": {
        // I don't know... something like this
        "deno": {
          "version": "^1.3.0",
          "download": "https://127.0.0.1:8000/deno-1.3.1.json"
        }
      }
    }
    
  2. 支持文件路径,除了 URL。
  3. gvm install <url> - 在指定的 URL 安装二进制。
  4. gvm use <url> - 通过 URL 全局使用二进制的特定版本。
  5. 在配置文件中指定安装前和安装后命令的能力。
  6. 类似于 npm run <script-name>
  7. 能够清除 X 天内未运行的任何二进制。
  8. 让二进制指定所有版本号,并能够获取最新版本。
  9. gvm uninstall <二进制名称> <版本>gvm uninstall <URL>
  10. 插件运行一些设置命令的能力。
  11. 确保下游二进制文件保持一致的路径上的校验和。

依赖项

~9-24MB
~324K SLoC