V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
adjusted
V2EX  ›  问与答

windows 下安装命令行工具的正确姿势是怎样的?

  •  
  •   adjusted · 2021-07-19 11:08:56 +08:00 · 4204 次点击
    这是一个创建于 1006 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们有一个产品是命令行工具, 在 linux 和 mac 都可以通过 curl + sh 的方式安装,请问 windows 用户觉得怎么安装方便呢?

    1. windows installer
    2. chocolatey
    3. 直接换 wsl
    4. 其他
    第 1 条附言  ·  2021-07-19 12:22:25 +08:00

    https://scoop.sh/ 的安装方式感觉不错

    Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
    
    # or shorter
    iwr -useb get.scoop.sh | iex
    
    第 2 条附言  ·  2021-07-19 14:19:23 +08:00
    45 条回复    2021-09-18 11:05:04 +08:00
    kkocdko
        1
    kkocdko  
       2021-07-19 11:12:26 +08:00
    chocolatey 或者直接下载
    kkocdko
        2
    kkocdko  
       2021-07-19 11:13:02 +08:00
    现在 win10 也有自带 curl 了其实
    “If your Windows 10 build is 17063, or later, cUrl is included by default.”
    Jirajine
        3
    Jirajine  
       2021-07-19 11:13:49 +08:00 via Android
    命令行工具最方便的是 scoop
    当然也可以 invoke-webrequest + invoke-expression 安装。
    adjusted
        4
    adjusted  
    OP
       2021-07-19 11:17:05 +08:00
    @kkocdko 直接下载是指可执行文件, 然后手动添加到路径?
    forcecharlie
        5
    forcecharlie  
       2021-07-19 11:17:50 +08:00
    安利我自己开发的 baulk: https://github.com/baulk/baulk,下载压缩包或者安装程序,运行 Baulk Terminal (安装程序可生成桌面快捷方式,集成到 Windows terminal )。

    然后运行:baulk u;baulk i curl

    baulk 支持系统代理,且支持镜像 bucket,环境隔离,虚拟环境(多个 jdk 版本并行安装)。
    adjusted
        6
    adjusted  
    OP
       2021-07-19 11:19:30 +08:00
    @forcecharlie 我怎样提交到 bucket?
    cmdOptionKana
        8
    cmdOptionKana  
       2021-07-19 11:32:57 +08:00
    直接下载就蛮好的,主要是 windows 里命令行工具本来就不多。一般 installer 会自动添加路径。
    jingslunt
        9
    jingslunt  
       2021-07-19 11:50:21 +08:00
    wsl2 当然不建议,你对的是大部分用户,wsl 一般只对开发者,况且很多电脑是家庭版装不了。
    建议是使用 git 客户端,然后测试下能不能装。特点是简单,git 加持没有其他幺蛾子。
    cugwin 也不建议,虽然比 git 自带的 gnu 强大,但是需要外网联网下载,很多人会装不了。

    ============
    gitbash --> fluent 终端
    cygwin -->cmder 终端
    also24
        10
    also24  
       2021-07-19 11:54:40 +08:00   ❤️ 1
    产品是命令行,不代表安装也要命令行。

    建议直接打 zip 压缩包,内部放二进制文件,以及一个 bat 文件。
    使用 bat 文件可以直接在当前目录运行,二进制文件添加进 PATH 后可独立运行。
    adjusted
        11
    adjusted  
    OP
       2021-07-19 12:00:09 +08:00
    @jingslunt 其实命令行也是只针对开发者
    renmu123
        12
    renmu123  
       2021-07-19 12:06:35 +08:00 via Android
    我推荐官网下载点击安装,也可以顺便支持命令行
    dingwen07
        13
    dingwen07  
       2021-07-19 12:09:25 +08:00 via iPhone
    curl+sh
    那 Windows 就是 Invoke-WebRequest +ps1
    Peters
        14
    Peters  
       2021-07-19 12:39:04 +08:00   ❤️ 1
    4.其他,我觉得即开即用就很好;
    安装方式,如果是能够提升使用性能,感觉可以;如果不能,和直接打开使用似乎没什么区别,注册右键的话,似乎也是调用原生。

    说来你们的产品优势在哪?
    - 相对于比较成熟的产品,比如[cmder]( https://github.com/cmderdev/cmder) ,并非找茬,只是作为用户之所以用第三方命令行,无非是想解决原生命令行或者 PowerShell 的某些不足之处;
    - 比如丑,别名定义和使用比较繁琐;
    Vegetable
        15
    Vegetable  
       2021-07-19 12:41:01 +08:00
    installer 吧,再提供一个二进制文件的下载就行了。
    win 下的 chocolate 什么的用起来也挺烦的。
    ysc3839
        16
    ysc3839  
       2021-07-19 12:55:06 +08:00 via Android
    基本是安装程序加直接发布。可以参考 cmake 。
    mxT52CRuqR6o5
        17
    mxT52CRuqR6o5  
       2021-07-19 12:58:34 +08:00 via Android
    Winget
    adjusted
        18
    adjusted  
    OP
       2021-07-19 13:05:44 +08:00
    @Peters 我们的产品并不是第三方命令行,而是一个命令行工具
    learningman
        19
    learningman  
       2021-07-19 13:06:05 +08:00 via Android
    @kkocdko 自带的那个是个 powershell 的别名,不是传统意义上的那个 curl
    ysc3839
        20
    ysc3839  
       2021-07-19 13:09:56 +08:00 via Android
    @learningman Windows 10 系统中是有带真的 curl.exe 的,你可以在 cmd 中执行试试。
    ysc3839
        21
    ysc3839  
       2021-07-19 13:11:51 +08:00 via Android
    @Peters 你所说的 cmder 是“终端”,不是“第三方命令行”,也不是 PowerShell 等 shell 。
    楼主说的是在 shell 中使用的命令行工具,不是说终端。
    Leviathann
        22
    Leviathann  
       2021-07-19 13:21:44 +08:00 via iPhone
    目前我用的是 scoop
    不光是开发工具,还装一些 gui app
    但是好像也很久没维护了
    Lemeng
        23
    Lemeng  
       2021-07-19 13:27:43 +08:00
    scoop
    wangkun025
        24
    wangkun025  
       2021-07-19 13:28:56 +08:00
    我一直用 chocolatey 。觉得还行。
    在 Windows7 下安装有点烦。
    ruiyi1994
        25
    ruiyi1994  
       2021-07-19 13:31:31 +08:00
    cjw1115
        26
    cjw1115  
       2021-07-19 13:31:53 +08:00
    win-get?
    clf
        27
    clf  
       2021-07-19 13:45:52 +08:00
    winget 和 scoop 都不错。
    jingslunt
        28
    jingslunt  
       2021-07-19 13:48:11 +08:00
    @adjusted 看了下你们产品也可以做网站相关的,也时面对程序员,可以考虑集成 code-server(网页版 vscode)
    以菜开头的产品很少,知道的只有菜根谭,程序员不喜欢接地气的东西,可以考虑改个名
    andytao
        29
    andytao  
       2021-07-19 13:59:03 +08:00
    Windows 10 以上版本很方便的:
    winget install Taozuhong.Kangaroo

    winget 一行搞定。
    adjusted
        30
    adjusted  
    OP
       2021-07-19 14:18:50 +08:00
    @jingslunt 感谢反馈,这其实是一个内部的代号就一直用了
    wudicgi
        31
    wudicgi  
       2021-07-19 14:26:49 +08:00
    分发时提供一个 .exe 的安装程序,还有一个 .zip 的压缩包
    用安装程序的话,默认装到 Program Files 中,安装过程中提供选项修改 PATH 环境变量 (默认选中)
    用压缩包的话,用户自己修改 PATH, 或者直接到程序所在目录使用,或者用绝对路径指定程序路径
    wudicgi
        32
    wudicgi  
       2021-07-19 14:29:20 +08:00
    Windows 下常规的程序安装方式,就是安装程序和压缩包

    用其他的工具用户电脑上都不一定有,还要单独再安装一个不熟悉的工具,更麻烦
    adjusted
        33
    adjusted  
    OP
       2021-07-19 14:31:04 +08:00
    @wudicgi 感谢,最好当然是提供多种方式,但是看起来都是已分发 exe 为基础
    Mo3et
        34
    Mo3et  
       2021-07-19 14:56:03 +08:00 via iPhone
    @wudicgi 请问打包成安装程序 exe 有啥比较好的工具推荐么?
    mercury233
        35
    mercury233  
       2021-07-19 15:01:41 +08:00
    gui 向导安装并自动添加到 path,让用户重启后使用
    wudicgi
        36
    wudicgi  
       2021-07-19 15:29:40 +08:00
    @Mo3et 我只用过 Inno Setup, 目前也还在用。
    它的脚本是 Pascal 语言的,感觉和 NSIS 用自己的一套脚本语言比起来上手容易点。
    Mo3et
        37
    Mo3et  
       2021-07-19 15:33:04 +08:00 via iPhone
    @wudicgi 好的 谢谢!
    wangkun025
        38
    wangkun025  
       2021-07-19 15:45:01 +08:00
    @jingslunt 家庭版可以安装。
    jayeli
        39
    jayeli  
       2021-07-19 17:12:50 +08:00
    @Leviathann Scoop 的 bucket 一直都有维护的。
    mxalbert1996
        40
    mxalbert1996  
       2021-07-19 20:28:59 +08:00 via Android
    winget 和 wget 是两个东西
    adjusted
        41
    adjusted  
    OP
       2021-07-19 21:38:12 +08:00
    @mxalbert1996 打错了,改不了
    ysn2233
        42
    ysn2233  
       2021-07-23 12:28:31 +08:00
    我开发相关的都在 wsl 里搞了
    adjusted
        43
    adjusted  
    OP
       2021-07-23 13:07:07 +08:00
    @ysn2233 我们也建议 wsl,但是收到的反馈是比较麻烦
    ysn2233
        44
    ysn2233  
       2021-07-23 13:41:19 +08:00
    @adjusted 具体什么地方麻烦呢?我觉得挺方便的
    anxn
        45
    anxn  
       2021-09-18 11:05:04 +08:00 via Android
    二进制或者打包安装,安装时脚本把 path 加到环境变量里
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2761 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:47 · PVG 13:47 · LAX 22:47 · JFK 01:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.