パッケージをインストールするときにインストールするかどうかをapt
示すコマンドラインオプションはありますか?yum
Depends
Python/pipでは、次のようにできます。
pip3 install --no-deps -r requirements.txt
基本的な
私たちは定期的にドッカーのイメージを構築します。このファイルには、apt
特定のバージョンを添付せずにパッケージをインストールする方法についての説明があります。私たちは間違っていませんが、突然テストが中断され始めたため、プロセスは非常に不安定でした。私たちはパッケージをテストされた特定のバージョンに固定したいと思います。
例:
$ sudo apt-get install python3=3.5.1-3
問題は、必要なパッケージを特定のバージョンに設定しても、そのパッケージ内で制御できない依存関係があることです。これらの情報はいつでも更新でき、ラグはユーザーの下から削除されます。
私たちは各パッケージを完全な依存関係リストに分類し、それをapt / yumにそのリストだけをインストールし、他のものをインストールしないように指示したいと思います。私たちは常に開発者がこれらのパッケージのバージョンを固定するように強制することができます(特にpipの要件.txtなどのすべてのバージョンを1つのファイルに保存する場合)。
ベストアンサー1
これはあなたが言及した問題に対する答えではありませんが、根本的な状況を解決するのに役立ちます。
バージョン不変のパッケージソースが必要な場合、従来の解決策はプライベートパッケージストアを使用することです。つまり、選択したディストリビューションのリポジトリをミラーリングし、そのままにしてパッケージを部分的にのみ変更します。後者の部分はテストの中で最も痛い部分です。なぜなら、さまざまなテストシナリオは通常、共通のデフォルトリポジトリと比較して異なるパッケージアップグレードが必要であり、最終的に複数のリポジトリを維持することになるからです。
コンテナは、イメージレジストリと組み合わせるとより簡単なソリューションを提供します。通常どおり基本テストイメージをビルドし、すべてのテスト依存関係を含めます。
FROM debian:10
RUN apt update && apt upgrade && apt install ...
これをビルドし、適切なタグ(日付、悪い場合)を使用して(個人用)レジストリにプッシュします。これにより、テストシーンは、変化しない対応する画像に基づいて行うことができる。特定のパッケージをアップグレードする必要があると判断した場合は、新しいイメージを使用してベースイメージに適切な依存関係を作成します。
FROM testbase:20200229
RUN apt update && apt install ...
このようにアップグレード(またはインストール)したいパッケージのみをリストします。それ以外の場合は、そのパッケージのみがアップグレードされます。必要独自の依存関係に最新のパッケージを含めます。この場合、パッケージも一緒に含まれます(ただし、これを回避する簡単な方法はないので、とにかく処理する必要があります)。
適切なタグ付きイメージを参照する限り、既存のテストに影響を与えることなく、デフォルトのテストイメージを定期的に再構築してプッシュできます。