zoukankan      html  css  js  c++  java
  • win10使用Scoop软件包管理器,支持版本切换

    介绍

    Scoop是一款软件包管理工具,类似你电脑上的软件管家,只不过Scoop是命令行操作的,可以说是一款专门为程序员开发的软件管家,你不需要再一个一个的访问官网,然后找软件的安装包,而只需要一个命令,全部搞定。
    Scoop适用于windows平台,而类Unix系统(Linux/MacOS)可以使用SDKMAN,可以参考文章 https://ithelp.ithome.com.tw/articles/10236086

    与之类似的还有Chocolatey,微软的winget
    ScoopChocolatey的比较: http://www.kokojia.com/article/39520.html
    Scoopwinget的比较: https://www.zhihu.com/question/395989844/answer/1236061830

    Scoop更适用与开发人员使用

    项目地址: https://github.com/lukesampson/scoop

    安装

    参考教程
    https://blog.csdn.net/qq_43741794/article/details/113079959
    https://sspai.com/post/52496
    https://zhuanlan.zhihu.com/p/135278662

    安装位置

    scoop有两个安装目录,一个是当前用户的安装目录,一个是所有用户的安装目录。之后的使用中通过scoop安装的软件会安装在这两个目录,默认是在 %USERPROFILE% 下,有需要将其变更到其他目录的可以使用如下配置
    使用PowerShell执行如下命令:

    # 设置用户软件安装位置
    $env:SCOOP='D:ApplicationsScoop' # 自己改你的位置,下同
    [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
    
    # 设置全局软件安装位置
    $env:SCOOP_GLOBAL='F:GlobalScoopApps'
    [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')
    

    实际相当于配置了两个环境变量,当然也可以手动配置。

    安装

    以管理员身份运行PowerShell,执行

    Set-ExecutionPolicy RemoteSigned -scope CurrentUser
    #然后输入 Y 或 A 回车
    

    然后执行安装命令

    Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
    # 或者
    iwr -useb get.scoop.sh | iex
    

    配置源

    因为scoop的源是github,因为网络的问题往往会比较慢或失败,配置源可以使更新scoopbucket时快一点
    但是治标不治本,起不到根本作用, 因为通过scoop安装的软件包基本都在github或国外服,网络的坑依然在

    • 更换 scoop 源
    scoop config SCOOP_REPO https://gitee.com/squallliu/scoop
    scoop update
    
    • 更换 bucket 源
    scoop install git
    git -C "${Env:USERPROFILE}scoopucketsmain" remote set-url origin https://hub.fastgit.org/ScoopInstaller/Main.git
    git -C "${Env:USERPROFILE}scoopucketsjava" remote set-url origin https://hub.fastgit.org/ScoopInstaller/Java.git
    git -C "${Env:USERPROFILE}scoopucketsphp" remote set-url origin https://hub.fastgit.org/ScoopInstaller/PHP.git
    git -C "${Env:USERPROFILE}scoopucketsversions" remote set-url origin https://hub.fastgit.org/ScoopInstaller/Versions.git
    git -C "${Env:USERPROFILE}scoopuckets
    ightlies" remote set-url origin https://hub.fastgit.org/ScoopInstaller/Nightlies.git
    # 以此类推 extras 的为
    git -C "${Env:USERPROFILE}scoopucketsextras" remote set-url origin https://hub.fastgit.org/lukesampson/scoop-extras.git
    

    上面的方式首先要执行scoop bucket add 仓库名将bucket安装到本地,然后执行上面的命令更改git仓库的远程地址,所以在add bucket时本身可能因为网络问题就添加失败。下面的方式将更简便

    scoop bucket add java https://hub.fastgit.org/ScoopInstaller/Java.git
    scoop bucket add php https://hub.fastgit.org/ScoopInstaller/PHP.git
    scoop bucket add versions https://hub.fastgit.org/ScoopInstaller/Versions.git
    scoop bucket add nightlies https://hub.fastgit.org/ScoopInstaller/Nightlies.git
    scoop bucket add extras https://hub.fastgit.org/lukesampson/scoop-extras.git
    

    使用

    基本使用

    如果只是安装给当前用户,直接执行安装命令即可,会安装到之前说的当前用户安装目录中,比如

    # scoop install [app]@[版本号] 
    scoop install git@2.23.0.windows.1
    

    如果想要全局安装,安装时需要带 -g 参数,会安装到之前说的全局安装目录。以管理员身份打开PowerShell

    # scoop install -g [app]@[版本号] 
    scoop install -g git@2.23.0.windows.1
    

    如果全局安装时不想以管理员身份运行PowerShell,则可以安装sudo,然后在普通身份时也可以对全局进行操作:

    scoop install -g sudo # 此时以管理员身份打开的Powershell
    sudo scoop install -g git # 此时普通身份亦可
    

    当然也可以一次安装多个软件

    sudo scoop install 7zip git openssh --global
    scoop install aria2 curl grep sed less touch
    scoop install python ruby go perl
    

    7Zip,Git基本是必须要装的,因为要装很多软件都要依赖它们,连添加bucket都要git的。
    另外aria2也可以装上,因为说是可以提高软件包下载速度。如果使用aria2任然速度慢或者出现无法下载的问题,可以使用如下命令将其禁用:

    scoop config aria2-enabled false
    

    多版本切换

    scoop resetre-installs 应用程序的 shims ,并根据应用程序的 manifest 更新 PATH 环境变量。

    使用 scoop reset <java>[@<version>] 说明安装和切换不同的 Java (JDK)版本

    $ scoop bucket add java
    
    $ scoop install oraclejdk
    Installing 'oraclejdk' (12.0.2-10) [64bit]
    
    $ scoop install zulu6
    Installing 'zulu6' (6.18.1.5) [64bit]
    
    $ scoop install openjdk10
    Installing 'openjdk10' (10.0.1) [64bit]
    
    $ java -version
    openjdk version "10.0.1" 2018-04-17
    OpenJDK Runtime Environment (build 10.0.1+10)
    OpenJDK 64-Bit Server VM (build 10.0.1+10, mixed mode)
    
    $ scoop reset zulu6
    Resetting zulu6 (6.18.1.5).
    Linking ~scoopappszulu6current => ~scoopappszulu66.18.1.5
    
    $ java -version
    openjdk version "1.6.0-99"
    OpenJDK Runtime Environment (Zulu 6.18.1.5-win64) (build 1.6.0-99-b99)
    OpenJDK 64-Bit Server VM (Zulu 6.18.1.5-win64) (build 23.77-b99, mixed mode)
    
    $ scoop reset oraclejdk
    
    $ java -version
    java version "12.0.2" 2019-07-16
    Java(TM) SE Runtime Environment (build 12.0.2+10)
    Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
    

    Python版本管理

    $ scoop bucket add versions # add the 'versions' bucket if you haven't already
    
    $ scoop install python27 python
    python --version # -> Python 3.6.2
    
    # switch to python 2.7.x
    $ scoop reset python27
    python --version # -> Python 2.7.13
    
    # switch back (to 3.x)
    $ scoop reset python
    python --version # -> Python 3.6.2
    

    添加自定义bucket

    参考 https://zhuanlan.zhihu.com/p/165635039

    社区仓库

    参考 https://sspai.com/post/52710

    其他命令

    命令 说明
    scoop help 查看帮助
    scoop list 可以查看已安装的所有软件
    scoop search 软件名 查找是否有你需要的软件
    scoop info 软件名 查看软件介绍
    scoop uninstall 软件名 卸载软件
    scoop status 查看可更新的软件
    scoop update 软件名 更新软件
    scoop update * 一次性更新所有软件(必须在安装目录下使用)
    scoop update 更新scoop,有时当你安装或其他操作时scoop会自行更新自己,由于软件数量和版本极多,更新频率会有点高
    scoop bucket add bucket名称 添加bucket
    scoop bucket add bucket名称 bucket地址 添加自定义bucket
    scoop bucket known 列出已知所有官方bucket

    卸载

    scoop uninstall scoop # 这个卸载,会删除你配置的scoop下面的所有软件,非常危险。
    
  • 相关阅读:
    第009题 智猜年龄——问经理三女儿年龄各多少
    第008题 求最大值——10个1加乘的最大数字
    第007题 天平称物——最少砝码称出最多质量
    第006题 天平找次——至少称几次找到次品
    第005题 青蛙过河——十只青蛙如何顺利过去
    第004题 过河问题——如何过河用时最短
    第003题 过河问题——三对老虎如何安全过河
    第002题 打水问题——9升和4L的桶如何打6升水
    基于博弈论分析在线教育网站和慕课的产生
    C++左右括号匹配问题(并给出括号的位置 并且允许非括号字符插入)修改版
  • 原文地址:https://www.cnblogs.com/fortuneju/p/14701121.html
Copyright © 2011-2022 走看看