存储库的“ http://security.debian.org/debian-security 破坏/更新内部发布”将其“套件”值从“稳定”改为“旧稳定”

我的一些 GitHub Actions 工作流最近开始在安装 ChromeDriver 时返回这个错误:

Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Reading package lists...
E: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
E: Repository 'http://deb.debian.org/debian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
E: Repository 'http://deb.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'stable-updates' to 'oldstable-updates'
Error: Process completed with exit code 100.

下面是我的步骤实现:

jobs:
build:
runs-on: ubuntu-latest
container:
image: docker://guillaumefalourd/ritchiecli:py-3.8
steps:
- name: Install Chrome Driver
run: |
sudo apt-get update
sudo apt-get install -y unzip xvfb libxi6 libgconf-2-4 gnupg2
sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
sudo echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
sudo apt-get -y update
sudo apt-get -y install google-chrome-stable
wget -N https://chromedriver.storage.googleapis.com/89.0.4389.23/chromedriver_linux64.zip -P ~/
unzip ~/chromedriver_linux64.zip -d ~/
rm ~/chromedriver_linux64.zip
sudo mv -f ~/chromedriver /usr/local/bin/chromedriver
sudo chown root:root /usr/local/bin/chromedriver
sudo chmod 0755 /usr/local/bin/chromedriver

Docker 映像实现: Docker://Guillaumefalourd/Ritchicli: py-3.8

我尽力了

  1. I read from 给你 and 给你 that adding sudo apt-get --allow-releaseinfo-change update or sudo apt-get dist-upgrade could resolve the problem, but even adding those to my workflow didn't resolve it.

  2. 我尝试使用这个操作 安装-变色驱动器,但它在下面的文档中返回了相同的错误:

    steps:
    - uses: actions/checkout@v2
    - uses: nanasess/setup-chromedriver@master
    with:
    # Optional: do not specify to match Chrome's version
    chromedriver-version: '88.0.4324.96'
    - run: |
    export DISPLAY=:99
    chromedriver --url-base=/wd/hub &
    sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
    
  3. 因为它似乎与 Debian _ 10 _ (Buster)”rel = “ noReferrer”> Debian 10 (Buster)(?)有关我还尝试使用另一个 Ubuntu 运行程序版本作为运行程序(ubuntu-18.04而不是 ubuntu-latest) ,但没有任何改变,同样的错误。

我该如何解决这个问题?



回答我

后来我观察到问题发生在第一个命令 sudo apt-get update上(我在... 后面添加了另一个命令)。

用它代替 sudo apt-get --allow-releaseinfo-change update解决了我的问题。

因此,答案不是将 sudo apt-get --allow-releaseinfo-change update添加到所执行的步骤命令中,而是将 代课老师添加到所执行的步骤的 sudo apt-get update命令中。

jobs:
build:
runs-on: ubuntu-latest
container:
image: docker://guillaumefalourd/ritchiecli:py-3.8
steps:
- name: Install Chrome Driver
run: |
sudo apt-get --allow-releaseinfo-change update
sudo apt-get install -y unzip xvfb libxi6 libgconf-2-4 gnupg2
sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
sudo echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
sudo apt-get -y update
sudo apt-get -y install google-chrome-stable
wget -N https://chromedriver.storage.googleapis.com/89.0.4389.23/chromedriver_linux64.zip -P ~/
unzip ~/chromedriver_linux64.zip -d ~/
rm ~/chromedriver_linux64.zip
sudo mv -f ~/chromedriver /usr/local/bin/chromedriver
sudo chown root:root /usr/local/bin/chromedriver
sudo chmod 0755 /usr/local/bin/chromedriver
69253 次浏览

我知道你试过

apt-get --allow-releaseinfo-change update

但对我很有效。

这是我在 dockerfile 中的命令:

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
&& apt-get --allow-releaseinfo-change update \
&& apt-get install -y google-chrome-unstable \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*

不需要: rm -rf /var/lib/apt/lists/*

FWIW,您可以通过添加 specialist options来限制您允许绕过 apt-secure的字段,从而降低使用此选项(--allow-releaseinfo-change)的风险。来自 man apt-get:

专家选项(—— allow-release-info-change-field)的存在只允许对某些字段进行更改,如原始、标签、代码名、套件、版本和默认脚本。另请参见 apt _ ferences (5)。

例如,在当前由于 Debian 和它的衍生 RPi OS之间的 bullseye延迟发布而产生的问题中,specialist option将是 suite。这是由于 buster中的 suite标签已从 stable改为 oldstable:

$ sudo apt-get --allow-releaseinfo-change-suite update