Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
`lsb_发布-一个“opensuse/tumbleweed”docker中的“a” 上下文_Docker_Opensuse_Getopt_Lsb - Fatal编程技术网

`lsb_发布-一个“opensuse/tumbleweed”docker中的“a” 上下文

`lsb_发布-一个“opensuse/tumbleweed”docker中的“a” 上下文,docker,opensuse,getopt,lsb,Docker,Opensuse,Getopt,Lsb,尝试使用安装python3软件包时 python3-m pip安装absl-py 如果安装了lsb release软件包,则会失败(这是我的情况,是强制性的) 在我发现的挖掘之后,pip将在内部调用lsb_release-a,这将导致此错误。。。 我可以使用下面的Dockerfile轻松地复制它 协议 创建此Dockerfile: # ref: https://hub.docker.com/r/opensuse/tumbleweed FROM opensuse/tumbleweed RUN

尝试使用安装python3软件包时

python3-m pip安装absl-py
如果安装了
lsb release
软件包,则会失败(这是我的情况,是强制性的)

在我发现的挖掘之后,pip将在内部调用
lsb_release-a
,这将导致此错误。。。 我可以使用下面的Dockerfile轻松地复制它

协议 创建此
Dockerfile

# ref: https://hub.docker.com/r/opensuse/tumbleweed
FROM opensuse/tumbleweed

RUN zypper update -y \
&& zypper install -y lsb-release \
&& zypper clean -a

RUN lsb_release -a
观察
docker build--tag=so。
...
--->8330cfe918d5
步骤3/3:运行lsb_版本-a
--->在488762fb27a3中运行
/usr/bin/lsb_发布:第122行:找不到getopt:命令
命令'/bin/sh-c lsb_release-a'返回一个非零代码:2
测验 我试图安装“gengetopt”、“gnu getopt”或“perl getopt Long Descriptive”,但没有成功(但仍然发生了相同的错误)

变通办法 一种解决方法是安装meta包
lsb
,不幸的是这需要时间(184个包)

我正在寻找一个“更小”的软件包来修复它(即拉更少的依赖项)

协议 观察
docker build--tag=变通方法。
...
步骤4/4:运行lsb_版本-a
--->在6d93c78f7a47中运行
LSB版本:core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64:desktop-4.0
分发服务器ID:openSUSE
描述:openSUSE风滚草
发布日期:20201121
代号:不适用
拆卸中间容器6d93c78f7a47
--->c11779133426
成功构建c11779133426
已成功标记os:最新版本

您可以使用
zypper search-f
检索
getopt
的包所有者:

15b83d17ed60://#命令-v getopt
/usr/bin/getopt
15b83d17ed60:/#命令-v getopt | xargs zypper search-f
正在加载存储库数据。。。
正在读取已安装的软件包。。。
S |名称|摘要|类型
--+--------------------+----------------------------------------+--------
|busybox util linux | busybox小程序取代util linux |包
i | util linux |基本系统实用程序的集合|包
因此,在这里安装
util linux
就足够了

FROM opensuse/tumbleweed

RUN zypper update -y \
&& zypper install -y lsb-release \
&& zypper clean -a

RUN zypper update -y \
&& zypper install -y lsb \
&& zypper clean -a

RUN lsb_release -a