Windows下非常好用的包管理器scoop介紹

以前我寫(xiě)過(guò)文章介紹過(guò)Windows下的包管理器Chocolatey,而Chocolatey并不是唯一的選擇丹鸿。還有一個(gè)很流行的選擇就是scoop崔梗。原來(lái)我用Chocolatey比較多一點(diǎn),但是后來(lái)因?yàn)槲野l(fā)現(xiàn)Chocolatey安裝的JDK等軟件更新的時(shí)候路徑會(huì)發(fā)生變化九榔,每次更新都需要重新配置一遍路徑兽埃,比較麻煩侥钳。于是就把這些軟件切換到了scoop上,scoop可以用current文件夾保持路徑不變柄错,這一點(diǎn)非常方便舷夺。

scoop

安裝scoop

scoop安裝非常簡(jiǎn)單,無(wú)需UAC售貌,打開(kāi)powershell輸入下面命令即可给猾。

iwr -useb get.scoop.sh | iex

如果遇到問(wèn)題,可能需要修改一下腳本的執(zhí)行權(quán)限趁矾。

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

scoop會(huì)安裝在~/scoop文件夾下耙册,如果希望安裝到其他位置给僵,也是可以的毫捣,修改一下SCOOP環(huán)境變量即可。

$env:SCOOP='C:\scoop'
[environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User')
iwr -useb get.scoop.sh | iex

使用scoop

如果要查看scoop幫助帝际,輸入help子命令即可蔓同。其實(shí)最常用的也就是install、uninstall蹲诀、update斑粱、search這幾個(gè)。

scoop help

如果你是第一次使用scoop脯爪,可能發(fā)現(xiàn)有些軟件居然沒(méi)有则北。這就要介紹scoop的另外一個(gè)概念——bucket了。說(shuō)白了bucket就是一個(gè)github倉(cāng)庫(kù)痕慢,里面包含了很多軟件的JSON配置文件尚揣,scoop會(huì)讀取這些配置文件來(lái)安裝軟件。默認(rèn)情況下scoop只啟用了main bucket掖举,里面只包含了一些最常用的命令行程序快骗,如果你想安裝其他程序,需要手動(dòng)添加一下bucket。

首先看看有什么bucket方篮,例如extras是一些額外的帶圖形界面的程序名秀,其他幾個(gè)bucket看名字就懂了。

PS> scoop bucket known
main
extras
versions
nightlies
nirsoft
php
nerd-fonts
nonportable
java
games
jetbrains

如果你準(zhǔn)備安裝某個(gè)bucket下的軟件藕溅,首先要添加它匕得,然后就可以搜索并安裝這些軟件了。

scoop bucket add extras

將來(lái)如果準(zhǔn)備更新scoop巾表,簡(jiǎn)單輸入update子命令即可耗跛。

scoop update

如果要更新某個(gè)軟件,輸入軟件名即可攒发,如果要更新所有軟件调塌,輸入星號(hào)即可。

scoop update curl
scoop update *

配置scoop

如果你希望scoop可以多個(gè)連接同時(shí)下載惠猿,可以安裝aria2軟件包羔砾,之后scoop就會(huì)自動(dòng)利用aria2來(lái)同時(shí)下載文件。

scoop install aria2

如果你在使用aria2下載的時(shí)候遇到了問(wèn)題偶妖,可以關(guān)閉aria2下載功能姜凄。

scoop config aria2-enabled false

如果下載速度比較慢,而且你有代理的話(huà)趾访,也可以讓scoop通過(guò)代理來(lái)下載軟件态秧。

scoop config proxy localhost:10800

編寫(xiě)清單文件

前面提到過(guò),scoop是基于JSON文件來(lái)尋找并下載軟件包的扼鞋。我們也可以通過(guò)編寫(xiě)JSON清單文件的方式來(lái)添加自己的軟件包申鱼,整個(gè)過(guò)程非常簡(jiǎn)單。

例如gost這個(gè)工具云头,它是一個(gè)go語(yǔ)言編寫(xiě)的安全隧道捐友,支持多種類(lèi)型的協(xié)議。我們可以通過(guò)gost的ssh功能在Windows系統(tǒng)下啟動(dòng)一個(gè)ssh服務(wù)端溃槐。當(dāng)然第一步自然就是要安裝gost了匣砖。它的清單文件就可以寫(xiě)成這樣。

{
    "version": "2.11.0",
    "architecture": {
        "64bit": {
            "url": "https://github.com/ginuerzh/gost/releases/download/v2.11.0/gost-windows-amd64-2.11.0.zip",
            "hash": "FAB6245393DE83443AE134E689B14548E6CE9C6F7688B8250D9C19AD6D78F478"
        },
        "32bit": {
            "url": "https://github.com/ginuerzh/gost/releases/download/v2.11.0/gost-windows-386-2.11.0.zip",
            "hash": "2EA47564BC04C9D54FA2524AF7501BD9916855523232AD340BF3EC76854637E1"
        }
    },
    "license": {
        "identifier": "MIT",
        "url": "https://github.com/ginuerzh/gost/blob/master/LICENSE"
    },
    "homepage": "https://github.com/ginuerzh/gost",
    "bin": "gost-windows-amd64.exe"
}

簡(jiǎn)單說(shuō)明一下這幾個(gè)屬性:

  • version昏滴,軟件的版本號(hào)猴鲫,必須屬性。
  • architecture谣殊,軟件的架構(gòu)拂共, 32位或者64位。如果軟件同時(shí)支持兩種那么就可以像上面這樣分別設(shè)置兩個(gè)版本的文件地址和哈希值蟹倾。
  • url匣缘,下載包的地址猖闪,如果是zip、7z肌厨、tar.gz等格式培慌,scoop會(huì)自動(dòng)解壓壓縮包。
  • hash柑爸,下載包的哈希校驗(yàn)值吵护,默認(rèn)是SHA256,但是你也可以使用其他算法表鳍。雖然這個(gè)屬性不是必須的馅而,但是推薦填寫(xiě), 有助于保證下載的文件完整性譬圣。
  • license瓮恭,軟件的許可協(xié)議。
  • homepage厘熟,軟件主頁(yè)地址屯蹦。
  • bin,軟件的入口程序绳姨,scoop會(huì)把它添加到自己的環(huán)境變量中以便我們可以從命令行訪(fǎng)問(wèn)登澜。

當(dāng)然為了能夠比較方便的獲取文件校驗(yàn)碼,我甚至還額外編寫(xiě)了一個(gè)powershell腳本飘庄,來(lái)下載并獲取壓縮包校驗(yàn)值脑蠕。腳本會(huì)輸出成JSON片段文件,可以直接復(fù)制粘貼到上面的JSON中跪削。

# This script is used to get sha256 hash of gost files.

$version = '2.11.0'
$url32 = "https://github.com/ginuerzh/gost/releases/download/v$version/gost-windows-386-$version.zip"
$url64 = "https://github.com/ginuerzh/gost/releases/download/v$version/gost-windows-amd64-$version.zip"

$gost32file = 'gost32.zip'
$gost64file = 'gost64.zip'
Invoke-WebRequest $url32 -OutFile $gost32file
Invoke-WebRequest $url64 -OutFile $gost64file

$hash32 = (Get-FileHash $gost32file -Algorithm SHA256).Hash
$hash64 = (Get-FileHash $gost64file -Algorithm SHA256).Hash

Write-Output """url"":""$url32"","
Write-Output """hash"":""$hash32"""
Write-Output """url"":""$url64"","
Write-Output """hash"":""$hash64"""

Remove-Item -Path $gost32file, $gost64file

有了清單文件谴仙,就可以使用scoop安裝gost了,既可以從本地的清單文件安裝切揭,也可以從遠(yuǎn)程的清單文件安裝狞甚。大家也可以通過(guò)這種方式锁摔,來(lái)維護(hù)自己的安裝源廓旬。

scoop install https://raw.githubusercontent.com/techstay/my-scoop-list/master/gost.json

當(dāng)然本文介紹的也只是scoop的一個(gè)方面,scoop其實(shí)還有很多特性谐腰,具體幫助信息可以參考scoop的文檔孕豹,詳細(xì)介紹了scoop的各項(xiàng)功能。

https://github.com/lukesampson/scoop/wiki
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末十气,一起剝皮案震驚了整個(gè)濱河市励背,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌砸西,老刑警劉巖叶眉,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件址儒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡衅疙,警方通過(guò)查閱死者的電腦和手機(jī)莲趣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)饱溢,“玉大人喧伞,你說(shuō)我怎么就攤上這事〖ɡ桑” “怎么了潘鲫?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)肋杖。 經(jīng)常有香客問(wèn)我溉仑,道長(zhǎng),這世上最難降的妖魔是什么状植? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任彼念,我火速辦了婚禮,結(jié)果婚禮上浅萧,老公的妹妹穿的比我還像新娘逐沙。我一直安慰自己,他們只是感情好洼畅,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布吩案。 她就那樣靜靜地躺著,像睡著了一般帝簇。 火紅的嫁衣襯著肌膚如雪徘郭。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,785評(píng)論 1 314
  • 那天丧肴,我揣著相機(jī)與錄音残揉,去河邊找鬼。 笑死芋浮,一個(gè)胖子當(dāng)著我的面吹牛抱环,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纸巷,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼镇草,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瘤旨?” 一聲冷哼從身側(cè)響起梯啤,我...
    開(kāi)封第一講書(shū)人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎存哲,沒(méi)想到半個(gè)月后因宇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體七婴,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年察滑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了本姥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杭棵,死狀恐怖婚惫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情魂爪,我是刑警寧澤先舷,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站滓侍,受9級(jí)特大地震影響蒋川,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撩笆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一捺球、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夕冲,春花似錦氮兵、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至弥姻,卻和暖如春南片,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背庭敦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工疼进, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秧廉。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓伞广,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親定血。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赔癌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容