web-dev-qa-db-ja.com

repreproを使用してaptリポジトリからdebパッケージを削除する

問題の概要:

reprepro list stretchはaptリポジトリ内のパッケージをリストせず、reprepro remove stretch <package>はリポジトリからパッケージを削除しません。どうやって:

  1. reprepro list stretchがそれらを見つけるようにパッケージを追加する、または
  2. repreproを使用して、リポジトリからパッケージを削除します

環境:

Aptリポジトリを備えたビルドマシンがあります。ビルドが完了したら、パッケージをインストールします。

Sudo reprepro -Vb /var/www/html/apt/debian \
              includedeb stretch \
              ${build_dir}/a320-latest-0.0.${SVN_REVISION}-Linux.deb

すべてが本当にうまくいくようです。リポジトリを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

これらはリポジトリレジストリにも存在するようです:

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

期待されるワークフロー:

pool/main/a/a320pool/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...

reprepro list stretchがパッケージをリストし、reprepro remove stretch a320がa320パッケージを削除することを期待していました。しかし、それは何もしないようです。

*.debファイルと./dists/.../Packagesのエントリを手動で削除したいのですが、これによりいくつかのチェックサムが破壊され、リポジトリが破壊されると思われます。また、いくつかのバイナリオブジェクトを含む./dists(SQLite?)と./dbを同期させない可能性があります。

reprepro export stretchreprepro update stretchも試しましたが、何もしなかったようです。


少なくとも何かが機能している

現在、クライアントにとってすべてが素晴らしいものです。

また、repreprostretchリポジトリを見つけることを確認できます。そうしないと、次のエラーのいずれかが発生します。

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!
1
Stewart

あなたはあなたの質問にあなたの解決策の一部があります:
reprepoの場所を指定する必要があります。

Sudo reprepro -Vb /var/www/html/apt/debian list stretch

そして

Sudo reprepro -Vb /var/www/html/apt/debian remove stretch a320

トリックを行う必要があります。

1
Robert Riedl