x/公共/包管.zsh

52 lines
1.5 KiB
Bash

#!/usr/bin/zsh
# 路径名称: 公共/包管.zsh
# 脚本作用: 统一不同发行版中预制的不同的包管理的功能
# 当前支持的包管理器有: apt yum pacman
# 可实现的功能有 `包管_更新` `包管_安装` `包管_搜索`
# 第一作者: 寻觅(xunmiemail@vip.qq.com)
# 创建时间: 2024年2月5日11:25:00
# 使用方法: 在言灵根目录下使用`. 公共/包管.zsh`
# 启动言灵包管理模块的标识符
言灵_包管=1
# 调用当前包管理器检查和更新
# 参数 [ -n --no-update -不更 ] 携带此参数为仅检查更新
# 参数 [ -y -确认 ] 跳过包管理器更新时的二次确认
# 实例 `包管_更新 -n`; `包管_更新 -确认`
包管_更新() {
if [ -x "$(command -v oma)" ]; then
# sudo oma refresh
sudo oma update -y
elif [ -x "$(command -v apt)" ]; then
sudo apt-get update -qq
elif [ -x "$(command -v yum)" ]; then
sudo yum update
elif [ -x "$(command -v pacman)"]; then
sudo pacman -Syu
fi
}
# 调用当前包管理器的安装模块
包管_安装(){
[ -x "$(command -v $1)" ] && return 0
if [ -x "$(command -v oma)" ]; then
sudo oma install -y $1
elif [ -x "$(command -v apt)" ]; then
sudo apt -y install $1
elif [ -x "$(command -v yum)" ]; then
sudo yum install -y $1
elif [ -x "$(command -v pacman)" ]; then
sudo pacman -Sy --needed $1
else
return 1
fi
}
# 默认会尝试使用 apt-file pkgfile 等第三方搜索工具, 未找到第三方搜索工具时尝试使用包管理器自带搜索模块
# 参数 [ -n --no-file -原版 ]
包管_搜索() {
}