簡體   English   中英

正確使用Chocolatey(包更新/版本管理)

[英]Proper usage of Chocolatey (package update / version management)

注意:這個問題適用於Chocolatey 0.9.8和bellow。 后來的版本完全從PowerShell腳本重寫為C#應用程序,並且包管理的整個過程得到了很大改進。

我一直在使用Chocolatey 一開始我很興奮,但過了一段時間后我不確定它是否可用。 我最關心正確的包更新方式。

例如,我使用Chocolatey安裝了Atom編輯器 Atom的新版本經常發布,所以我已經多次更新了這個包。 然后我注意到我所有以前安裝的Atom版本仍然存在於Chocolateylib目錄中。 事實上, Chocolatey不會更新包裝; 它只是安裝了一個新版本,除了舊版本,如果您使用命令choco update <package>choco update all ,則無關緊要。 目前還沒有辦法使用Chocolatey卸載以前安裝的軟件包,除了最新的軟件包。

因此,我想知道使用Chocolatey管理包版本的正確方法是什么 我應該只是手動刪除舊版本的軟件包,並希望在Chocolatey的軟件包目錄之外沒有依賴項嗎?

或者更確切地說呢?

choco uninstall <package>
choco install <package>

如果我沒有使用Chocolatey安裝一個軟件包,但數十個軟件包怎么辦?

此外,每個版本的軟件包都在單獨的目錄中會導致各種問題(例如thisthisthis )。

我認為這不適合實際使用。 或者也許我錯過了什么。 其實我希望我錯過了一些東西:)因為Windows上的軟件管理多年來一直很痛苦。 一團糟。

我會說Chocolatey更像是一個依賴管理器 ,但它應該是一個包管理器 它宣傳自己為“ apt-get for Windows”, apt-get是一個包管理器。 包管理器(如Chocolateyapt-getbrew )與依賴管理器(如npmbower )之間存在很大差異。 這兩種方法中的每一種都有不同的用途。 誰需要同時使用不同版本的Git,Atom,VLC媒體播放器,Chrome等?

它也在這里這里進行了討論,但在一年中沒有任何變化。 它似乎應該在用C#而不是PowerShell編寫的新客戶端中解決 ,但它尚未發布(應該在2014年底之前發布)。 在那之前,我沒有看到Chocolatey有任何附加價值。

更新:在choco 0.9.9+(C#編譯版本)中不再是這種情況。

你是對的。 隨着PowerShell版本的更新,Chocolatey文件夾可能會變得非常瘋狂。 FWIW,PowerShell版的Chocolatey是一個長期堅持的實驗。 自從第一年結束以來,我一直在談論重寫它。 同意你所看到的是丑陋的。 請放心,這不是新版本的工作原理。 現在有一些軟件包可以安裝多個版本(Ruby和Python),但它們很少。

Chocolatey的早期設計在某種程度上依賴於NuGet.exe,NuGet.exe與包管理沒有NuGet.Core.dll所具有的所有相同功能(雖然它在寫入時我提交了一些非常鈍的錯誤。 C#版本的choco)。

我很高興發布新版本,但功能奇偶校驗需要首先出現。 它將在發布之前或同時被FOSS。 它是支持專業/業務擴展的版本。 我無法使用當前的PowerShell版本嘗試這樣做。 ;)

現在,您可以手動跳轉到lib文件夾並刪除所有舊文件夾。 在大多數情況下,Chocolatey甚至沒有考慮舊版本。 它只關注最新版本。 它唯一的錯誤就是不刪除舊文件夾(並首先在文件夾上使用版本)。

要更新程序包,請使用Chocolatey update命令。

這很簡單:

chocolatey update <package>

要么

cup <package>

評論更新

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM