4 个版本 (1 个稳定版)
使用旧的 Rust 2015
| 1.0.3 | 2017年11月3日 | 
|---|---|
| 1.0.2-beta | 2017年4月21日 | 
| 1.0.1-beta | 2017年4月19日 | 
| 1.0.0-beta | 2017年4月17日 | 
#73 in #golang
43 个星标 & 5 个关注者
100KB
 2K  SLoC
Rubigo
Rubigo 是一个废弃的 Golang 依赖工具和包管理器,用 Golang 和 Rust 编写。Rubigo 使用从 Go 1.5 开始的 vendor 目录来安装包,但也可以在 GOPATH/src 目录中全局添加包或在 vendor 目录中创建本地包。Rubigo 尊重对 vendor 目录的手动更改,不会删除自定义包。目前,Rubigo 只支持 git 仓库。此源代码根据 MIT 许可证授权,许可证文件可在 LICENSE 文件中找到。
废弃
考虑使用 Go 版本化模块
- rm-r vendor rubigo.json rubigo.lock
- export GO111MODULE=on
- gomod init
特性
- 管理 vendor、global和local包
- 使用自定义仓库克隆包
- 支持 语义版本化
- 定义包信息
- 启动新项目(二进制或库)
工作原理
Rubigo 在 Golang 项目的目录中创建了两个 JSON(清单)文件(rubigo.json 和 rubigo.lock)。其中,rubigo.json 包含项目信息和需要安装和维护的包的信息,而 rubigo.lock 包含已经安装到 vendor 目录或全局在 GOPATH/src 中的包的信息。您可以手动编辑这两个文件或使用 Rubigo 子命令,然后将它们应用于项目的依赖项。此外,您也可以在现有项目中启动 Rubigo。
如何安装
您可以从 发布页面 下载预构建的二进制文件,或者按以下步骤手动构建:
- 安装 Rust 编程语言。
- 在 Linux 和 Mac OS 上:安装 cmake,libcurl4-openssl-dev,libelf-dev,libssl-dev和libdw-dev。
- 在 Windows 上:安装 cmake,Visual Studio C++。
- 使用 Rust 的包管理器 cargo安装应用程序:cargo install --git https://github.com/yaa110/rubigo.git
子命令
- init, start:在现有目录中初始化 Rubigo 项目,例如 rubigo init。此子命令会在vendor目录中查找已安装的包。
- new, create:创建一个新的 Golang 项目,例如 rubigo new my-project或rubigo new --lib my-library。此子命令会创建一个新目录,目录名为提供的名称,并包含一个新.go文件和清单文件。
- get, add:将包添加到依赖项并将它克隆到 vendor目录中,例如rubigo get github.com/blah/blah --repo=github.com/my/custom/repo(--repo参数是可选的)。此子命令也可以使用--global标志将包全局安装到GOPATH/src目录,或使用--local标志创建本地包。
- update, up:更新一个或所有包,并将 rubigo.json的更改应用到rubigo.lock和vendor目录中的包,例如rubigo update github.com/blah/blah。此子命令还可以使用--clean标志删除包的目录并重新克隆。如果没有提供包名称,则更新所有包。
- remove, rm:从清单文件和 vendor目录中删除包,例如rubigo remove github.com/blah/blah。
- apply, install:将 rubigo.lock的更改应用到vendor目录中的包,例如rubigo apply。此子命令也可以使用--clean标志删除包的目录并重新克隆。通常在您克隆了一个项目并想要安装缺失的包时使用此命令。
- 重置,同步:将vendor目录中已安装的软件包列表更新到清单文件中,例如:rubigo reset。当您手动更改了vendor目录并希望更新清单文件时,将使用此命令。请注意,此子命令仅收集git软件包,并忽略本地软件包。
- 列表,ls:显示来自rubigo.lock文件的软件包列表,例如:rubigo list。此子命令只能使用--remote、--local或--global标志分别列出git、本地或全局软件包(或它们的组合)。
- 信息,关于:显示来自rubigo.json文件的项目信息,例如:rubigo info。
- 帮助:显示帮助信息,例如:rubigo help。也可以获取子命令的信息,例如:rubigo help get。
标志
- --verbose, -v:使用详细输出。
- --quiet, -q:不输出任何内容。
- --yes, -y:在无需确认的情况下继续执行。
- --help, -h:显示帮助信息。
- --version, -V:显示Rubigo的版本。
清单格式
您可以在templates目录中找到rubigo.json和rubigo.lock文件的模板,例如:rubigo.json和rubigo.lock。这两个文件都具有JSON格式,包含以下对象
- info:包含(可选)关于项目的信息。只有rubigo.json包含此对象。- name:项目的名称
- import:项目的导入路径
- description:关于项目的简短描述
- homepage:项目主页的URL(应包含协议方案,例如http://)
- license:项目的许可协议
- authors:项目作者数组- name:作者名称
- email:作者的电子邮件地址
- website:作者的网站URL(应包含协议方案,例如http://)
 
 
- packages:包含软件包的信息。- git:从git仓库克隆的依赖项数组- import:软件包的导入路径
- repo:克隆仓库的自定义URL
- version:项目的版本(git修订版本或语义版本)。有关语义规则的更多信息,请参阅semver文档。
 
- local:在vendor目录中的本地软件包数组。
- global:在GOPATH/src目录中的全局软件包数组。
 
- git:从git仓库克隆的依赖项数组
贡献
请随时打开一个问题来报告错误或提出问题,或者打开一个拉取请求来调试或为Rubigo添加更多功能。
依赖关系
~20–28MB
~521K SLoC