私の質問

私の質問

私はこれが私自身が考案したユニークな混乱であると確信していますが、誰かがこれに触れて助けることができることを願っています。

設定

私のラップトップはPop!_OS 22.04(Ubuntu Jammyベース)を実行しています。私は本当に好きスクリーンセーバーパッケージですが、Debian/Ubuntu/Pop!_OS ディストリビューションリポジトリには古いバージョンが含まれており、sid (不安定とも呼ばれる) にのみ最新のパッケージが含まれています。*

心配しないでください。これがまさに固定が存在する理由です。私が設定した方法は次のとおりです。

/etc/apt/preferences.d/unstable-200文書:

Package: *
Pin: release a=unstable
Pin-Priority: 200

/etc/apt/preferences.d/xscreensaver-2000文書:

Package: xscreensaver*
Pin: release a=unstable
Pin-Priority: 2000

/etc/apt/sources.list.d/debian.sid.list文書:

deb [arch=amd64] http://http.us.debian.org/debian sid main contrib non-free

これは実際に動作します。この時点で実行すると、sudo apt install xscreensaver最新バージョンがインストールされます。しかし、奇妙な副作用があります。

質問

sudo apt updateその後、実行すると、sudo apt upgrade次の結果が表示されます。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be DOWNGRADED:
  alsa-topology-conf appmenu-gtk-module-common aspell-en ca-certificates
  chrome-gnome-shell dictionaries-common dns-root-data emacsen-common folks-common
  fonts-arphic-ukai fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji
  fonts-urw-base35 friendly-recovery gir1.2-flatpak-1.0 gir1.2-gdkpixbuf-2.0
  gir1.2-graphene-1.0 gir1.2-gtksource-4 gir1.2-polkit-1.0 gir1.2-secret-1
  gir1.2-soup-2.4 gsfonts gsfonts-x11 hunspell-ar hunspell-de-at-frami
  hunspell-de-ch-frami hunspell-de-de-frami hunspell-en-au hunspell-en-ca hunspell-en-gb
  hunspell-en-us hunspell-en-za hunspell-es hunspell-fr hunspell-fr-classical hunspell-it
  hunspell-pt-br hunspell-pt-pt hunspell-ru hyphen-de hyphen-en-gb hyphen-es hyphen-fr
  hyphen-it hyphen-pt-br hyphen-pt-pt ieee-data javascript-common klibc-utils
  laptop-detect liba52-0.7.4 libappmenu-gtk2-parser0 libbytesize-common libffi8
  libflatpak-dev libgl1 libgles2 libgutenprint-common libgweather-4-0 libio-stringy-perl
  libjs-jquery libldacbt-abr2 libmpcdec6 libmysofa1 libopengl0 libpolkit-gobject-1-0
  libsndio7.0 libsoup-gnome2.4-1 libtermkey1 libvterm0 libwacom-common libxkbcommon0
  mythes-ar mythes-de mythes-de-ch mythes-en-au mythes-en-us mythes-es mythes-fr
  mythes-it mythes-pt-pt mythes-ru neovim-runtime netbase pass policykit-1 poppler-data
  powermgmt-base printer-driver-all python3-certifi python3-fido2 python3-jinja2
  python3-launchpadlib python3-lazr.uri python3-macaroonbakery python3-more-itertools
  python3-pkg-resources python3-pyatspi python3-rfc3339 python3-setuptools python3-tz
  python3-wheel python3-ykman sensible-utils sgml-base sgml-data sound-icons ssl-cert
  tpm-udev ucf update-inetd va-driver-all wamerican wbrazilian wbritish wfrench witalian
  wngerman wogerman wspanish wswiss xfonts-base xml-core yubikey-manager
0 upgraded, 0 newly installed, 125 downgraded, 0 to remove and 0 not upgraded.
Need to get 257 MB/283 MB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] 

これにより、Pop!_OS Shopのアップデート数が消え、そのパッケージが保留中のOSアップデートとして表示されます。

トラブルシューティング

この問題を解決しようとして収集したデータの一部です。

アンインストール/etc/apt/sources.list.d/debian.sid.listして実行するとsudo apt update問題が解決したため、どこかに誤った計算/欠陥があるロジックであることがわかります。

リストの最初のパッケージに焦点を当てますalsa-topology-conf

エラーは完全に表面的なものであることがわかりましたが、最初はaptパッケージソース(ストレージ)が何らかの形で追跡されていると思い、パッケージを削除してクリーンアップして再インストールしました。他に何もない。

sudo apt remove alsa-topology-conf
sudo apt clean
sudo apt update
sudo apt install alsa-topology-conf

実行apt policy alsa-topology-conf結果は次のとおりです。

alsa-topology-conf:
  Installed: 1.2.5.1-2
  Candidate: 1.2.5.1-2
  Version table:
 *** 1.2.5.1-2 200
        200 http://http.us.debian.org/debian sid/main amd64 Packages
        100 /var/lib/dpkg/status
     1.2.5.1-2 501
        501 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        501 http://us.archive.ubuntu.com/ubuntu jammy/main i386 Packages

両方のように見え、まったく同じバージョンをsid持ち、jammy何らかの理由で優先順位エントリの代わりに優先順位があるaptパッケージと一致します。200501

削除後の/etc/apt/sources.list.d/debian.sid.list出力は次のようになります。

alsa-topology-conf:
  Installed: 1.2.5.1-2
  Candidate: 1.2.5.1-2
  Version table:
 *** 1.2.5.1-2 501
        501 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        501 http://us.archive.ubuntu.com/ubuntu jammy/main i386 Packages
        100 /var/lib/dpkg/status

関連質問

以下は同様の状況に関する質問ですが、どの回答もこの問題を理解または解決するのに役立ちませんでした。

上記の質問に対するすべての回答を試しましたが、関連性があるか、有効な答えがないようです。

私の質問

システムが常にこれらのパッケージをダウングレードする必要があるとは思わないように、これを調整する方法について提案がある人はいますか?

答え1

基本的な答えは、あなたがしてはいけないことをしているということです。複数のバージョン(およびディストリビューション)にわたるリポジトリの混合。 UbuntuベースのディストリビューションにDebianパッケージを導入するのは悪い考えです。xscreensaver利用可能以降のバージョンのUbuntuでは、、使用するのはそれほど危険ではありませんが、それでも悪い考えです。

あなたが行ったすべての調査と提供された詳細を考慮すると、ここに表示される動作を説明することをお勧めします。 「ダウングレード」を提供するすべてのパッケージは、DebianとUbuntuで同じバージョンで利用できるという共通の属性を持っています。いいえDebianからインポートされたすべてのパッケージはUbuntuで再構築されるため、同じパッケージです。

aptここで最初に登場する機能はピン優先順位選択バージョンのみ。リポジトリのさまざまなバージョンで利用可能なパッケージの場合、固定優先順位によってパッケージが区別されます。リポジトリの同じバージョンで使用可能なパッケージには該当しません。次に、次の機能を適用します。複数のリポジトリが同じバージョンを提供している場合は、リストされた最初のバージョンが優先されます。。これは、ハッシュが一致しない場合、特定のハッシュでインストールされたパッケージが同じバージョンのリポジトリパッケージに置き換えられるという別の機能と組み合わされますapt(これにはQ&Aがありますが、次のものを探しています)。これまでではありません)。

これらのすべての結果は、JammyのバージョンがDebian stableの現在のバージョンと完全に一致するPop!_OS(デフォルトのUbuntu)によって提供されるすべてのパッケージがaptDebianバージョンに置き換えられたと見なされることです。なぜダウングレードされたと識別されるのかわかりません。

これを続行するには、多くのPop!_OSパッケージをDebianの「同等のパッケージ」に置き換える必要があります。これはうまくいくかもしれませんが、使用されているライブラリの微妙な違いによって問題が発生する可能性があります。 。完全にテストされていない設定で終了します。

これをキャンセルするには、を削除しsid.listてリポジトリを更新してから、「ダウングレード」したパッケージを明示的に再インストールする必要があります。

sudo apt reinstall alsa-topology-conf

答え2

Steven Kitに感謝します

確かに、スティーブンジッタ答えは選択された答えです。
しかし、OPとして私は私の特定の問題を解決するために特定の詳細を追加しました(他の人が興味を持っている場合に備えて)。

Stephenが親切で忍耐強く指摘したように、文書化はうまくいっていますが、正しく理解または読めませんでした。

購入するパッケージを選択するプロセスは2段階で行われます。

  1. 優先順位によって取得するバージョンが決まります。
  2. これで、apt特定のバージョンを一覧表示する最初のリポジトリを取得できます。
    • /etc/apt/sources.listまずファイルで探します。
    • 次に、/etc/apt/sources.list.ddirを見て、ディレクトリ内のファイルを語彙順に並べ替えます(デフォルトではデフォルトlsで行うこと)。

私の質問

私の質問に指定されていないPop!_OSソースファイルは/etc/apt/sources.list.dディレクトリにリストされており、その名前は次のとおりです。

pop-os-apps.sources
pop-os-release.sources
system.sources

つまりsid.listdebian.sid.list上記のリストで並べ替えても表示されます。今後 system.sourcesここはUbuntuのジェイミー買戻契約が明記されています。

トラブルシューティング - 回答

質問で説明した特定のシナリオを解決するために、私のソリューションは、パッケージ内のパッケージが常に最後に選択されるsid.listように名前を変更することでしたzzz.sid.listsid

apt policy alsa-topology-conf修理後の様子は以下の通りです。

1.2.5.1-2   Candidate: 1.2.5.1-2   Version table:  *** 1.2.5.1-2 501
        501 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        501 http://us.archive.ubuntu.com/ubuntu jammy/main i386 Packages
        100 /var/lib/dpkg/status
     1.2.5.1-2 200
        200 http://http.us.debian.org/debian sid/main amd64 Packages
        200 http://http.us.debian.org/debian sid/main i386 Packages

正解

可能であれば、これを行う必要はありません。特に、デフォルトのUbuntuバージョンが最終的にアップグレードされた最新バージョンのPop!_OSではさらにそうです。スクリーンセーバーバッグそしてそれらは実際にそれらと一致しますsid

簡単に言えば、私は(過去の経験に基づいて)システムをハッキングしなければならないと思いました。

しかし、繰り返しますが、私は仕事を破るときに最もよく学びます。それは素晴らしい教訓であり、時間をかけて読んで答えてくださった方々に感謝します。

関連情報