Manul - Go 应用的 vendoring utility


MIT
跨平台
Google Go

软件简介

Manul 是 Go 应用的 vendoring utility。

为什么需要 Manul ?

因为其他的 vendor utilities 有以下缺点:

有些会对 go 的二进制文件和 GOPATH env 变量进行欺骗包装。你将得到一个非 go-gettable 项目,需要额外的软件来编译和运行;

有些将依赖关系的源代码复制到供应商目录中:更新依赖关系需要手动干预,并将大量修改的行直接提交到主仓库;不能通过查看仓库来告诉你的项目使用的依赖关系的版本;
必须在与提交相关联的供应商的附加模糊文件中保留版本。

还有各种架构问题:

不能更新所有或特定的依赖关系;
不能将特定版本的被依赖关系回滚;
不能删除未使用的被依赖关系;
不能锁定版本的 vendored 依赖。

用法

  • -I [<dependency>...] -为指定的/所有依赖关系安装git子模块;

  • -U [<dependency>...] - 更新指定的/所有已经被提供的依赖;

  • -R [<dependency>...] - 删除指定/所有依赖关系的git子模块;

  • -Q [<dependency>...] - 列出所有使用的依赖关系;

  • -C - 检测并删除所有git子模块。

安装

Ubuntu/Debian:

git clone --branch pkg-debian git://github.com/kovetskiy/manul /tmp/manul
cd /tmp/manul
./build.sh
dpkg -i *.deb

Arch Linux:

从 AIR 安装,或手动构建软件包:

git clone --branch pkg-archlinux git://github.com/kovetskiy/manul /tmp/manul
cd /tmp/manul
makepkg
pacman -U *.xz

Other distros

使用 go get 也可获得:

go get github.com/kovetskiy/manul