Chocolatey paketlerini kurulum dizinleriyle birlikte listelemenin bir yolu var mı?


56

Komuta

choco list -lo

Kurulu paketleri listeler. Ancak bir Chocolatey uygulamasının nereye kurulacağını nasıl belirleyebilirim? Şimdiye kadar onlar için avlanmak zorunda kaldım.

Bazı örnekler:

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

choco listBana nereye gittiklerini söyleyecek bir bayrak var mı ? ChocolateyGUI da bunu yapmıyor.

Debian'ınki gibi:

dpkg-query

Veya RedHat'ın:

rpm -ql [package-name]

Veya YUM'un repoquery:

repoquery --list [package-name]

Homebrew :

brew list [package-name]

Yanıtlar:


26

Şu anda ne istediğinizi yapmanın bir yolu yok.

Her Chocolatey paketi, bir MSI veya bir EXE'nin etrafına sarıcı olabileceği veya sıkıştırılmış bir arşivin bilinen bir konuma yani C: \ araçlarına basit bir şekilde çıkartılması veya benzersiz bir PowerShell modülü olabileceği anlamında benzersizdir. PSModulePath’e ayıklar veya tamamen özel bir şey olabilir.

Bu, aynı şeyi yapmanın birden fazla yolunun bulunduğu Windows ekosisteminin bir yan etkisidir. Chocolatey, en azından istediğiniz yerde tüm paketleri bulmak için bir mekanizma sağlayarak, bir çeşit düzen getirmeye çalışıyor, ancak Chocolatey'nin yapabileceği çok fazla şey var.

Her şeye tamamen farklı bakarsanız, kurulum argümanlarını aşağıdakileri kullanarak bir Chocolatey paketine geçirmek mümkündür:

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

Bu teorik olarak, dosyaların yüklendiği yeri değiştirmek için MSI veya EXE tabanlı Chocolatey paketinin kurulum argümanlarını değiştirebilir. Burada kullanılan bu yaklaşımın bir örneğini görebilirsiniz:

http://chocolatey.org/packages/VisualStudio2013Ultimate

Ancak, bu yaklaşım sınırlıdır. Herkesin Matt gibi olası kurulum argümanlarını anlatması zaman almaz ve bir MSI veya EXE'ye gönderilmesi mümkün olan kurulum argümanlarını çıkarmak oldukça karmaşık bir işlemdir.

ChocolateyGUI ve bu ürünün şu anki sahibi olarak, bu alanda zekice bir şey yapmadığını söyleyebilirim :-). Bu Chocolatey'in sunduğu komut satırı araçlarının etrafındaki bir sarmalayıcıdır ve komut satırını kullanmaktan hoşlanmayan insanlar için kolaylaştırmayı amaçlar.


2
Chocolatey olarak çözüm çalıştırılabilir yolunu tutar ve birlikte denilen eğer hedefi ortaya paketi için şim dosyası var üretir --shimgen-noopanahtarı, benim cevap bakınız
maoizm

8
Neredeyse 3 yıl sonra, bu hala choco hakkında en sinir bozucu bulduğum şey: "bir şey kurdu. Şimdi .... nerede?"
Ben Collins,

@BenCollins Son zamanlarda da Chocolatey'i yükselttiğinizi farz ediyorum? Şimdi eşyaları nereye yerleştirdiğini rapor ediyor - ve neredeyse bir yıldan beri var (0.9.10'dan beri). github.com/chocolatey/choco/issues/689
ferventcoder

1
"Yazılım '$ toolsDir' 'e yüklendi" Gee, teşekkürler Chocolatey.
blueben

1
Belki kurulum kayıtlarını bir chocolatey dizininde saklayabilir ve kullanıcılara paket ismiyle almalarını sağlayabilirsiniz ...
Marcello Romani

4

Chocolatey paket için bir şim oluşturursa, örneğin yourprogram.exe, şu Powershell tek-astarı ile çalıştırılabilir dosyanın yolunu söyleyebilirsiniz:

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

Bu yalnızca shim .exe dosyasıysa çalışır. Bazı paketler .ps1, .cmd ve hatta .bat dosyaları oluştursa da, bu çok yaygındır. Bu nadir durumlarda, bu tarif işe yaramaz.


4

Ne yazık ki, bildiğimden değil. Kurulum dizininin paketin kendisi tarafından belirlendiğine inanıyorum. .Nuspec dosyasında tanımlanmadı ve Chocolatey kaynak kodunda açıkça tanımlandığı herhangi bir yeri göremiyorum.

Kaynak kodu: https://github.com/chocolatey/chocolatey


Doğru. Bir paket oluşturmak için belgelere bakarak, çoğu yazılım için orijinal yazılım oluşturucu tarafından oluşturulan MSI yükleyicisinin yükleme yolunu tanımladığını göreceksiniz. Chocolatey, MSI'nin dosyaları nereye koyduğunu bilmiyor.
heavyd

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

Bir MSI olsaydı, genellikle geçebilirdiniz -ia:

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

 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.