ubuntu apt-get 存储库给出错误 gpg:找不到有效的 OpenPGP 数据
ubuntu apt-get repository gives error gpg: no valid OpenPGP data found
我正在尝试在 docker 图像上安装 tesseract 库,但出现错误。
我知道很多人问过同样的问题,我也尝试过很多解决方案,但仍然出错。这是 docker 文件
FROM python:3.7.6
RUN file="$(apt-get update && \
apt-get install -y apt-utils && \
apt-get install -y curl && \
apt-get update && \
apt-get install -y software-properties-common && \
apt-get update && \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4BCBD87CEF9E52D && \ # this line added after search
add-apt-repository ppa:alex-p/tesseract-ocr -y )" && echo $file
RUN file = "$(apt-get update --allow-unauthenticated && \
apt install tesseract-ocr=4.1.1-1ppa1~xenial1 -y )" && echo "------ New line" && echo $file
输出:
Warning: apt-key output should not be parsed (stdout is not a terminal)
gpg: key A4BCBD87CEF9E52D: public key "Launchpad PPA for Alex_P" imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: keybox '/tmp/tmpqo2rec69/pubring.gpg' created
gpg: /tmp/tmpqo2rec69/trustdb.gpg: trustdb created
gpg: key A4BCBD87CEF9E52D: public key "Launchpad PPA for Alex_P" imported
gpg: Total number processed: 1
gpg: imported: 1
Warning: apt-key output should not be parsed (stdout is not a terminal)
gpg: no valid OpenPGP data found.
然后打印一些已安装的库
那么这个错误也是
step : RUN file = "$(apt-get update --allow-unauthenticated &&
apt install tesseract-ocr=4.1.1-1ppa1~xenial1 -y )" &&
echo "------ New line" && echo $file
---> Running in 8d364f24dfd9
E: The repository 'http://ppa.launchpad.net/alex-p/tesseract-ocr/ubuntu focal Release' does not have a Release file.
=:
据我所知,您使用的 Python 3.7.6 的 docker 图像是基于 Debian 10 而不是 Ubuntu 16.04 (xenial)。您尝试添加的存储库 (ppa:alex-p/tesseract-ocr) 用于 Ubuntu (https://launchpad.net/~alex-p/+archive/ubuntu/tesseract-ocr)。因此,尝试使用 Ubuntu 16.04 (xenial) 版本 (4.1.1-1ppa1~xenial1) 安装 tesseract 肯定会失败,因为它是基于 Debian 的映像。
您需要一个 Debian 软件包才能安装 (https://tracker.debian.org/pkg/tesseract)。我尝试使用下面的 Dockerfile 并使用了 tesseract 4.0.0-2 版并且它有效。
FROM python:3.7.6
RUN file="$(apt-get update && \
apt-get install -y apt-utils && \
apt-get install -y curl && \
apt-get update && \
apt-get install -y software-properties-common && \
apt-get update && \
apt install tesseract-ocr=4.0.0-2 -y )" && echo $file
检查创建的图像后,我可以确认确实安装了 tesseract
# docker run -it 37755343ba30 bash
root@fdb06d9bdc4e:/# dpkg -l | grep tesseract
ii libtesseract4:amd64 4.0.0-2 amd64 Tesseract OCR library
ii tesseract-ocr 4.0.0-2 amd64 Tesseract command line OCR tool
ii tesseract-ocr-eng 1:4.00~git30-7274cfa-1 all tesseract-ocr language files for English
ii tesseract-ocr-osd 1:4.00~git30-7274cfa-1 all tesseract-ocr language files for script and orientation
root@fdb06d9bdc4e:/# exit
希望这能回答您的问题。
我做了很多搜索,我通过使用 ubuntu 基本映像解决了问题,然后在其上安装了 python 3.7。正如@Amitp 回答所述,python 基本映像基于 debian 而不是 ubuntu,并且 ppa 使用的是 ubuntu
解决方案的 docker 文件
FROM ubuntu:16.04
USER root
RUN file="$(apt-get update && \
apt-get install -y apt-utils && \
apt-get install -y curl && \
apt-get update && \
apt-get install -y software-properties-common && \
apt-get update && \
add-apt-repository ppa:deadsnakes/ppa -y && \
apt update && \
apt install -y python3.7 && \
curl https://bootstrap.pypa.io/get-pip.py | python3.7 &&\
apt-get update)" && echo $file
我正在尝试在 docker 图像上安装 tesseract 库,但出现错误。
我知道很多人问过同样的问题,我也尝试过很多解决方案,但仍然出错。这是 docker 文件
FROM python:3.7.6
RUN file="$(apt-get update && \
apt-get install -y apt-utils && \
apt-get install -y curl && \
apt-get update && \
apt-get install -y software-properties-common && \
apt-get update && \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4BCBD87CEF9E52D && \ # this line added after search
add-apt-repository ppa:alex-p/tesseract-ocr -y )" && echo $file
RUN file = "$(apt-get update --allow-unauthenticated && \
apt install tesseract-ocr=4.1.1-1ppa1~xenial1 -y )" && echo "------ New line" && echo $file
输出:
Warning: apt-key output should not be parsed (stdout is not a terminal)
gpg: key A4BCBD87CEF9E52D: public key "Launchpad PPA for Alex_P" imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: keybox '/tmp/tmpqo2rec69/pubring.gpg' created
gpg: /tmp/tmpqo2rec69/trustdb.gpg: trustdb created
gpg: key A4BCBD87CEF9E52D: public key "Launchpad PPA for Alex_P" imported
gpg: Total number processed: 1
gpg: imported: 1
Warning: apt-key output should not be parsed (stdout is not a terminal)
gpg: no valid OpenPGP data found.
然后打印一些已安装的库 那么这个错误也是
step : RUN file = "$(apt-get update --allow-unauthenticated &&
apt install tesseract-ocr=4.1.1-1ppa1~xenial1 -y )" &&
echo "------ New line" && echo $file
---> Running in 8d364f24dfd9
E: The repository 'http://ppa.launchpad.net/alex-p/tesseract-ocr/ubuntu focal Release' does not have a Release file.
=:
据我所知,您使用的 Python 3.7.6 的 docker 图像是基于 Debian 10 而不是 Ubuntu 16.04 (xenial)。您尝试添加的存储库 (ppa:alex-p/tesseract-ocr) 用于 Ubuntu (https://launchpad.net/~alex-p/+archive/ubuntu/tesseract-ocr)。因此,尝试使用 Ubuntu 16.04 (xenial) 版本 (4.1.1-1ppa1~xenial1) 安装 tesseract 肯定会失败,因为它是基于 Debian 的映像。
您需要一个 Debian 软件包才能安装 (https://tracker.debian.org/pkg/tesseract)。我尝试使用下面的 Dockerfile 并使用了 tesseract 4.0.0-2 版并且它有效。
FROM python:3.7.6
RUN file="$(apt-get update && \
apt-get install -y apt-utils && \
apt-get install -y curl && \
apt-get update && \
apt-get install -y software-properties-common && \
apt-get update && \
apt install tesseract-ocr=4.0.0-2 -y )" && echo $file
检查创建的图像后,我可以确认确实安装了 tesseract
# docker run -it 37755343ba30 bash
root@fdb06d9bdc4e:/# dpkg -l | grep tesseract
ii libtesseract4:amd64 4.0.0-2 amd64 Tesseract OCR library
ii tesseract-ocr 4.0.0-2 amd64 Tesseract command line OCR tool
ii tesseract-ocr-eng 1:4.00~git30-7274cfa-1 all tesseract-ocr language files for English
ii tesseract-ocr-osd 1:4.00~git30-7274cfa-1 all tesseract-ocr language files for script and orientation
root@fdb06d9bdc4e:/# exit
希望这能回答您的问题。
我做了很多搜索,我通过使用 ubuntu 基本映像解决了问题,然后在其上安装了 python 3.7。正如@Amitp 回答所述,python 基本映像基于 debian 而不是 ubuntu,并且 ppa 使用的是 ubuntu
解决方案的 docker 文件
FROM ubuntu:16.04
USER root
RUN file="$(apt-get update && \
apt-get install -y apt-utils && \
apt-get install -y curl && \
apt-get update && \
apt-get install -y software-properties-common && \
apt-get update && \
add-apt-repository ppa:deadsnakes/ppa -y && \
apt update && \
apt install -y python3.7 && \
curl https://bootstrap.pypa.io/get-pip.py | python3.7 &&\
apt-get update)" && echo $file