我有自己的个人仓库,里面有旧版本的 rpm。如果我想安装 boost-license 版本 1.36.0.11.17,我会执行以下操作
zypper install boost-license=1.36.0-11.17
Run Code Online (Sandbox Code Playgroud)
这似乎被打破了,但是好像我将 rev 更改为我知道不存在的 rev 然后它只是恢复到安装最新的 rev 而不是错误,这是愚蠢的。
我发现强制 zypper 安装我想要的特定 rpm 的唯一方法是说明确切的 rpms URL httlp//mylocalrepository/myrpms/boost-1.36.0.11.17.src.rpm。
任何想法如何使用 zypper,因为它旨在安装特定版本,如果它不存在则会出错?
我有一个本地存储库,其中包含一些 rpm。回购 xmls 等是最新的。
当我找到一个我没有的 rpm 时,我希望能够下载它,而不是安装它,然后将该 rpm 放入 repo 目录中。
我看到我可以使用,zypper install --download-only <packagename>
但这似乎只有在我的盒子上没有安装软件包时才有效,否则它会显示“已经”安装。它也不允许我说明我想要的包的版本/版本/修订版。
这对我没有好处。
如何从我的活动存储库中获取 rpm 并将其存储到指定位置?如果 zypper 不合适,我不介意安装新工具。
我一直在使用“查找”从根目录向下输出目录结构,我不介意这需要一段时间。我的问题是我想减少重复每个文件路径的冗余信息,我想以 JSON 格式输出文件。
我需要能够从终端运行它,我不能在盒子上创建 python 文件等。
例如,这个:
root
|_ fruits
|___ apple
|______images
|________ apple001.jpg
|________ apple002.jpg
|_ animals
|___ cat
|______images
|________ cat001.jpg
|________ cat002.jpg
Run Code Online (Sandbox Code Playgroud)
会变成……
{"data" : [
{
"type": "folder",
"name": "animals",
"path": "/animals",
"children": [
{
"type": "folder",
"name": "cat",
"path": "/animals/cat",
"children": [
{
"type": "folder",
"name": "images",
"path": "/animals/cat/images",
"children": [
{
"type": "file",
"name": "cat001.jpg",
"path": "/animals/cat/images/cat001.jpg"
}, {
"type": "file",
"name": "cat001.jpg",
"path": "/animals/cat/images/cat002.jpg"
}
]
}
]
}
]
}
]}
Run Code Online (Sandbox Code Playgroud)