Debian Jessieにバックポートがインストールされすぎています。

Debian Jessieにバックポートがインストールされすぎています。

私はDebian Jessieを持っていてバックポートを追加しました(次のように)このガイドライン):

echo "deb http://http.debian.net/debian jessie-backports main contrib non-free" | sudo tee /etc/apt/sources.list.d/backports.list

(ノートブックの一部のハードウェアに必要だったため、最新のカーネルを取得するためにこれを行いました。)

指示には、バックポートされたパッケージを明示的に要求しない限り何も起こらないことが示されています。たとえばapt-get -t jessie-backports install "package"

ただし、バックポートからシステムの完全な負荷を取得するように見え、バックポートされたアイテムの正確なバージョンに更新する必要があるため、1つのパッケージが削除されました。

だから私の質問は次のようになります

  • バックポートがインストールされなくなるように最初に停止するにはどうすればよいですか?
  • 既存のバックポートを削除する方法は?

注:これはバックポートからインストールされたパッケージのリストを取得します(そしてそれに渡すことができる形式でapt-get install、何らかの理由でsudo apt-get installパイプの末尾にechoを置くことは機能しません)。

cat /var/log/dpkg.log.1 |grep -v linux | grep -v xserver | grep -v firmware | grep "status installed" | grep bpo | cut -d" " -f 5 | cut -d: -f 1 | xargs -i{} -n1 bash -c "dpkg-query -s {} >/dev/null && echo {}" | sed -r -e "s~.*~\0/jessie~" | xargs echo

警告する:

一部のパッケージは自動的にインストールされるため、すべてのパッケージを再インストールすると、自動的にインストールされたパッケージは手動でインストールされたとマークされます。したがって、不要な場合は削除されません。

この問題を解決する方法について考えている人はいますか?

ベストアンサー1

  1. /etc/apt/apt.conf次のいずれかのファイルに以下を追加してみてください/etc/apt/apt.conf.d

    APT::Default-Release "jessie";

  2. 既存のバックポートを削除するには、インストールされているバックポートと置き換えるバージョンのリストをインポートする必要があります。幸いなことに、この情報は次のサイトから簡単に入手できます。/var/log/dpkg.log

たとえば、grep ' upgrade ' /var/log/dpkg.log次のような多くの行が表示されます。

2016-02-15 11:06:32 upgrade python-numpy:amd64 1:1.11.0~b2-1 1:1.11.0~b3-1

これは、2月15日午前11時6分にpython-numpyをバージョン1:1.11.0〜b2-1からバージョン1:1.11.0〜b3-1にアップグレードしたことを意味します。

以前のバージョンにダウングレードするには、次の手順を実行します。

apt-get install python-numpy=1:1.11.0~b2-1

sid注:この特別な場合はdebian(別名debian)を実行しているため、動作しない可能性があります。unstableしたがって、以前のバージョンはdebリポジトリで使用できなくなる可能性があります。jessiejessie-backportsバージョンのダウングレードとしてパッケージのjessieバージョンを実行して再インストールすると、期待どおりに機能します。

同様に、パッケージが削除された場合は、removegrep for inを使用してそのパッケージと正しいバージョンを見つけることができます/var/log/dpkg.log


awkgrepたとえば、インストールしたjessie-backportsのアップグレードが特定の日付(2016-02-15など)にすべて完了したことがわかっている場合は、次のコマンドを使用して以前のバージョンにダウングレードできます。

 apt-get -d -u install $(awk '/2016-02-15 ..:..:.. upgrade / {print $4 "=" $5}'
    /var/log/dpkg.log)

(水平スクロールバーを避けるために、改行とインデントを追加してください。)

-d()オプションの使用に注意してください--download-only。コマンドがapt-get install目的のジョブと目的のジョブのみを実行していることを確認してから、コマンドを再実行してオプションを削除してください。

また、awk再インストールするパッケージとバージョンの正確なリストを表示できるように、まずコマンド自体の一部のみを実行することをお勧めします。

おすすめ記事