一時的にシステムパッケージを上書きする

一時的にシステムパッケージを上書きする

私は高精度の時間/タイムゾーンを必要とするシステムに取り組んでいます。

見ているtzdataパッケージ発売後数日後に更新される場合もあります。インターネット割り当て番号機関データベースファイルを更新します。

ソースを確認しtzdata、IANAからデータベースをダウンロードして抽出して再パッケージすることは非常に簡単です。

しかし、正式なアップデートなしでパッケージだけを扱いたいです。リポジトリに公式アップデートがある場合は、tzdata元の状態に戻したいと思います。

これを達成するための最良の方法は何ですか?

答え1

パッケージのバージョンが最終的に使用するバージョン番号より前のバージョン番号を使用する必要があります。ローカルビルドに対してこれを行う標準的な方法は、〜サフィックスを使用することです。なぜなら、このサフィックスは何よりも前に来るからです(したがって古いと見なされます)。したがって、2017aの場合は、バージョン番号2017a〜-0.1(-0.1)を使用してください。新しいバージョン非公式パッケージ)。現在のバージョン以降にソートされます。

$ dpkg --compare-versions 2016j-0ubuntu0.16.04 lt 2017a~-0.1
$ echo $?
0

したがって、アップグレード候補として選択され、次のバージョンより前にランク付けされます。

$ dpkg --compare-versions 2017a~-0.1 lt 2017a-0ubuntu0.16.04
$ echo $?
0

したがって、次の公式バージョンがそれを置き換えます。

tzdataこのスキームは、次のアップデートソース(DebianまたはUbuntu)に関係なく機能します。

Debian ポリシーバージョンについてすべての詳細があります。

答え2

あなたはそれを確認したいでしょうバージョンが修正されました。

これは関連する別の質問

ただし、メジャーリリースの前に固定機能を使用して一時的にブロックすることは困難です。

sudo apt-mark hold tzdataaptholdを使用してパッケージの更新を防ぐことができるので、必要なアップデートがあることがわかるまで、パッケージを現在のバージョンに保つためにメンテナンスを追加してから、メンテナンスをオフにして更新できますsudo apt-mark unhold tzdata

関連情報