統一命令git
每款操做系統都有本身的包管理。完成同一各操做,在各個系統中須要輸入不一樣的命令和參數。github
好比咱們要獲取可更新的軟件包,必須執行以下命令:vim
apt list --upgrable # Ubuntu, Debian, Linux Mint...
yum list updates # Centos, Redhat...
brew outdated # MacOS Homebrew
apk list --upgrades # Apline
pacman -Qu # Arch, Manjaro...
choco outdated # Windows Chocolaty
dnf list --upgrades # Fedora
複製代碼
這給咱們切換和體驗新系統帶來了很大的不便,畢竟包管理是基本而有經常使用的操做。bash
upt
解決了這個問題。它能夠運行於各個平臺,甚至各個發行版中,提供統一命令執行包管理操做。併發
upt list -u # 全部平臺命令一致。
複製代碼
UPT 只是提供統一的界面,包管理功能是經過調用系統自帶工具實現。curl
命令替換工具
每一個人都有本身熟悉的操做系統和包管理工具。oop
經常使用 MacOS 的人可能對 brew
命令較熟悉,經常使用 Windows 的人對 choco
較熟悉,經常使用 Ubuntu 的人對 apt
較熟悉。ui
爲了使用 upt
,還得學套 upt
的命令,這並不輕鬆。幸虧,upt
支持命令替換。你再也不須要學一個新命令。url
若是你是一個熟悉 brew
的人,在 Ubuntu 中進行包管理時,能夠下載 upt
命令後,重命名 upt 爲 brew
。你能夠在 Ubuntu 中使用 brew
進行包管理了。
下載可執行文件
從 Releases 下載可執行文件。解壓後是個單一的可執行文件,將文件複製的合適的路徑,並確保路徑已加入到 PATH
環境變量中。
mv upt /usr/local/bin # Linux, MacOS
複製代碼
:: Windows, 以管理員身份運行
move upt C:\Windows\System32
複製代碼
使用 Cargo 安裝
upt
使用 rust 語言編寫,併發布到 crates。因此可使用 cargo 安裝。
# curl https://sh.rustup.rs -sSf | sh # 安裝 cargo
cargo install upt
複製代碼
upt install vim # 安裝單個包
upt install vim ripgrep # 安裝多個
upt install -y vim # 安裝時自動完成 yes 輸入
複製代碼
upt remove vim # 刪除單個包
upt remove vim ripgrep # 刪除多個
upt remove -y vim # 刪除時自動完成 yes 輸入
複製代碼
upt upgrade vim # 更新單個包
upt upgrade vim ripgrep # 更新多個
upt upgrade -y vim # 更新時自動完成 yes 輸入
複製代碼
upt search vim
複製代碼
upt show vim
複製代碼
upt update
複製代碼
upt upgrade # 更新全部過時的軟件包
upt upgrade -y # 更新時自動完成 yes 輸入
複製代碼
upt list -i
複製代碼
upt list -u
複製代碼
若是以爲應該支持某個包管理操做,歡迎發 Issue 一塊兒討論。
upt
可執行文件很小,又須要全平臺通用,不可能自帶包管理功能。它經過調用系統自帶工具實現包管理功能。因此 upt
實質上是一個解釋器。
若是你在 Ubuntu 平臺中使用 upt
:
upt list -u
獲取全部可更新軟件包
這一任務apt
包管理工具獲取全部可更新軟件包
轉換成 apt
命令apt list --upgradable
若是你將 upt
重命名成 brew
,upt
會使用 brew
的語法解析成任務。命令替換就是如此實現的。
下表是輸入與輸出映射,也就是指令替換:
| task | udt | apt | brew | choco | yum | dnf | pacman | apk |
| :--------------------------- | :--------------- | :-------------------- | :------------------ | :------------------- | :----------------- | :------------------- | :-------------- | :------------------- |
| Install packages | udt install $pkg | apt install $pkg | brew install $pkg | choco install $pkg | yum install $pkg | dnf install $pkg | pacman -S $pkg | apk add $pkg |
| Remove packages | udt remove $pkg | apt remove $pkg | brew uninstall $pkg | choco uninstall $pkg | yum remove $pkg | dnf remove $pkg | pacman -Rs $pkg | apk del $pkg |
| Upgrade packages | udt upgrade $pkg | apt install $pkg | brew upgrade $pkg | choco upgrade $pkg | yum update $pkg | dnf upgrade $pkg | pacman -S $pkg | apk upgrade $pkg |
| Search for package | udt search $pkg | apt search $pkg | brew search $pkg | choco search $pkg | yum search $pkg | dnf search $pkg | pacman -Ss $pkg | apk search $pkg |
| Show package details | udt show $pkg | apt show $pkg | brew info $pkg | choco info $pkg | yum info $pkg | dnf info $pkg | pacman -Si $pkg | apk info $pkg |
| Update indexes of packages | udt update | apt update | brew update | choco upgrade --noop | yum check-update | dnf check-update | pacman -Syy | apk update |
| Upgrade all packages | udt upgrade | apt upgrade | brew upgrade | choco upgrade all | yum update | dnf upgrade | pacman -Syu | apk upgrade |
| List all upgradable packages | udt list -u | apt list --upgradable | brew outdated | choco outdated | yum list updates | dnf list --upgrades | pacman -Qu | apk list --upgrades |
| List all installed packages | udt list -i | apt list --installed | brew list | choco list -lai | yum list installed | dnf list --installed | pacman -Qe | apk list --installed |
複製代碼
指令替換表同時列出了:
若是你發現有錯誤,或者想添加其餘包管理工具,歡迎發 Issue。