Ste*_*art 4 package-management apt reprepro
reprepro list stretch不会在我的 apt 存储库中列出任何包,reprepro remove stretch <package>也不会从我的存储库中删除任何包。我怎样才能:
reprepro list stretch找到它们,或者reprepro从我的 repo 中删除包我有一台带有 apt 存储库的构建机器。当我完成构建时,我安装我的包:
sudo reprepro -Vb /var/www/html/apt/debian \
includedeb stretch \
${build_dir}/a320-latest-0.0.${SVN_REVISION}-Linux.deb
Run Code Online (Sandbox Code Playgroud)
一切似乎都运行得很好。我可以apt-get install a320-latest从任何将我的存储库添加到他们的/etc/apt/sources.list.d/.
当我进一步检查时,我可以确认我安装了几个软件包:
bob@apollo:/var/www/html/apt/debian$ tree pool
pool
??? main
??? a
? ??? a320
? ? ??? a320_0.0.571_amd64.deb
? ??? a320-latest
? ??? a320-latest_0.0.575_amd64.deb
??? h
? ??? helloworld
? ??? helloworld_0.2_amd64.deb
??? s
??? sim-dev
? ??? sim-dev_1.0_amd64.deb
??? sim-devenv
? ??? sim-devenv_1.0_amd64.deb
??? sim-runtime
? ??? sim-runtime_1.1_amd64.deb
??? sim-workstation
??? sim-workstation_1.0_amd64.deb
11 directories, 7 files
Run Code Online (Sandbox Code Playgroud)
这些似乎也存在于存储库注册表中:
bob@apollo:/var/www/html/apt/debian$ cat dists/stretch/main/binary-amd64/Packages | grep Package:
Package: a320
Package: a320-latest
Package: helloworld
Package: sim-dev
Package: sim-devenv
Package: sim-runtime
Package: sim-workstation
Run Code Online (Sandbox Code Playgroud)
我想删除pool/main/a/a320和pool/main/h/helloworld。
我试过了:
bob@apollo:/var/www/html/apt/debian$ sudo reprepro list stretch
bob@apollo:/var/www/html/apt/debian$ sudo reprepro remove stretch a320
Not removed as not found: a320
Exporting indices...
Run Code Online (Sandbox Code Playgroud)
我预计reprepro list stretch会列出我的包,并reprepro remove stretch a320删除 a320 包。但这似乎没有任何作用。
我很想手动删除*.deb文件和条目./dists/.../Packages,但我怀疑这会破坏一些校验和并破坏存储库。它可能还会./dists与./db包含一些二进制对象(SQLite?)的内容不同步。
我也尝试过reprepro export stretch,reprepro update stretch但他们似乎没有做任何事情。
现在一切对客户来说都很棒。
另外,我可以确认reprepro找到stretch存储库,否则会出现以下错误之一:
bob@apollo:/var/www/html/apt$ sudo reprepro list stretch
Error opening config file './conf/distributions': No such file or directory(2)
There have been errors!
bob@apollo:/var/www/html/apt/debian$ sudo reprepro list wheezy
Cannot find definition of distribution 'wheezy'!
There have been errors!
Run Code Online (Sandbox Code Playgroud)
您的问题中有部分解决方案:
您必须告诉reprepo在哪里看!
sudo reprepro -Vb /var/www/html/apt/debian list stretch
Run Code Online (Sandbox Code Playgroud)
和
sudo reprepro -Vb /var/www/html/apt/debian remove stretch a320
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩。