update upgrader

Signed-off-by: shenmo <jifengshenmo@outlook.com>
This commit is contained in:
2024-09-25 07:34:40 +00:00
committed by Gitee
parent 7741a64969
commit e86b381d98

View File

@@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
export LANGUAGE=en_US
@@ -96,7 +96,7 @@ fi
if [ $(which aptss) ];then if command -v aptss ;then
APT_COMMAND=aptss APT_COMMAND=aptss
/usr/bin/apt update /usr/bin/apt update
log.info "Using aptss to operate the upgrade process since we detect it." log.info "Using aptss to operate the upgrade process since we detect it."
@@ -121,18 +121,16 @@ updatetext=`${APT_COMMAND} update 2>&1`
done done
isupdate=`echo ${updatetext: -5}`
if [ "$isupdate" = "date." ] ; then # 获取可升级包的数量
log.info "No need to upgrade. exit" update_app_number=$(env LANGUAGE=en_US ${APT_COMMAND} list --upgradable 2>/dev/null | grep -c upgradable)
if [ "$update_app_number" -le 0 ] ; then
exit 0 exit 0
fi fi
## 从这里开始,只有检测到了更新才会进行
update_app_number=`echo ${updatetext%package*} #从右向左截取第一个 src 后的字符串`
update_app_number=`echo ${update_app_number##*information...}`
# 获取用户选择的要更新的应用 # 获取用户选择的要更新的应用
PKG_LIST="$(env LANGUAGE=en_US /usr/bin/apt list --upgradable | awk NR\>1)" PKG_LIST="$(env LANGUAGE=en_US ${APT_COMMAND} list --upgradable | awk NR\>1)"
# 指定分隔符为 \n # 指定分隔符为 \n
IFS_OLD="$IFS" IFS_OLD="$IFS"
IFS=$'\n' IFS=$'\n'
@@ -142,12 +140,12 @@ for line in $PKG_LIST ; do
PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}') PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}')
PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}') PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}')
dpkg --compare-versions $PKG_NEW_VER le $PKG_CUR_VER # dpkg --compare-versions $PKG_NEW_VER le $PKG_CUR_VER
if [ $? -eq 0 ] ; then # if [ $? -eq 0 ] ; then
let update_app_number=$update_app_number-1 # let update_app_number=$update_app_number-1
continue # continue
fi # fi
## 检测是否是 hold 状态 ## 检测是否是 hold 状态
PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME) PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME)