&引用;logname:无登录名“;运行dpkg-i时在Docker容器内
我需要在Ubuntu18.04 Docker容器中安装SDK包,但我经常遇到这个问题:&引用;logname:无登录名“;运行dpkg-i时在Docker容器内,docker,dpkg,Docker,Dpkg,我需要在Ubuntu18.04 Docker容器中安装SDK包,但我经常遇到这个问题: theuser@e9fa4f39e0f0:/src/spinnaker$ sudo dpkg -i libspinnaker_2.2.0.48_arm64.deb (Reading database ... 52013 files and directories currently installed.) Preparing to unpack libspinnaker_2.2.0.48_arm64.deb
theuser@e9fa4f39e0f0:/src/spinnaker$ sudo dpkg -i libspinnaker_2.2.0.48_arm64.deb
(Reading database ... 52013 files and directories currently installed.)
Preparing to unpack libspinnaker_2.2.0.48_arm64.deb ...
Unpacking libspinnaker (2.2.0.48) over (2.2.0.48) ...
logname: no login name
dpkg: warning: old libspinnaker package post-removal script subprocess returned error exit status 1
dpkg: trying script from the new package instead ...
logname: no login name
dpkg: error processing archive libspinnaker_2.2.0.48_arm64.deb (--install):
new libspinnaker package post-removal script subprocess returned error exit status 1
logname: no login name
dpkg: error while cleaning up:
new libspinnaker package post-removal script subprocess returned error exit status 1
Errors were encountered while processing:
libspinnaker_2.2.0.48_arm64.deb
我尝试了各种解决方法,设置USER、SUDO_USER、LOGNAME,使用“-u”开关将容器运行到我的uid/gid,所有这些方法都会得到相同的LOGNAME错误。有解决方法吗?我对最新的spinnaker api版本也有同样的问题 问题是postinst调用logname来查找主目录的位置,并安装一些配置文件。在docker构建上下文中,没有登录的用户 我骇人听闻的做法是用“echo root”覆盖logname可执行文件。 e、 g: spinnaker.dat的内容(为了避免从preinst脚本中得到提示)包括:
你能包括你的图片的Dockerfile吗?看起来您正试图在容器临时文件系统中安装软件包,一旦容器退出,文件系统就会丢失;您几乎总是希望在映像构建期间执行此操作。
# Install spinnaker sdk https://www.flir.com/support-center/iis/machine-vision/downloads/spinnaker-sdk-and-firmware-download/
COPY external/spinnaker/* spinnaker/
# Pre-answer the apt install prompts
COPY spinnaker.dat .
RUN cat spinnaker.dat >> /var/cache/debconf/config.dat
# Fake out logname (no login context in docker build)
RUN echo "echo root" > /usr/bin/logname
# Install other postinst dependencies
RUN DEBIAN_FRONTEND=noninteractive apt install -y iputils-ping wget
RUN DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends ./spinnaker/lib*.deb && rm -rv spinnaker
Name: libspinnaker/accepted-flir-eula
Template: libspinnaker/accepted-flir-eula
Value: true
Owners: libspinnaker
Flags: seen
Name: libspinnaker/error-flir-eula
Template: libspinnaker/error-flir-eula
Owners: libspinnaker
Name: libspinnaker/present-flir-eula
Template: libspinnaker/present-flir-eula
Value:
Owners: libspinnaker
Flags: seen