sow where
在工作区中查找一个软件包。
sow where 在工作区中查找一个软件包的期望成员位置。默认搜索全部仓库;使用 -r 或 -d 限定范围。
语法
| 参数 | 含义 | 默认值 |
|---|---|---|
-C, --workdir DIR |
工作区发现起点 | 当前目录 |
-r, --repo NAME |
将搜索限制到一个仓库 | 全部仓库 |
-d, --dist NAME |
将搜索限制到指定 Dist;可重复 | 全部 Dist |
--json |
输出 JSON | false |
引用解析
PACKAGE 与 sow show 使用相同格式:SHA-256、规范 RPM/DEB 坐标、
完整文件名或裸包名。
引用必须确定一个软件包,即格式、坐标和 SHA-256 均相同的包。同一个包可以位于多个仓库。如果匹配到不同的包,使用 -r 或 -d 收窄范围,或提供精确坐标、SHA-256。
输出
不带 --json 时,where 先输出摘要,再为每个位置输出一行:
每个位置同时给出该仓库内的期望位置 dists 与已构建位置 built_dists。查找候选包时使用期望成员集。如果包已从全部所选 Dist 中移除,命令将不再找到它,即使旧索引仍包含它。要查看这样的已存储对象,使用 sow show PACKAGE -r NAME,不要加 -d。
加上 --json 后,位置列表位于 result.locations。没有匹配包时,命令返回错误:
示例
列出期望状态中包含此包的 Dist:
退出码
| 代码 | 触发条件 |
|---|---|
0 |
已输出一个解析后的软件包对象及其位置 |
1 |
运行时 I/O 错误 |
2 |
用法错误或未发现工作区 |
5 |
某个仓库状态库不可读或不一致 |
6 |
显式仓库/Dist 未配置,或引用没有匹配/在所选范围内有歧义 |