首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图向Docker容器添加libxslt

试图向Docker容器添加libxslt
EN

Stack Overflow用户
提问于 2021-01-03 19:47:01
回答 2查看 3.3K关注 0票数 2

我已经开始使用Docker,使用来自GitHub的GitHub作为我的起点。我需要添加libxslt库。我尝试过将它添加到我的Dockerfile中:

代码语言:javascript
复制
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中搜索库,但没有得到任何结果。

有人能指出正确的方向来安装这个库吗?

谢谢

以下回复(@vpalmerini)更新Dockerfile

代码语言:javascript
复制
RUN apt update && apt-get install -y libxslt-dev
RUN docker-php-ext-enable libxslt-dev

我认为这是可行的:

代码语言:javascript
复制
Step 9/13 : RUN apt update && apt-get install -y libxslt-dev

..。

代码语言:javascript
复制
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

代码语言:javascript
复制
RUN docker-php-ext-enable libxslt1-dev

仍然无法启用libxslt

更多信息,产出来自:

代码语言:javascript
复制
dpkg --get-selections

包括:

代码语言:javascript
复制
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仍然会给出

代码语言:javascript
复制
error: 'libxslt1-dev' does not exist
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-11 14:55:52

您将名为php扩展xsl系统开发包 for libxslt (显示在您的基本映像Debian发行版中有特定名称libxslt1-dev)混淆在一起,这是安装该php扩展所必需的。

这里是一个基本的Dockerfile来实现您的需求。注意,作为一种良好的实践,我在一次运行指令中安装,并在最后进行了一些额外的清理。

apt-get remove行是可选的,但会减少一些层的大小。安装libxslt1-dev及其所有依赖项(icu-devtoolslibicu-devlibicu63libxml2libxml2-devlibxslt1.1)是安装扩展所必需的。但是一旦完成,可以删除dev包。

代码语言:javascript
复制
FROM php:7.4.2-apache-buster

RUN apt-get update && \
    apt-get install -y libxslt1-dev && \
    docker-php-ext-install xsl && \
    apt-get remove -y libxslt1-dev icu-devtools libicu-dev libxml2-dev && \
    rm -rf /var/lib/apt/lists/*
票数 7
EN

Stack Overflow用户

发布于 2021-01-03 22:30:55

唯一缺少的是必须更新映像的包,然后才能安装libxslt-dev包:

代码语言:javascript
复制
RUN apt update && apt-get install -y libxslt-dev
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65554220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档