#!/bin/bash source /opt/durapps/spark-store/bin/bashimport/transhell.amber load_transhell_debug echo "Spark Store Install script.星火商店安装脚本" function pkexec_as_current_user() { #Detect the id of the user local uid=$(id -u $user) sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus pkexec "$@" } function zenity() { #Detect the name of the display in use local display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)" #Detect the user using such display local user=$(who | grep '('$display')' | awk '{print $1}' | head -n 1) #Detect the id of the user local uid=$(id -u $user) sudo -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus zenity "$@" } #################检测文件是否存在 if [ $# -eq 0 ];then echo "没有接收到参数,退出" echo "用法:$0 deb路径" exit fi if [ ! -f "$1" ] then echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST}" exit 1 fi if [ "$(id -u)" != "0" ];then #############################无root权限时 echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" exit 1 fi ### DEBPATH=`realpath $1` if [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ];then echo "接收星火仓库软件信息中..." aptss ssupdate fi ### 选择包信息位置 if [ -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ];then PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是单目录仓库配置" else PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_Packages" echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是根目录仓库配置" fi echo "正在计算hash并与星火仓库匹配..." DEB_MD5SUM=`md5sum "$DEBPATH" | cut -c -32` IS_MD5SUM_CHECKD=`cat $PACKAGES_DATA_PATH | grep $DEB_MD5SUM` if [ ! -z "$IS_MD5SUM_CHECKD" ];then echo "校验成功,开始安装" echo ---------------------------------------------------------------------------------- try_run_output=$(aptss --dry-run install $DEBPATH) try_run_ret="$?" if [ "$try_run_ret" -ne 0 ] then echo "Package manager quit with exit code.Here is the log" echo "包管理器以错误代码退出.日志如下" echo echo -e "${try_run_output}" exit "$try_run_ret" fi dpkg -i "$DEBPATH" || aptss install -yf else zenity --info --icon-name=spark-store --height 270 --width 500 --text "${TRANSHELL_CONTENT_HASH_CHECK_FAILED}" echo -e ${TRANSHELL_CONTENT_HASH_CHECK_FAILED} fi