套件管理
套件管理系統
| 套件管理 | choco | dpkg | aptitude | apt-get | apt-cache | rpm | yum | pacman |
|---|---|---|---|---|---|---|---|---|
| OS | Windows | Debian/Ubuntu | Debian/Ubuntu | Debian/Ubuntu | Debian/Ubuntu | CentOS/RHEL | CentOS/RHEL | ArchLinux |
| 列出所有的套件 | list | -l | -qa | list | ||||
| 搜尋 | list | -l grep | search | search | -qa grep | search | –search | |
| 查看詳細資訊 | -l | show | show | -qi | info | |||
| 安裝 | install | -i | install | install | -ivh | install | -S | |
| 更新套件 | upgrade | update | update | |||||
| 升級 | upgrade | upgrade | upgrade | -Uvh | update | |||
| 移除 | uninstall | -r | remove | remove | -e | remove | -R | |
| 移除(含設定檔) | -P | purge | purge | |||||
| 清除已下載套件 | clean | clean | clean |
如果您是macOS或者Linux也可以透過Homebrew來安裝套件,例如:
$brew install wget
程式語言的套件管理系統
| Lang | Python | golang | ruby | node js |
|---|---|---|---|---|
| 管理工具名稱 | pip | go | gem | npm |
| 查看管理工具版號 | –version | version | –version | –version |
| 取得套件 | install | get | install | install |
GCC
GCC is a very good compiler collection, and is fully free.
pacman
Pacman是一個軟體包管理器,作為Arch Linux發行版的一部分。它最早由Arch Linux的Judd Vinet開發。Pacman可以解決安裝過程中的依賴問題,自動下載並且安裝所有需要的軟體包。
Pacman也被移植到Windows,作為基礎系統的一部分隨MSYS2分發。
npm
| desc | cmd |
|---|---|
| 初始化 | npm init |
| update npm | npm install -g npm@7.21.1 |
| 查看已安裝過的列表 | npm list |
| 移除 | npm uninstall |
| 安裝 | npm install |
npm init
這個指令會產生出一個package.json的檔案
{
"name": "",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
一定要有這一個package.json檔案
在npm install時,才會把套件裝在
node_modules這個資料夾(和package.json相同的資料夾內生成)
minifier
mishoo/UglifyJS
你可以3個都試試看,我最後是用第三個才成功(終端機可以啟動uglifyjs)
npm install uglify-js -gnpm install uglify-jsnpm install uglify-js -save–dev
如果出現以下錯誤
no such file or directory, open ‘…/package.json’
執行
npm init產生出package.json檔案再執行:
npm install uglify-js -save--dev它就會開始下載完成之後您的資料夾會出現
node_modules裡面就可以找到您安裝的套件
uglify-js例如
🧾 package.json 📂 node_modules - 📂 .bin (相關的執行檔會放在這邊,這個位置要加入系統路徑) - uglifyjs - uglifyjs.cmd - 📁 uglify-js (您安裝的套件名稱當我們執行
uglifyjs實際上就是執行上述的uglifyjs.cmd我會建議您在此資料夾
%PROGRAMFILES%\nodejs\node_modules\npm
運行
npm install uglify-js -save--dev再把
%PROGRAMFILES%\nodejs\node_modules\npm\node_modules.bin
加到系統的工作路徑之中,統一管理所有npm的套件
choco
安裝
install Chocolatey
Get-ExecutionPolicy -List查看所有scope的ExecutionPolicy為何。記下來,弄完之後還原Get-ExecutionPolicy(預設是察看Scope為Process的那個)
至官網按造步驟下載: https://chocolatey.org/install
打開powershell(用系統管理員身分開啟):
Set-ExecutionPolicy AllSigned -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))打完指令按下Enter之後就開始下載
會先載到:
%userprofile%/AppData/Local/Temp/chocolatey/chocInstall/chocolatey.zip然後裝到:
%programdata%\chocolatey接著會把
%programdata%\chocolatey\bin寫到環境變數去(所以在cmd打choco才會有作用)弄完之後還原:
Set-ExecutionPolicy Restricted -Scope Process -Force;表示更改Scope為Process的改為Restricted(其中-Force不是必要的,如果沒加會再問一次是否要執行)
常用指令
打開cmd
choco --versionchoco list --localonly( 或者choco list --lochoco list -lochoco list -al)可以列出當前local端裝了哪些東西,基本上這些套件都安裝在:
%programdata%\chocolatey\lib或者%programdata%\chocolatey\lib-bad中例如:ctags也可以從中安裝
其他範例:
choco list --localonly go只列出go相關的套件choco list [name]: 他就只會列出該項名稱,名稱可以是模糊的choco upgrade chocolatey: 更新chocolate的應用程序cup all等同choco upgrade all: 可以更新所有套件
如果您不清楚指令,可以用: choco -? 這一招幫您解所有東西,例如:
choco -?
choco upgrade -?
choco upgrade all
choco install -?
choco uninstall -?
> choco uninstall docker -x // -x 可以移除所有相關套件
choco list -?
choco install 通常都會跟您說去網上的哪裡(from)下載,以及把下載包放到哪裡 (Completed download of %localappdata%/Temp/chocolatey/pdftk/2.02/pdf....win-setup.exe (3.52MB)
最後完成還會跟你說該套件安裝在哪邊: Software installed to 'C:\Program Files (x86)\PDFtk\'
- choco log位置:
%ProgramData%\chocolatey\logs\chocolatey.log
choco安裝的套件如果是安裝的檔案也能在新增移除找到,如果是zip的版本就找不到,
但不管是哪一種,都能透過choco來管理。
一些常用的安裝項目
⚠ 您可以先上 chocolatey.org 搜尋您的套件名稱,就會出現安裝指令
值得一提的是,有些套件會註記
deprecated(不推薦使用) 像是:他就會告訴你:
[Deprecated] Docker CLI 99.0.0 This package is replaced by
docker-clito make it more obvious what’s getting installed.
建議都用powershell來裝並且使用管理員身分
| 名稱 | 安裝指令 | 安裝到哪裡去 | 描述 |
|---|---|---|---|
| curl | choco install curl | %programdata%\chocolatey\lib\curl\tools | 驗證: curl –version 它可以透過cmd來做一些 Get, Post等等的操作,作為測試這個工具很棒 |
| neovim | choco install neovim --pre(意思是(pre-release) | C:\tools | 注意neovim裡面也有一個curl要用的時候要自己區分一下! |
choco install pdftk | %PROGRAMFILES(X86)%\PDFtk\這個不建議安裝! | ||
| jre | choco install javaruntime | ● %PROGRAMFILES%\Java\jre1.8.0_271● %PROGRAMFILES(X86)%\Java\jre1.8.0_271 | 他會裝兩個版本 |
| protoc | choco install protoc --pre -y(y會確認執行,不會再問你) | %programdata%\chocolatey\lib\protoc\tools | protobuf_google protobuf_github |
| hugo | ● choco install hugo -y● choco install hugo-extended -confirm(裝 hugo-extended才可以進行Sass/SCSS的操作) | ● %programdata%\chocolatey\lib\hugo\tools● %programdata%\chocolatey\lib\hugo-extended\tools | 這可以做靜態網頁,類似Jekyll |
| git | choco install git -y | %programfiles%\Git | 執行檔位置:%programfiles%\Git\bit\git.exe您也可以在新增移除中找到 |
| sass | choco install sass -y | ● C:\tools\dart-sdk● %programdata%\chocolatey\lib\sass\bin\sass.exe他需要用到dart-sdk還有sass所以需要裝兩個東西 | 使用方法: ● sass input.scss:output.css● sass --watch input.scss:output.css --style compressed加上 watch 可以監測使得檔案異動就自動更新 compressed 可以壓縮,以一行解決● sass input.scss:output.css --style compressed --no-source-map不產生 .css.map檔案● sass --help |
| golang | choco install golang -y | ● C:\Go\bin\go.exe● C:\Go\bin\gofmt.exe | 安裝完之後: ● go version 確認有無安裝成功● gofmt是用來統一程式碼格式用的東西 |
| msys2 | choco install msys2 | C:\tools\msys64 | 安裝go-admin可能會要求要安裝gcc所以要先安裝這個東西 執行: > C:\tools\msys64\mysys2.exe在mysys2的console中輸入: $ pacman -S gcc完成之後可以在mysys2中的console > gcc -v但是一般的console沒用,所以不推薦! |
| gcc | choco install mingw -y | ● %programdata%\chocolatey\lib\mingw\tools\install● %programdata%\chocolatey\bin\gcc.exe | 完成之後可以查看版本確認有無裝成功 > gcc -v |
| docker-cli | choco install docker-cli | ● %programdata%\chocolatey\lib\docker-cli\tools\docker.exe● %programdata%\chocolatey\bin\docker.exe (這一個是主要的) | ● docker --help● docker -vp.s. ❗ 不要裝docker這個是 deprecated的項目 |
| reshack | choco install reshack -y | %PROGRAMFILES(X86)%\Resource Hacker\ | ❗安裝完畢之後請執行refreshenv結果也是沒用,自己加吧… |
| graphviz | choco install graphviz -y | %programfiles%\Graphviz%programfiles%\Graphviz\bin\dot.exegraphviz may be able to be automatically uninstalled. 安裝完之後有出現以上訊息,其表示也能夠透過「新增/移除」的程式來移除 | plantuml渲染的時候需要用到的東西: dot 另外還需要下載plantuml.jar |
| slack | choco install slack -y | 要自己去看log ● %programdata%\chocolatey\logs\chocolatey.log● %programdata%\chocolatey\.chocolatey\slack.4.15.0● %programfiles%\Slack\slack.exe | 這是一個通訊軟體 安裝完之後可以透過新增移除來移除(slack may be able to be automatically uninstalled.) |
| fontforge | choco install fontforge | %PROGRAMFILES(X86)%\FontForgeBuilds\ | ● 在新增移除的程式中可以找到。 ● 用這個可以抽字,把一些不必要的字拿掉,使字形檔變小 |
| ffmpeg | choco install ffmpeg -y | %programdata%\chocolatey\lib\ffmpeg\tools\ffmpeg\bin | ● python的from pydub import AudioSegment可能需要用到。● 要自己加入系統變數,才可以抓地到ffmpeg.exe的路徑。 ●您也可以到ffmpeg的release中下載 ffmpeg-master-latest-win64-gpl.zip |
| Inkscape Inkscape-tutorial | choco install inkscape -y | ● %PROGRAMFILES%\Inkscape\● %PROGRAMFILES%\Inkscape\bin\inkscape.exe | |
| node.js | choco install nodejs -y | %PROGRAMFILES% 裡面有node.exe還有npm安裝到哪邊去其實他沒特別寫出來可以用 gcm node.exe去查看 | |
| make | choco install make | %programdata%\chocolatey\bin |
創建屬於您的choco套件
可以參考:create-packages
如何查找執行檔位置 (Where)
📙 有些的安裝可能不會跟你說安裝到哪裡去(像
golang就沒說),這時候您可以用powershell,然後使用:gcm [your_exe]來幫助您What is gcm?