Singularity에서 가짜 루트 또는 정의 파일의 모든 항목에서 Ubuntu 기반 빌드를 빌드하면 치명적인 %post
오류 와 함께 실패합니다.apt update -y
apt install -y openssh-client
apt-get
-f
groupadd: failure while writing changes to /etc/group
addgroup: `/sbin/groupadd -g 101 ssh' returned error code 10. Exiting.
Errors were encountered while processing: openssh-client E: Sub-process /usr/bin/dpkg returned an error code (1)
FATAL: While performing build: while running engine: exit status 100
사용자 추가가 왜 문제인지 이해하지만 yum update
Rocky 9에서는 잘 작동합니다(일부 요구 사항으로 인해 전환할 수 없습니다). 이것은 클러스터에 있으며 루트 액세스 권한이 없고 Singularity를 사용해야 하며 docker를 사용할 수 없습니다. 기본 OS는 CentOS 7이고 glibc 문제는 극복할 수 없습니다. Nvidia의 Docker Ubuntu 이미지부터 서명되지 않은 Singularity 이미지까지 공식적으로 서명된 다양한 Ubuntu 이미지를 사용해 보았습니다.
Conda는 ssh를 설치할 수 있지만 문제가 apt update
실패하여 해결할 수 없습니다.
온라인에는 부족한 부분이 너무 많아서 뭔가 뻔한 게 빠진 것 같은 느낌이 듭니다...
답변1
해결책은 패키지 관리자를 속이는 것입니다동등한
apt-get install -y equivs
# Manual `equivs-control openssh-client`
echo 'Section: misc' > openssh-client
echo 'Priority: optional' > openssh-client
echo 'Standards-Version: 3.9.2' > openssh-client
echo 'Package: openssh-client' > openssh-client
echo 'Version: 1:8.9p1-3ubuntu0.4' > openssh-client
echo 'Maintainer: Your Name <[email protected]>' > openssh-client
echo 'Provides: openssh-client' > openssh-client
echo 'Architecture: amd64' > openssh-client
echo 'Description: fake package' > openssh-client
equivs-build openssh-client
dpkg -i equivs-dummy_1.0_all.deb