原来一直用chocolatey做包管理器, 最近发现了一个scoop, 试了几天, 可以换掉chocolatey了.

chocolatey VS scoop

  • chocolatey权限要求高, scoop 使用-g安装才需要管理员权限, 默认普通用户权限.
  • scoop可以建软件包仓库, 如果官方仓库里没有想用的软件, 可以自己建一个仓库, 存放自己的软件.
  • chocolatey很多软件安装位置不固定, 会污染Path

scoop 安装

  • 设置powershell

    set-executionpolicy remotesigned -s currentuser
    
  • 默认安装(安装到C:\Users\<user>\scoop), 在powershell里面运行:

    Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
    
  • 安装到指定目录(D:\tool\scoop)

    $env:SCOOP='D:\tool\scoop'
    [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
    Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
    
  • 指定-g安装目录(D:\tool\scoop_global)

    $env:SCOOP_GLOBAL='D:\tool\scoop\scoop_global'
    [environment]::setEnvironmentVariable('SCOOP_GLOBAL',$env:SCOOP_GLOBAL,'Machine')
    

scoop 使用方法

  • 常用命令

    scoop help            #帮助
    scoop list            #查看当前已安装软件
    scoop info app        #查看软件信息
    scoop install app     #安装软件
    scoop search app      #搜索软件
    scoop uninstall app   #卸载软件
    scoop update app      #更新指定软件
    scoop update *        #更新安装的软件和scoop
    
    # 设置代理(http)
    scoop config proxy 127.0.0.1:4412
    
  • shims 目录 scoop安装程序后会在scoop安装目录下的shims里生成一个对应程序的shim.exe(不知道为啥不用快捷方式).

    安装scoop后 会自动把shims目录加到用户的Path里.

  • persist 目录 这个目录下面放的是已安装软件的配置文件, 后续更新软件的时候这部分内容不会修改.

  • scoop 添加 extras 源 (默认的软件有点少)

    scoop bucket add extras
    

scoop 使用问题

  • 安装某些 gui 程序后, 运行对应的 shim.exe 会出现 cmd 窗口 (nvim-qt cmd窗口一直显示, cmder cmd窗口一闪而过 ) 解决办法: 把Scoop Apps目录加到path里, 目录在C:\Users\fcying\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Scoop Apps