分类

安卓应用安卓游戏

编程软件 安装制作

Baulk(极简安装包管理器)

Baulk(极简安装包管理器) v2.1.0免费版 附使用方法

大小:4.2 MB

语言:简体中文系统:WinXP, Win2003, Vista, Win7, Win8, Win10

类别:安装制作时间:2021-05-14 23:40

Baulk是一款非常简单的Windows包管理器,包括查看已安装包、安装特定包、更新版本、冻结特定包、计算文件的Blake3哈希值等等,可以和Windows terminal集成,软件免安装,并且不修改系统环境变量,可添加到右键菜单中。

基本介绍

baulk 的命令行参数大致分三部分,第一部分是 option,用于指定或者设置一些变量;第二部分是 command 即 baulk 子命令,包括安装卸载,升级,更新,冻结,解除冻结等命令;第三部分则是跟随命令后的包名。当然具体命令具体分析,不能僵硬的理解。

Baulk使用方法

开始使用

下载 Baulk 最新版本, 然后将其解压到任意目录, 点击 baulkterminal.exe 后即可运行 Windows Terminal。

baulk update

# 安装你需要的任意软件包

baulk install baulktar baulk7z neovim curl wget ripgrep

# 现在你可以在 Windows Terminal 中运行 curl 等命令了

curl -V

# 更新源数据

baulk update

# 升级可升级的包

baulk upgrade

# 卸载你不需要的包

baulk uninstall wget

你可以右键以管理员权限运行 script/installmenu.bat 将 baulkterminal 添加到右键菜单,这样你就能在任意目录打开初始化 Baulk 环境的 Windows Terminal 了。

请注意 script/installmenu.bat 默认开启了 --vs 即初始化 Visual Studio 环境,版本 > 1.5.2 如果没有安装便不会初始化。

上面就是 Baulk 的基本使用了,非常简单,如果你需要对 Baulk 有个更深入的了解,可以继续阅读下面的内容。

命令行参数

baulk 的命令行参数大致分三部分,第一部分是 option,用于指定或者设置一些变量;第二部分是 command 即 baulk 子命令,包括安装卸载,升级,更新,冻结,解除冻结等命令;第三部分则是跟随命令后的包名。当然具体命令具体分析,不能僵硬的理解。

baulk - Minimal Package Manager for Windows

Usage: baulk [option] command pkg ...

-h|--help Show usage text and quit

-v|--version Show version number and quit

-V|--verbose Make the operation more talkative

-F|--force Turn on force mode. such as force update frozen package

-P|--profile Set profile path. default: $0\config\baulk.json

-A|--user-agent Send User-Agent to server

--https-proxy Use this proxy. Equivalent to setting the environment variable 'HTTPS_PROXY'

Command:

list List all installed packages

search Search for available packages, or specific package details

install Install specific packages. upgrade if already installed. (alias: i)

uninstall Uninstall specific packages. (alias: r)

update Update ports metadata

upgrade Upgrade all upgradeable packages

freeze Freeze specific package

unfreeze UnFreeze specific package

b3sum Calculate the BLAKE3 checksum of a file

sha256sum Calculate the SHA256 checksum of a file

cleancache Cleanup download cache

Alias:

i install

r uninstall

u update and upgrade

命令描述备注

list查看已安装的包N/A

search搜索 Bucket 中可用的包baulk search 命令支持文件名匹配模式,比如 baulk search * 将搜索 Bucket 中所有的包

install安装特定的包install 还具备其他特性,当包已安装时会重新构建启动器,当包存在新版本时会将其升级,--force 将升级被冻结的包

uninstall卸载特定的包N/A

update更新 bucket 元数据类似 Ubuntu apt update 命令

upgrade更新存在新版本的包--force 可升级被冻结的包

freeze冻结特定的包被冻结的包无法在常规模式下升级

unfreeze解除包的冻结N/A

b3sum计算文件的 BLAKE3 哈希N/A

sha256sum计算文件的 SHA256 哈希N/A

cleancache删除下载缓存过期时间为 30 天,--force 模式将删除所有下载缓存

Baulk 配置文件

baulk 的配置文件默认路径为 $ExecutableDir/../config/baulk.json,可以通过设置参数 --profile 指定。通常你无需修改配置文件,只有当新增 bucket 时才会需要修改配置文件,并且在冻结一些包时,会被记录到配置文件当中。

Bucket 管理

在 bucket 的配置文件中,我们需要设置 bucket,bucket 用于存储 baulk 安装软件的源数据。bucket 目前只支持存储在 git 代码托管平台上,比如 Github。要使用 baulk 安装软件,至少得存在一个 bucket。baulk 默认 bucket 为 https://github.com/baulk/bucket。bucket 的配置如下:

baulk.json:

{

"bucket": [

{

"description": "Baulk default bucket",

"name": "Baulk",

"url": "https://github.com/baulk/bucket",

"weights": 100

}

]

}

在 bucket 中,我们设计了 weights 机制,在不同的 bucket 中,如果存在同名的包,且包的版本一致时,我们将对 bucket 的 weights 进行比较,权重较大的则会被安装。

添加 bucket 暂无命令行支持,只需要编辑 baulk.json,按照其格式添加即可。

同步 bucket 可以运行 baulk update 命令。这和 apt update 类似。baulk 同步 bucket 采用的是 RSS 同步机制,即通过请求 bucket 存储库获得最近的提交信息,比较最新的 commitId 与本地上一次记录的 commitId,不一致时则下载 git archive 解压到本地。这种机制的好处是不需要安装 git 便可以支持同步。

包管理

baulk 使用 bucket 记录包的下载地址,文件哈希,以及需要创建的启动器,默认的 bucket 存储库为 https://github.com/baulk/bucket,当然也可以按照 baulk/bucket 存储库的布局创建 bucket,Baulk bucket 实际上在一定程度上借鉴了 Scoop ,但 baulk 并不强制使用文件哈希校验,但校验时仅支持 SHA256 和 BLAKE3,且 Baulk 的安装机制与之有一定的差异。

baulk 管理软件包的命令有 install, uninstall, upgrade, freeze 和 unfreeze 以及 list 和 search。使用 baulk 安装软件非常简单,命令如下:

# 安装 cmake git 和 7z

baulk install cmake git 7z

baulk install 将安装特定的软件包,在执行安装的过程中,baulk 将从 bucket 读取特定的包的元数据,这些元数据的格式一般如下:

{

"description": "CMake is an open-source, cross-platform family of tools designed to build, test and package software",

"version": "3.17.2",

"url": [

"https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2-win32-x86.zip",

"https://cmake.org/files/v3.17/cmake-3.17.2-win32-x86.zip"

],

"url.hash": "SHA256:66a68a1032ad1853bcff01778ae190cd461d174d6a689e1c646e3e9886f01e0a",

"url64": [

"https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2-win64-x64.zip",

"https://cmake.org/files/v3.17/cmake-3.17.2-win64-x64.zip"

],

"url64.hash": "SHA256:cf82b1eb20b6fbe583487656fcd496490ffccdfbcbba0f26e19f1c9c63b0b041",

"extension": "zip",

"links": [

"bin\\cmake.exe",

"bin\\cmake-gui.exe",

"bin\\cmcldeps.exe",

"bin\\cpack.exe",

"bin\\ctest.exe"

]

}

baulk 根据清单中设置的 URL 下载压缩包,如果本地存在同名的压缩包且哈希值匹配时,则使用本地缓存,baulk 使用 WinHTTP 下载压缩包,目前能够较好的支持 HTTP Proxy,当然也可以通过设置环境变量和命令行参数设置代理。baulk 允许清单中没有设置哈希。baulk 的哈希设置为 HashPrefix:HashContent 格式,没有哈希前缀时,默认为 SHA256,下表是 baulk 支持的哈希算法。

哈希算法前缀备注

SHA224SHA224

SHA256SHA256

SHA384SHA224

SHA512SHA224

SHA3-224SHA3-224

SHA3-256SHA3-256, SHA3SHA3 前缀特定的 ☞ SHA3-256

SHA3-384SHA3-384

SHA3-512SHA3-512

BLAKE3BLAKE3

在 baulk 中 extension 支持 zip, msi, 7z, exe,tar,baulk 按照 extension 的类型执行相应的解压缩程序。扩展的解压程序如下:

扩展解压程序限制

exe--

zip内置,基于 minizip支持 deflate/bzip2/zstd,不支持加密和 deflate64(deflate64 可以使用 7z)

msi内置,基于 MSI API-

7z优先级:baulk7z - Baulk 发行版7z - 使用 baulk install 安装的7z - 环境变量中的tar.* 之类格式解压不能一次完成,因此建议使用 tar 解压 tar.* 压缩包

tar优先级:baulktar - BaulkTar bsdtar 的现代重构bsdtar - Baulk 构建版MSYS2 tar - Git for Windows 携带的Windows tarWindows 内置的 tar 不支持 xz(基于 libarchive bsdtar),但 baulk 构建的 bsdtar 支持,解压 zip 时均不不支持 deflate64

在清单文件中,还可能存在 links/launchers,baulk 将根据 links 的设置创建特定文件的符号链接,在安装了 Visual Studio 的情况下,baulk 将根据 launchers 设置创建启动器,如果 Visual Studio 没有安装则会使用 baulk-lnk 创建模拟启动器。如果在 baulk 运行在 Windows x64 或者 ARM64 架构时,会有一些细小的差别,即优先使用平台相关的 URL/Launchers/Links,细节如下:

架构URLLaunchersLinks备注

x86urllauncherslinks-

x64url64, urllaunchers64, launcherslinks64, links如不同架构的 launchers/links 目标一致,可以不用单独设置

ARM64urlarm64, urllaunchersarm64, launcherslinksarm64, links如不同架构的 launchers/links 目标一致,可以不用单独设置

Tips: 在 Windows 中,启动进程后,我们可以使用 GetModuleFileNameW 获得进程的二进制文件路径,但当进程从符号链接启动时则会使用符号链接的路径。如果我们在 baulk 中只使用 links 创建符号链接到 links 目录则可能会出现无法加载特定 dll 的问题,因此,这里我们使用 launcher 机制解决这个问题。

在运行 baulk install 时,如果软件已经被安装,则可能出现两种情况,第一种是软件没有更新,则 baulk 将重建 links 和 launchers,这适用于不同的包具有相同的 links/launchers 安装出现了覆盖需要还原的情况。如果软件存在更新,baulk 将安装指定包的最新版本。

baulk uninstall 将删除包和创建的启动器,符号链接。baulk upgrade 通过搜寻已经安装的包,如果相应的包存在新版本,则安装新版本。

在 baulk 中还存在 freeze/unfreeze 命令,baulk freeze 将冻结特定的包,使用 baulk install/baulk upgrade 将跳过这些包的升级,但是,如果 baulk install/baulk upgrade 使用了 --force/-f 参数,则会强制升级相应的包。我们还可以使用 baulk unfreeze 解除特定包的冻结。

在 baulk 中,我们可以使用 baulk search pattern 搜索 bucket 中添加的包,这里的 pattern 是基于文件名匹配,规则类似 POSIX fnmatch。运行 baulk search * 将列出所有的包。

在 baulk 中,我们可以使用 baulk list 列出所有安装的包,使用 baulk list pkgname 列出特定的包。

杂项

Baulk 提供了 sha256sum b3sum 两个命令帮助用户计算文件哈希值。

本站默认解压密码:www.ikansms.com

∨ 展开

同类推荐

相关下载

热门游戏

下载排行

热门关键字

  • 编程软件
  • 编程控件
  • 编译调试
  • 开发环境
  • 网页制作
  • 安装制作
  • 数据库类
  • Java相关
  • 加壳脱壳
  • 控件下载
  • 源码相关
  • 编程其他