1

How to Scoop

 2 years ago
source link: https://lwz322.github.io/2019/09/05/Scoop.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

How to Scoop

 

Scoop作为Windows下的命令行包管理工具,在之前的文章里用到的非常多,最近又看了下Scoop的说明,这里简要的介绍下更新后的特性,附带一些常用的命令行工具

Scoop作为Windows下的命令行包管理工具,在之前的文章里用到的非常多,最近又看了下Scoop的说明,这里简要的介绍下更新后的特性,附带一些常用的命令行工具

Github:lukesampson/scoop的README对Scoop有了大概的介绍,我初次接触到是读到了 再谈谈 Scoop 这个 Windows 下的软件包管理器

  • 安装常见命令行工具
  • 自带配置环境变量,方便配置简易的开发环境
  • 有脚本自动化执行的优势,方便快速部署(比如重装系统的时候)

需要注意的是如果Scoop安装的软件和Powershell的命令或者别名重合,Powershell的命令依然被优先使用

可以使用管理员模式打开powershell运行

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

多线程下载支持

部分软件源在Github之类的连接性不太好的地方,偶尔下载很慢而且易报错,现在Scoop推荐默认使用aria2进行多线程下载,只需要安装aira2即可开启多线程下载

scoop install aria2

添加额外的仓库

参考SpencerWoo的文章添加的软件仓库基本上够用了

scoop bucket add extras
scoop bucket add java
scoop bucket add dorado https://github.com/h404bi/dorado
  • 默认的main仓库以命令行工具为主(比如收录的cmder是个有GUI的终端软件),例如Linux常用的sed, grep, gawk,vim可以大大方便Powershell的日常使用
  • extra仓库收录的高质量的gui软件比较多,比如说googlechrome,typora,vscode
  • java仓库收录了多种多版本的JDK,结合下文的scoop reset,可以便捷的切换环境变量下的JDK
  • dorado仓库收录了相当一部分国内常用的软件如微信,网易云,besttrace,因为下载源在国内下载速度很OK

除去上面介绍的一些,其实想得到软件都可以在Scoop中使用scoop search找下看看

$ scoop list
Installed apps:

  7zip 19.00
  chromedriver 76.0.3809.126
  cmder-full 1.3.11
  concfg 0.2019.03.09
  ffmpeg 4.1.3 #编码工具
  gawk 3.1.7
  gcc 8.1.0
  gdrive 
  git 2.21.0.windows.1
  grep 2.5.4
  innounp 0.48
  iperf3 3.1.3 #网速测试工具
  nodejs 12.5.0
  pshazz 0.2019.04.02
  R 3.6.0
  sed 4.2.1
  tesseract 4.1.0.20190314 #OCR工具
  vim 8.1.1302 
  youtube-dl 2019.05.20 #偶尔下载视频
  trafficmonitor #任务栏网速,CPU内存占用监测
  screentogif #Gif录屏软件
  ntop #类似htop的的终端下的资源监视器(但是做不到htop那么强大)
  glow #终端下的Markdown Render
  openjdk #添加java仓库后,默认安装最新版的openjdk
  openjdk9 #java9

部分命令是无法在普通模式下运行的,一般的方法是打开一个新的管理员模式的窗口,相对来说不太方便,scoop可以安装sudo来实现对单一命令的赋权

比如设置禁用eth0接口的别名

scoop alias add ethd 'sudo netsh interface set interface eth0 disabled' 'disable eth0' 

输入scoop ethd之后就会弹出用户账户控制的弹窗,提示需要管理员权限,用键盘确认就好,省去了再开一个窗口的麻烦(如果是长串命令都需要管理员权限的话还是开一个吧)

ffmpeg

只介绍常用的简单指令

面对没有加密的m3u8直播录制,IPTV用的较多,m3u8的地址可以通过浏览器的检查工具找到

ffmpeg -i m3u8 'test.ts'  

合并音频和视频

现在越来越多的网站选择把音频和视频分开,使用IDM下载两个文件可以直接用ffmpeg做快速的合并(复制)

ffmpeg -i v.mp4 -i a.mp4 -c copy output.mkv

当然如果youtube-dl支持视频网站的话使用youtube-dl更方便

提取视频中的音轨

常用于提取BGM,不做重编码的情况

ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac

-vn没有视频 -acodec copy说使用已经存在的相同的音频流

scoop依然有许多不成熟的地方,在高可靠性要求的环境下依然是不推荐的,最经常遇到的莫非是软件安装因为网络等问题终端,安装状态会返回成功,如果需要重新安装的话需要先进行卸载

再一个就是环境变量的问题,scoop可以在安装的时候配置好一些环境变量,但是卸载却不一定会移除,这就导致一些重要的软件在Scoop卸载之后再在其他位置安装会出现环境变量错误的问题

部分高度依赖于安装目录,权限以及关联众多的软件不推荐使用scoop安装,如Chrome

使用Scoop提供的别名

Powershell的别名设置不方便,直接使用WSL的自定义别名(.bashrc)调用Windows下的程序又不能直接在Powershell中运行,直到发现Scoop可以自由的添加“环境变量”,想起来Scoop alias来设置程序运行的scoop别名

本来的用法应该是为Scoop内的操作添加别名:

# Install app
scoop alias add i 'scoop install $args[0]' 'Innstall app'
scoop alias add add 'scoop install $args[0]' 'Install app'

# Uninstall app
scoop alias add rm 'scoop uninstall $args[0]' 'Uninstall an app'
scoop alias add remove 'scoop uninstall $args[0]' 'Uninstall an app'

# List apps
scoop alias add ls 'scoop list' 'List installed apps'

# Update
scoop alias add u 'scoop update $args[0]' 'Update apps, or Scoop itself'
scoop alias add upgrade 'scoop update $args[0]' 'Update apps, or Scoop itself'

但是这个格式看起来就很自由:

比如说给WinMTRCmd添加一个scoop mtr的别名

scoop alias add mtr '~/winMTRCmd $args[0]' 'MTR tools for Win CMD'

之后使用scoop mtr host就可以愉快的使用mtr工具了 mtr

使用Scoop切换软件版本

这里以切换Java版本为例,例如在安装了openjdk和openjdk9之后,从默认的openjdk9切换到openjdk16

$ java -version
openjdk version "9.0.4"
OpenJDK Runtime Environment (build 9.0.4+11)
OpenJDK 64-Bit Server VM (build 9.0.4+11, mixed mode)

$ scoop reset openjdk
Resetting openjdk (16.0.1-9).
Linking ~\scoop\apps\openjdk\current => ~\scoop\apps\openjdk\16.0.1-9

$ java -version
openjdk version "16.0.1" 2021-04-20
OpenJDK Runtime Environment (build 16.0.1+9-24)
OpenJDK 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK