Chocolatey 패키지에서 shimming되지 않도록 실행 파일을 제외하는 방법

안녕하세요 ! 저는 Xavier Jouvenot이고 이 작은 게시물에서 Chocolatey 패키지에서 shimming이 발생하지 않도록 실행 파일을 제외하는 방법을 볼 것입니다.

셀프프로모션 : 마이website에서 다른 글을 보실 수 있습니다 😉

문제가 있는



Chocolatey 패키지를 만들거나 상호 작용할 때 Chocolatey를 통해 설치된 프로그램이 프로세스를 표시하거나 완료하지 못하는 상황이 발생할 수 있습니다. 프로그램이 사용자가 요청한 작업을 수행하기 때문에 매우 불편할 수 있습니다. 😝

문제는 Chocolatey 기능 "EXECUTABLE SHIMMING "에서 발생합니다. 이 기능은 항상 제대로 설정되지 않고 프로그램 실행이 완료될 때까지 기다리지 않습니다. 일반적으로 프로그램에 그래픽 인터페이스가 있을 때 발생할 수 있지만 그래픽 인터페이스를 고려하지 않고 명령줄을 통해 일부 프로세스를 실행하도록 하려는 경우입니다.

우리는 두 가지 솔루션에 대해 자세히 설명할 것입니다. 하나는 초콜릿 패키지 동작에 대한 해결 방법인 Chocolatey 패키지 사용자이고 다른 하나는 초콜릿 패키지 관리자인 경우 패키지가 적절하게 동작하도록 하는 것입니다 😉

해결책



해결 방법



솔루션은 Chocolatey 패키지 사용자로서 사용하는 명령줄에 특정 옵션을 전달하는 것입니다.

my_program.exe --shimgen-waitforexit


플래그shimgen-waitforexit는 바로 그런 상황을 위해 만들어진 것입니다. 그러나 또한 패키지 자체에서 직접 아래 솔루션을 구현할 수 있도록 패키지 유지 관리자에게 알리도록 권장합니다.

적절한 수정



패키지에 이런 종류의 오류가 있는 경우 이를 올바르게 수정할 수 있는 방법이 있습니다 🙂
설치 스크립트에 다음 줄을 포함하면 shim을 받는 패키지의 실행 파일을 제외할 수 있으므로 문제가 해결됩니다.

Get-ChildItem $PSScriptRoot\*.exe | ForEach-Object { New-Item "$_.ignore" -type file -force | Out-Null }


여기서 무슨 일이 일어나고 있는지 조금 설명합시다!

먼저, Chocolatey Package의 설치 폴더에 있는 모든 .exe 파일을 가져오는 것부터 시작합니다. 그런 다음 발견된 각 실행 파일에 대해 이름은 같지만 확장자가 .exe.ignore 인 빈 파일을 새로 만듭니다. 이 확장은 이제 실행 파일을 shim하고 동시에 문제를 수정하도록 Chocolatey에게 말할 것입니다!😉


이 글을 읽어주신 모든 분들께 감사드리며 다음 글까지 좋은 하루 보내세요 😉

흥미로운 링크


  • PSScriptRoot documentation
  • Get-ChildItem documentation
  • New-Item documentation
  • Out-Null documentation
  • ForEach-Object documentation
  • shimgen-waitforexit option
  • chocolatey excluding executable
  • 10xlearner website
  • 좋은 웹페이지 즐겨찾기