【发布时间】:2021-04-09 17:55:30
【问题描述】:
我已经开始使用 Docker,使用来自 GitHub 的 LAMP repo 作为我的起点。我需要添加libxslt 库。我已经尝试将它添加到我的 Dockerfile 中:
RUN apt-get install libxslt-dev
RUN docker-php-ext-enable libxslt-dev
但不断报错:E: Unable to locate package libxslt-dev
我尝试从 Docker 容器的命令行 apt-cache search libxslt 搜索 lib,但没有得到任何结果。
谁能指出我安装这个库的正确方向?
谢谢
下面的答案(@vpalmerini)更新Dockerfile:
RUN apt update && apt-get install -y libxslt-dev
RUN docker-php-ext-enable libxslt-dev
我认为可行:
Step 9/13 : RUN apt update && apt-get install -y libxslt-dev
[...]
The following additional packages will be installed:
libxslt1.1
The following NEW packages will be installed:
libxslt1-dev libxslt1.1
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 756 kB of archives.
After this operation, 3001 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 libxslt1.1 amd64 1.1.32-2.2~deb10u1 [237 kB]
Get:2 http://deb.debian.org/debian buster/main amd64 libxslt1-dev amd64 1.1.32-2.2~deb10u1 [519 kB]
Fetched 756 kB in 0s (4903 kB/s)
Selecting previously unselected package libxslt1.1:amd64.
(Reading database ... 21271 files and directories currently installed.)
Preparing to unpack .../libxslt1.1_1.1.32-2.2~deb10u1_amd64.deb ...
Unpacking libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ...
Selecting previously unselected package libxslt1-dev:amd64.
Preparing to unpack .../libxslt1-dev_1.1.32-2.2~deb10u1_amd64.deb ...
Unpacking libxslt1-dev:amd64 (1.1.32-2.2~deb10u1) ...
Setting up libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ...
Setting up libxslt1-dev:amd64 (1.1.32-2.2~deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...
Removing intermediate container b62504aca3f9
---> b62b7af34467
Step 10/13 : RUN docker-php-ext-enable libxslt-dev
---> Running in 181191c74fe5
error: 'libxslt-dev' does not exist
还尝试更改 RUN 命令以匹配找到的包:libxslt1-dev
RUN docker-php-ext-enable libxslt1-dev
仍然无法启用libxslt
更多信息,输出来自:
dpkg --get-selections
包括:
libxml2-dev:amd64 install
libxrender-dev:amd64 install
libxrender1:amd64 install
libxslt1-dev:amd64 install
libxslt1.1:amd64 install
libxt-dev:amd64 install
但运行RUN docker-php-ext-enable libxslt1-dev 仍然给出
error: 'libxslt1-dev' does not exist
【问题讨论】:
-
你做对了,问题是你的基础镜像的 Linux 发行版没有这个包。 Dockerfile 中的基础镜像是什么?根据发行版的不同,包可能有另一个名称...
-
@vpalmerini 是的,我没有想到这一点。它使用
FROM php:7.4.2-apache-buster。 -
这是一个基于 Debian 的好消息。我会发布作为答案,好吗?
-
您混淆了
libxslt的系统开发包(存在于您的发行版中,具有特定名称libxslt1-dev),这是安装php 扩展程序所必需的xsl。这是一个oneliner self-trashable test 为您指路。 -
@Zeitounator,成功了。用
RUN apt update && apt install -y libxslt1-dev && docker-php-ext-install xsl更新了我的 Dockfile,XSL 可用。非常感谢/ diolch yn fawr