มีวิธีในการแสดงรายการแพ็คเกจ 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 ดูเหมือนจะไม่ทำเช่นนี้

เรียงจากชอบของ Debian:

dpkg-query

หรือ RedHat:

rpm -ql [package-name]

หรือชื่อเสียงของ YUM:

repoquery --list [package-name]

Homebrew :

brew list [package-name]

คำตอบ:


26

ขณะนี้ไม่มีวิธีที่จะทำสิ่งที่คุณถาม

แต่ละแพ็คเกจ Chocolatey มีเอกลักษณ์ในแง่ที่ว่ามันอาจจะเป็น wrapper รอบ ๆ MSI หรือ EXE หรือมันอาจจะเป็นการแยกไฟล์บีบอัดที่บีบอัดอย่างง่าย ๆ ไปยังตำแหน่งที่รู้จักเช่น C: \ tools หรืออาจเป็นโมดูล PowerShell ที่ แยกไปที่ PSModulePath หรืออาจเป็นสิ่งที่กำหนดเองอย่างสมบูรณ์

นี่เป็นผลข้างเคียงของระบบนิเวศของ Windows ซึ่งมีหลายวิธีในการทำสิ่งเดียวกัน Chocolatey พยายามที่จะนำคำสั่งบางอย่างมาใช้โดยจัดให้มีกลไกในการหาแพ็คเกจทั้งหมดที่คุณต้องการในที่เดียว แต่อย่างน้อย Chocolatey ก็สามารถทำได้

หากคุณดูสิ่งต่าง ๆ โดยสิ้นเชิงเป็นไปได้ที่จะส่งอาร์กิวเมนต์การติดตั้งไปยังแพ็คเกจ Chocolatey โดยใช้ข้อมูลต่อไปนี้:

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

ในทางทฤษฎีแล้วอาจแก้ไขข้อโต้แย้งการติดตั้งของแพ็คเกจช็อกโกแลต MSI หรือ EXE เพื่อเปลี่ยนตำแหน่งที่ติดตั้งไฟล์ คุณสามารถดูตัวอย่างของวิธีการนี้ได้ที่นี่:

http://chocolatey.org/packages/VisualStudio2013Ultimate

อย่างไรก็ตามวิธีนี้มี จำกัด ไม่ใช่ทุกคนที่จะใช้เวลาเช่น Matt เพื่อพูดถึงข้อโต้แย้งการติดตั้งที่เป็นไปได้และเป็นกระบวนการที่ค่อนข้างซับซ้อนในการแยกอาร์กิวเมนต์การติดตั้งที่เป็นไปได้ที่จะส่งไปยัง MSI หรือ EXE

ในแง่ของ ChocolateyGUI และในฐานะผู้ดูแลปัจจุบันของผลิตภัณฑ์นั้นฉันสามารถบอกคุณได้ว่าไม่มีอะไรที่ชาญฉลาดในพื้นที่นี้ :-) มันเป็นเพียงเครื่องมือห่อหุ้มรอบ ๆ เครื่องมือบรรทัดคำสั่งที่ Chocolatey มีให้และมีจุดประสงค์เพื่อให้ง่ายขึ้นสำหรับผู้ที่ไม่ชอบการใช้บรรทัดคำสั่ง


2
มีวิธีการแก้ปัญหาเป็น chocolatey สร้างไฟล์ shim สำหรับแพคเกจที่ช่วยให้เส้นทางที่จะปฏิบัติการและตีแผ่เป้าหมายถ้าเรียกว่ามี--shimgen-noopสวิทช์ให้ดูคำตอบของฉัน
maoizm

8
เกือบ 3 ปีต่อมานี่เป็นสิ่งที่ฉันคิดว่าน่าผิดหวังมากที่สุดเกี่ยวกับ choco: "ติดตั้งอะไรซักอย่างตอนนี้ .... มันอยู่ที่ไหน"
Ben Collins

@BenCollins ฉันสมมติว่าคุณเพิ่งอัพเกรด Chocolatey เมื่อเร็ว ๆ นี้เช่นกัน? ตอนนี้รายงานว่าจะติดตั้งที่ไหนและมีมาเกือบหนึ่งปีแล้ว (ตั้งแต่ 0.9.10) github.com/chocolatey/choco/issues/689
ferventcoder

1
"ซอฟต์แวร์ที่ติดตั้งเป็น '$ toolsDir'" Gee ขอบคุณ Chocolatey
blueben

1
อาจจัดเก็บบันทึกการติดตั้งในไดเรกทอรีช็อกโกแลตและให้ผู้ใช้สามารถเรียกคืนได้ด้วยชื่อแพคเกจ ...
Marcello Romani

4

หาก Chocolatey สร้าง shim สำหรับแพ็คเกจเช่นyourprogram.exeคุณสามารถบอกพา ธ ไปยังไฟล์ที่ปฏิบัติการได้โดย Powershell one-liner:

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

ใช้งานได้เฉพาะในกรณีที่ shim เป็นไฟล์. exe นี่เป็นเรื่องธรรมดามากแม้ว่าบางแพคเกจจะสร้างไฟล์. ps1, .cmd หรือแม้แต่. bat ในกรณีที่หายากเหล่านี้สูตรนี้จะไม่ทำงาน


4

น่าเสียดายไม่ใช่ว่าฉันรู้ ฉันเชื่อว่าไดเรกทอรีการติดตั้งจะถูกกำหนดโดยแพ็คเกจเอง มันไม่ได้กำหนดไว้ในไฟล์ .uspec และฉันไม่สามารถเห็นได้ทุกที่ว่ามันถูกกำหนดไว้อย่างชัดเจนในซอร์สโค้ดของ Chocolatey

รหัสที่มา: https://github.com/chocolatey/chocolatey


สิ่งนี้ถูกต้อง ดูเอกสารสำหรับการสร้างแพ็คเกจคุณจะเห็นว่าสำหรับแพ็คเกจส่วนใหญ่ตัวติดตั้ง MSI ที่สร้างโดยผู้สร้างซอฟต์แวร์ดั้งเดิมจะกำหนดเส้นทางการติดตั้ง Chocolatey ไม่รู้ว่า MSI ใส่ไฟล์ไว้ที่ไหน
หนัก

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.