설치 디렉토리에 Chocolatey 패키지를 나열하는 방법이 있습니까?


56

명령

choco list -lo

설치된 패키지를 나열합니다. 그러나 Chocolatey 애플리케이션이 설치되는 위치를 어떻게 결정합니까? 지금까지 나는 그들을 찾아 다녀야했다.

몇 가지 예 :

  • NUnit은 Program Files (x86)
  • WGET은 %ALLUSERSPROFILE%\chocolatey\bin and %ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools
  • ConsoleZ는 %ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools

choco list어디로 갔는지 알려주 는 깃발 이 있습니까? ChocolateyGUI 도이 작업을 수행하지 않는 것 같습니다.

데비안과 같은 종류 :

dpkg-query

또는 RedHat 's :

rpm -ql [package-name]

또는 YUM의 repoquery :

repoquery --list [package-name]

사제 :

brew list [package-name]

답변:


26

현재는 원하는 것을 할 수있는 방법이 없습니다.

각 Chocolatey 패키지는 MSI 또는 EXE를 감싸는 포장지이거나 알려진 위치 (예 : C : \ tools)로 압축 된 아카이브를 간단히 추출하거나 PowerShell 모듈 일 수 있다는 점에서 고유합니다. PSModulePath로 추출하거나 완전히 사용자 정의 할 수 있습니다.

이는 동일한 방식으로 여러 가지 방법이있는 Windows 에코 시스템의 부작용입니다. Chocolatey는 적어도 한 곳에서 원하는 모든 패키지를 찾을 수있는 메커니즘을 제공하여 일종의 주문을 시도하고 있지만 Chocolatey는 할 수있는 일이 너무 많습니다.

사물을 완전히 다르게 보는 경우 다음을 사용하여 설치 인수를 Chocolatey 패키지에 전달할 수 있습니다.

https://github.com/chocolatey/chocolatey/wiki/CommandsInstall#installarguments-optional---v09813

이론적으로는 MSI 또는 EXE 기반 Chocolatey 패키지의 설치 인수를 변경하여 파일이 설치된 위치를 변경할 수 있습니다. 이 접근법의 예는 다음과 같습니다.

http://chocolatey.org/packages/VisualStudio2013Ultimate

그러나이 방법은 제한적입니다. 모든 사람이 Matt와 같이 가능한 설치 인수를 언급하는 데 걸리는 것은 아니며 MSI 또는 EXE로 보낼 수있는 설치 인수를 추출하는 것은 매우 복잡한 프로세스입니다.

ChocolateyGUI와 현재 해당 제품의 유지 관리자 로서이 분야에서 영리한 것은 없다고 말할 수 있습니다 :-). Chocolatey가 제공하는 명령 줄 도구를 둘러싼 래퍼 일뿐 아니라 명령 줄 사용을 좋아하지 않는 사람들이 쉽게 사용할 수 있도록하는 것을 목표로합니다.


2
chocolatey가 패키지에 대한 shim 파일을 생성하여 실행 경로를 유지하고 --shimgen-noop스위치로 호출하면 대상을 노출시키는 해결책이 있습니다. 내 대답 참조
maoizm

8
거의 3 년이 지난 후에도 여전히 초코에 대해 가장 실망스러운 점은 "설치된 것입니다. 지금은 어디입니까?"
벤 콜린스

@ BenCollins 최근에 Chocolatey를 업그레이드했다고 가정합니다. 이제는 설치 위치를보고하며 거의 1 년 동안 (0.9.10부터) 존재합니다. github.com/chocolatey/choco/issues/689
ferventcoder

1
Chocolatey에게 감사합니다. " '$ toolsDir'에 소프트웨어 설치"
blueben

1
어쩌면 ... 일부 chocolatey 디렉토리에 설치 로그를 저장하고 사용자에게 패키지 이름을 검색 할 수있는 기능을 제공
마르첼로 로마

4

Chocolatey가 패키지의 심을 생성하는 경우, 예 yourprogram.exe를 들어 다음 Powershell one-liner를 통해 실행 파일의 경로를 알려줄 수 있습니다.

(yourprogram --shimgen-noop | sls "path to executable:" ) -split "path to executable:" | % {$_.Trim() }

shim이 .exe 파일 인 경우에만 작동합니다. 일부 패키지는 .ps1, .cmd 또는 .bat 파일을 생성하지만 이는 매우 일반적입니다. 이 드문 경우이 레시피가 작동하지 않습니다.


4

불행히도, 내가 아는 것은 아닙니다. 설치 디렉토리는 패키지 자체에 의해 결정됩니다. .nuspec 파일에 정의되어 있지 않으며 Chocolatey 소스 코드에 명시 적으로 정의되어있는 곳을 볼 수 없습니다.

소스 코드 : https://github.com/chocolatey/chocolatey


맞습니다. 패키지 작성을위한 문서를 보면 대부분의 패키지에 대해 원래 소프트웨어 작성자가 작성한 MSI 설치 프로그램이 설치 경로를 정의 함을 알 수 있습니다. Chocolatey는 MSI가 파일을 넣는 위치를 모릅니다.
heavyd

1
cinst notepadplusplus.install -ia "'/D=E:\SomeDirectory\npp'"

그것이 MSI라면 보통 다음과 같이 전달할 수 있습니다 -ia.

INSTALLDIR=""E:\SomeDirectory\npp""

 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.