Chocolatey:制作安装脚本

时间:2017-11-11 21:36:24

标签: powershell install installer chocolatey

为了制作安装脚本并理解现有脚本,我想知道典型的幕后发生了什么:

choco install notepadplusplus 

我找到了以下here

  

安装

     
      
  1. Chocolatey使用Nuget.Core从源代码中检索包。
  2.   
  3. Choco确定它是自包含的还是具有自动化脚本 - PowerShell脚本(* .ps1文件),很快就会在0.9.10.x时间范围内对Scriptcs文件开放(我知道,对吧?!)。 / LI>   
  4. Choco使用注册表快照供以后比较。
  5.   
  6. 如果有自动化脚本,choco将运行这些脚本。它们可以包含您需要做的任何事情,如果它们是PowerShell,您拥有Posh(PowerShell)的全部功能,但您应该尽量确保它们与Posh v2 +兼容。
  7.   
  8. Choco会比较快照并确定卸载程序信息并将其保存到.registry文件中。
  9.   
  10. Choco根据当前包目录中的所有文件对文件夹进行快照。
  11.   
  12. Choco在包文件夹中查找可执行文件,并在$ env:ChocolateyInstall \ bin文件夹中生成填充程序,以便这些项目在路径上可用。这些可以嵌入到包中或从某个地方(互联网,ftp,文件夹共享等)放下并放在那里。
  13.   

那个,

    • 如何获取.nupkg包裹网址?一般来说,这似乎是这样的:

      https://chocolatey.org/api/v2/package/package-name

    • 哪个是.nupkg包下载目录?

    • 默认情况下提取的.nupkg包的内容在哪里?这很重要,因为chocolateyInstall.ps1有时会使用Split-Path -Parent $MyInvocation.MyCommand.Definition

  1. “0.9.10.x时间范围内的Scriptcs文件”相当神秘。你能提供一些参考资料吗?

  2. Posh v2 +是Powershell的简称还是特定技术?

  3. $env:ChocolateyInstall\lib中有几个可执行文件没有$env:ChocolateyInstall\bin中的链接。例如,mpv播放器的mpv.exe未链接。

1 个答案:

答案 0 :(得分:2)

  1. 是的,该下载网址似乎正确无误。下载目录始终位于Chocolatey安装文件夹中,然后是lib\packageName,这是内容被提取到的位置。
  2. 目前,安装脚本仅在PowerShell中编写。此注释指的是使用ScriptCS运行时在C#中编写安装脚本的能力。目前,尚不支持此功能。
  3. 是的,这只是引用PowerShell的一种简短方法。
  4. 对于mpv包,您会注意到有mpv.exe.ignore个文件。包中存在此文件可防止创建填充程序。