V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
升级到 Windows 11
yazoox
V2EX  ›  Windows

windows 平台下面的包管理工具好么?比如 Chocolatey, scoop?

  •  1
     
  •   yazoox · 260 天前 · 2852 次点击
    这是一个创建于 260 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题!类似于 macosx 下面的 brew 工具
    不知道 windows 下面的这类工具好用么?

    有没有兄弟使用过这类工具,分享一下经验心得?

    25 条回复    2021-03-09 16:49:21 +08:00
    jdhao
        1
    jdhao   260 天前 via Android
    你自己都说了。 最新的还有个 winget 吧
    th1nk
        2
    th1nk   260 天前
    chocolatey
    scoop
    winget
    appget
    npackd
    oneget
    waruqi
        3
    waruqi   260 天前 via Android
    还有 xrepo 跨端的
    nguoidiqua
        4
    nguoidiqua   260 天前
    scoop 还可以,感觉比 choco 方便点。

    目前能用 scoop 装的东西基本上都用 scoop 装,主要问题在于下载源在外面,需要那个一下。另外下载、安装、清理效率不如 Linux 之类包管理来得轻快,所以比较大型且可以自己点一下就更新的软件我还是另外安装了。

    等着看微软自己搞的能发展到什么样了。
    billgong
        5
    billgong   260 天前   ❤️ 1
    winget 、scoop 和 chocolatey 都用过。最后选(忍)择(耐)了 scoop,最大的原因莫过于 scoop 的理念和 homebrew 类似,即安装的软件都是相对 portable 的

    chocolatey 作为包管理器是合格的,但其设计方式限制太多了,解决或者跳过依赖需要大量的 workaround 。这种理念放 Linux 没问题,毕竟整个 distro 都是基于 package manager 管理的。但 Windows 不一样,安装软件的方式五花八门,Chocolatey 管理方式非常生硬,如果软件单独被升级(最明显的例子就是 vcredist ),chocolatey 非得是商业版本才能检测并自我更新。用一段时间后你就会发现你的软件和 chocolatey 彻底脱节了,完全乱成一团的那种

    scoop 规模小得多,而且非常自由(包管理方面),当然了缺点也超级明显 - bug 奇多,有些设计(比如 manifest 的 autoupdate )不知所云(可能是我还是太年轻了)。但装出来的结果很干净,java 、python 这种东西也能通过 env 方便地应用到系统全局。现在困扰我最大的问题就是 manifest 可选项太少,比如一些常用依赖包(如 lessmsi 、nmap-portable )生成的开始菜单快捷方式没什么用还占地方还没选项删除(即下次升级还会再生成回来)。想装个 busybox 的话,你的 shims 文件夹就彻底乱掉了(呵呵),防冲突设计基本等于零。

    要不是太折腾,我真的很想把 production 切到 Linux 上去,包管理真的是完善。
    fiveelementgid
        6
    fiveelementgid   260 天前 via Android
    NuGet(错乱
    caixiaomao
        7
    caixiaomao   260 天前
    目前用的 scoop 体验良好 不过有时候下载速度慢 可能得备个梯子
    billgong
        8
    billgong   260 天前
    @caixiaomao 应该是和 scoop 大多数都是从 github 下东西相关吧……

    完全镜像一个全国内镜像的 bucket 应该不是很难,就是很累
    rayhy
        9
    rayhy   260 天前   ❤️ 1
    装一些小工具软件还是可以的。但是因为注册表的存在,装 gui 程序总是觉得有乱七八糟的问题,比如绑定用 vscode 打开的文件图标都是 vscode 本身的图标,而看不出文件的类型。
    canbingzt
        10
    canbingzt   260 天前
    scoop 挺好用的
    pxCore
        11
    pxCore   260 天前
    用过 scoop/choco,scoop 管理更加简单,通过 choco 安装的东西我都不知道在哪(或者我没用对)
    iamwho
        12
    iamwho   260 天前
    scoop 最具使用体验,但是它不承认自己是包管理器。

    winget 感觉就是一个安装包下载器(现在是什么样子我不知道,刚发布的时候用过一次)。
    nightwitch
        13
    nightwitch   260 天前   ❤️ 2
    choco 功能比较弱,至少和 Linux 下的 apt/dnf/pacman 是没法比的,不过安装 /更新 /卸载软件还是合格的,scoop 只短暂体验过。

    一个我观察到的主要问题是很多 Windows 上的软件在编写的时候并没有考虑包管理器的存在,自身往往会带有 update 的机制,所以就会导致你在 choco 上安装了 a 版本的软件,用的过程中软件自动升级了,但是并不会有一个机制通知包管理器它已经升级了,在包管理器的记录上它还是旧版本。

    另外一个问题是感觉开发有关的包感觉比较少, 可能有开源库会选择去打包一个 deb 包,但是很少见到有库去打包成 choco 的包。boost 之类的还能在 choco 上找到,gtest/glog 等库就搜索不到了。
    forcecharlie
        14
    forcecharlie   260 天前   ❤️ 1
    我一般用自己写的 [baulk]( https://github.com/baulk/baulk),极简,绿色,环境变量隔离,支持虚拟环境(并行安装多个 JDK 等),提示现代,和 Windows Terminal 集成较好。
    ungrown
        15
    ungrown   260 天前
    我常用软件中前三梯队的安装包、压缩包、展开包都分门别类放在坚果云网盘里面,我没觉得 winos 目前的包管理器生态位足够方便好用,可能对于需要大量机器批量安装的人来说包管理器也许会方便一点(在外网通畅的前提下)
    zachlhb
        16
    zachlhb   260 天前 via iPhone
    自己用的 chocolatey,感觉还不错的
    zx900930
        17
    zx900930   260 天前
    choco 非商业版也可以用第三方的包通过计划任务自动更新 package 的。
    不过问题是:
    1.只能装在 C 盘,要想装别的盘需要通过软链接映射。
    2.如果你的版本不是默认的版本,比如 sqlserver, 你可能需要不同的名字,不同的语言版本,你得自己去下载安装包,自己修改配置文件,然后再 choco install + param, 这是脱裤子放 P, 而且也不能自动更新。
    3.包的数量太少,很多包都没有。
    systemcall
        18
    systemcall   260 天前   ❤️ 1
    用过 choco 和 win-get,感觉都不太好用。win-get 感觉是微软软件管家,只是自动下载软件而已,而且安装的卸载都不知道去哪里卸载。不知道现在怎么样了,以前是很难用
    话说微软弄过多少包管理器了? msi appx nuget win-get,还有什么呢?印象中不止这几个吧,还有个 Windows 商店?
    TypeError
        19
    TypeError   260 天前 via Android
    choco 装 gui 软件,
    scoop 装开发者工具,完全够用,比 brew + brewcask 好用
    eddie4607
        20
    eddie4607   260 天前
    scoop 支持的软件比较多吧,不过确实有些软件会有安装的 bug 。
    huiyifyj
        21
    huiyifyj   260 天前
    目前只用 Scoop,没有可以自建 bucket
    Rache1
        22
    Rache1   259 天前   ❤️ 1
    目前用的 scoop,软件是挺多的,就是这上面的都是以「便携版」为主,导致一些软件安装后不能自动注册文件协议这类的操作。不过也有好处,就是重装系统后,直接 reset 一下,大部分软件都可以直接用了。还有就是因为都是从 github 这类国外网站下载包,就会很慢,虽然可以设置走代理,但是感觉好像没效果?还有就是会莫名其妙的安装失败。如果安装一个软件,你安装时提示失败了,就得必须执行一下 uninstall 才能再安装。还有更新的时候,会提示软件占用,但是他又不会告诉你是哪个进程占用的。。

    winget 也有安装过,几个月前了,软件较少,安装和传统安装差不多。而且,那会儿只能安装,没有卸载。。。
    no1xsyzy
        23
    no1xsyzy   259 天前
    总之建议 WSL
    任何一个包管理器体验都好太多了
    Cu635
        24
    Cu635   233 天前
    @zx900930
    “只能装在 C 盘,要想装别的盘需要通过软链接映射”
    我装别的盘是为了节约 C 盘空间,装在 C 盘再软链接映射这不是多此一举么……
    zx900930
        25
    zx900930   230 天前
    @Cu635 当然是装在别的盘上,C 盘里只留个软链接啊.......
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2222 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:52 · PVG 23:52 · LAX 08:52 · JFK 11:52
    ♥ Do have faith in what you're doing.