適切なパッケージと依存関係をダウングレードする正しい方法は何ですか?

適切なパッケージと依存関係をダウングレードする正しい方法は何ですか?

変更をテストするためにPigpioインストールをロールバックしようとしましたが、次の問題が発生しました。

pi@MyPi:~ $ sudo apt install pigpio=1.68-3+rpi1
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 pigpio : Depends: libpigpiod-if2-1 (= 1.68-3+rpi1) but 1.71-0~rpt1 is to be installed
          Depends: libpigpiod-if1 (= 1.68-3+rpi1) but 1.71-0~rpt1 is to be installed
          Depends: libpigpiod-if-dev (= 1.68-3+rpi1) but 1.71-0~rpt1 is to be installed
          Depends: pigpio-tools (= 1.68-3+rpi1) but 1.71-0~rpt1 is to be installed
          Depends: libpigpio1 (= 1.68-3+rpi1) but 1.71-0~rpt1 is to be installed
          Depends: libpigpio-dev (= 1.68-3+rpi1) but 1.71-0~rpt1 is to be installed
          Depends: pigpiod (= 1.68-3+rpi1) but 1.71-0~rpt1 is to be installed
E: Unable to correct problems, you have held broken packages.

最後の行にエラーメッセージが含まれていますが、問題ではないようです。

pi@MyPi:~ $ apt-mark showhold
pi@MyPi:~ $

パッケージを追加すると、予約済みとしてマークされます。

Pigpioも削除しました。

pi@MyPi:~ $ sudo apt purge pigpio -y && sudo apt autoremove -y

各パッケージを以前のバージョンに手動で指定することで問題を解決できますが、必ずしも必要とは思えません。

pi@MyPi:~ $ sudo apt install pigpio=1.68-3+rpi1 libpigpiod-if2-1=1.68-3+rpi1 libpigpiod-if1=1.68-3+rpi1 libpigpiod-if-dev=1.68-3+rpi1 pigpio-tools=1.68-3+rpi1 libpigpio1=1.68-3+rpi1 libpigpio-dev=1.68-3+rpi1 pigpiod=1.68-3+rpi1

特にこれは後で削除すると依存pigpio関係が消去されないという意味だと思います。

apt私が逃した簡単なオプションはありますか?

ベストアンサー1

apt明示的に要求されない限り、インストールしたパッケージをダウングレードしないでください。

発見したようにこれを達成する1つの方法は、コマンドで各バージョンを手動で指定することですinstallpigpioアンインストール時に依存関係が削除されたことを確認するには、インストール後に表示する必要がありますautoapt-mark

より簡単な方法まず、アップグレードされたパッケージを削除してください。

apt-get remove pigpio
apt-get autoremove
apt-get install pigpio=1.68-3+rpi1

これは通常は機能しますが、何らかの理由で機能しませんpigpio。それはおそらく、基本バージョンにパッケージが1つしかないからです。機能は、パッケージが属するバージョンをpigpio使用または確認するためのオプションです。-t releaseapt-cacheapt policy

pi@raspberrypi:~ $ apt-cache madison pigpio
    pigpio | 1.78-1+rpi1 | http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages
    pigpio | 1.68-3+rpi1 | http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages

pi@raspberrypi:~ $ apt policy pigpio
pigpio:
  Installed: (none)
  Candidate: 1.78-1+rpi1
  Version table:
     1.78-1+rpi1 500
        500 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages
     1.68-3+rpi1 500
        500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages

pi@raspberrypi:~ $ sudo apt-get -t buster install pigpio
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libpigpio-dev libpigpio1 libpigpiod-if-dev libpigpiod-if1 libpigpiod-if2-1 pigpio-tools pigpiod
The following NEW packages will be installed:
  libpigpio-dev libpigpio1 libpigpiod-if-dev libpigpiod-if1 libpigpiod-if2-1 pigpio pigpio-tools pigpiod
0 upgraded, 8 newly installed, 0 to remove and 7 not upgraded.
Need to get 328 kB of archives.
After this operation, 990 kB of additional disk space will be used.

すべての依存関係が削除されない場合は、autoremoveシステム内の他の項目がこれらのパッケージに依存していることを意味します。その項目を削除するかpigpio

おすすめ記事