내가 해결하고 싶은 최상위 문제는 zsh-newuser-install
구성 스크립트를 실행하는 것입니다. 이것은 zsh가 처음 열릴 때 실행되고 .zprofile
// ... 파일이 표시되지 않는 것입니다. .zshrc
현재 구성이 엉망이 되는 것을 원하지 않기 때문에 옵션이 무엇인지 확인하고 자동으로 생성되는 구성을 확인하기 위해 격리된 환경에서 실행하고 싶습니다.
내 생각은 도커 컨테이너 내에서 zsh를 실행하는 것입니다. 나는 docker에 대해 잘 알지 못하지만 nix에 대해서는 조금 알고 있기 때문에 nix 패키지 관리자를 사용하여 다음과 같은 표현으로 컨테이너를 빌드합니다.
docker-example =
pkgs.dockerTools.buildImage {
name = "with-zsh";
config = {
Cmd = [ "${pkgs.zsh}/bin/zsh" ];
};
copyToRoot = with pkgs; [
coreutils
zsh
];
}
컨테이너를 docker에 로드한 후 실행합니다.
docker run -a stdin -a stdout -a stderr -i -t with-zsh:b9049wbw7bbil80pnnvl4cgxb2s9kr15
zsh
homedir도 없고 zsh 구성 파일도 없는 간단한 시스템의 쉘에 들어가게 됩니다 . 구성 프로그램을 /
통과할 수 없습니다 zsh-newuser-install
. 또한 "/share/zsh/5.9/scripts/newuser"에서 init 스크립트를 찾았는데 이를 소싱해도 아무 작업도 수행되지 않는 것 같습니다. cli 구성 프로그램으로 이동하고 싶습니다.
사용자가 누락된 문제인 것 같습니다. 실행 중인 whoami
출력:
#whoami
> whoami: cannot find name for user ID 0: No such file or directory
이 특정 문제를 해결하는 데 도움을 주거나 이것이 예기치 않게 작동하는 이유를 설명하고 현재 구성을 엉망으로 만들지 않고 일부 zsh 구성을 확인하는 방법에 대한 다른 아이디어에 진심으로 감사드립니다. 미리 감사드립니다!
답변1
이를 위해 Docker가 필요하지 않습니다. 자신의 디렉토리가 아닌 빈 홈 디렉토리로 쉘을 시작하십시오.
HOME=$( mktemp -d ) exec zsh