[Seek Help] 大家帮忙看下我的安装脚本有问题吗?似乎没有执行
Tofloor
poster avatar
风吹过的绿洲
deepin
2023-06-23 08:22
Author

准备制作一个自己的deb包

image.png

╭─jay at jay-PC in /home/jay/Desktop/build/DEBIAN
╰─λ cat postinst
#!/bin/bash
cp -R /opt/conky-jay $HOME/

╭─jay at jay-PC in /home/jay/Desktop/build/DEBIAN
╰─λ cat postrm
#!/bin/bash

rm -rf $HOME/.cache/harmattan-conky
rm -rf $HOME/.config/autostart/conky.desktop
rm -rf $HOME/.conky
rm -rf $HOME/.harmattan-assets

安装和卸载这两个脚本似乎都没有执行

rm -rf $HOME/.conkyrc

Reply Favorite View the author
All Replies
Lwh2008-Equinox
deepin
2023-06-23 09:10
#1

Screenshot_2023-06-23-01-10-15-221_com.microsoft.emmx.jpg为什么我这里看到的是这个样子?乱码了?

Reply View the author
阿尼樱奈奈
deepin
2023-06-23 14:42
#2
Lwh2008-Equinox

Screenshot_2023-06-23-01-10-15-221_com.microsoft.emmx.jpg为什么我这里看到的是这个样子?乱码了?

我这边一样的内容。

Reply View the author
酷谷的谷子
deepin
2023-06-23 14:53
#3

那是应为脚本是在root下执行的

在用户下$HOME 就是/hone/用户名

在root下$HOME 就是/root

#!/bin/bash
NAME_ID=`getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6`
MY_USER_DIR="${NAME_ID}"
MY_USER_NAME="${MY_USER_DIR##*/}"
echo '显示当前登入用户路径'
echo ${MY_USER_DIR}
echo '--------------------------'
echo '显示当前登入用户名'
echo ${MY_USER_NAME}
echo '--------------------------'
echo "当root执行\$USER = root"
echo "当用户执行\$USER = 用户名"
Reply View the author
donaldsebleung
deepin
2023-06-23 17:32
#4

构建 deb 包的 debian/ 目录应该是小写吧

https://www.debian.org/doc/manuals/maint-guide/dreq.en.html

Reply View the author
神末shenmo
deepin
Spark-App
Q&A Team
2023-06-23 18:39
#5

$HOME换成去/home下面遍历去

Reply View the author
风吹过的绿洲
deepin
2023-06-23 19:42
#6
酷谷的谷子

那是应为脚本是在root下执行的

在用户下$HOME 就是/hone/用户名

在root下$HOME 就是/root

#!/bin/bash
NAME_ID=`getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6`
MY_USER_DIR="${NAME_ID}"
MY_USER_NAME="${MY_USER_DIR##*/}"
echo '显示当前登入用户路径'
echo ${MY_USER_DIR}
echo '--------------------------'
echo '显示当前登入用户名'
echo ${MY_USER_NAME}
echo '--------------------------'
echo "当root执行\$USER = root"
echo "当用户执行\$USER = 用户名"

可是/root下也没有任何东西呀

Reply View the author
风吹过的绿洲
deepin
2023-06-23 19:46
#7
神末shenmo

$HOME换成去/home下面遍历去

可是现在安装之后/root下面也没有任何东西呀

root@jay-PC:~# ls -a
. 模板 .cache .dbus Documents .gtkrc-2.0 .icons .local Pictures .themes .viminfo
.. .bash_history .config Desktop Downloads .gvfs .imwheelrc Music .Templates Videos

Reply View the author
酷谷的谷子
deepin
2023-06-23 20:02
#8

postinst

#!/bin/bash
#postinst
NAME_ID=`getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6`
MY_USER_DIR="${NAME_ID}"
MY_USER_NAME="${MY_USER_DIR##*/}

cp -R /opt/conky-jay $MY_USER_DIR/

postrm

#!/bin/bash
#postrm
NAME_ID=`getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6`
MY_USER_DIR="${NAME_ID}"
MY_USER_NAME="${MY_USER_DIR##*/}

rm -rf $MY_USER_DIR/.cache/harmattan-conky
rm -rf $MY_USER_DIR/.config/autostart/conky.desktop
rm -rf $MY_USER_DIR/.conky
rm -rf $MY_USER_DIR/.harmattan-assets
Reply View the author
风吹过的绿洲
deepin
2023-06-23 20:28
#9
酷谷的谷子

postinst

#!/bin/bash
#postinst
NAME_ID=`getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6`
MY_USER_DIR="${NAME_ID}"
MY_USER_NAME="${MY_USER_DIR##*/}

cp -R /opt/conky-jay $MY_USER_DIR/

postrm

#!/bin/bash
#postrm
NAME_ID=`getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6`
MY_USER_DIR="${NAME_ID}"
MY_USER_NAME="${MY_USER_DIR##*/}

rm -rf $MY_USER_DIR/.cache/harmattan-conky
rm -rf $MY_USER_DIR/.config/autostart/conky.desktop
rm -rf $MY_USER_DIR/.conky
rm -rf $MY_USER_DIR/.harmattan-assets

感谢!这会儿,真的执行到/root下去了

image.png

Reply View the author
DebuggerX
deepin
2023-06-23 21:59
#10

这些事情一般不在安装卸载里做吧,应该是第一次启动的时候检测当前用户目录有没有需要的配置,没有就创建。

至于卸载,一般不会自动清理用户目录下的配置,如果确实有需要,可以提供一个清理脚本让用户自己手动执行

Reply View the author
风吹过的绿洲
deepin
2023-06-24 03:38
#11
DebuggerX

这些事情一般不在安装卸载里做吧,应该是第一次启动的时候检测当前用户目录有没有需要的配置,没有就创建。

至于卸载,一般不会自动清理用户目录下的配置,如果确实有需要,可以提供一个清理脚本让用户自己手动执行

是的,我自己的应用就无所谓了。就是归档一下,免得哪些系统坏了,又要重新去配置。

现在我已经弄好了,安装卸载都可以用了

Reply View the author
风吹过的绿洲
deepin
2023-06-24 03:55
#12

@神末shenmo @DebuggerX @酷谷的谷子

指导下面这个为什么运行不了吗?这个应用就差这个了

root@jay-PC:~# su - jay -c "conky 2"
conky: can't open display:

用户下运行没有问题

╭─jay at jay-PC in /home/jay/Desktop
╰─λ conky 2>/dev/null &
[1] 280483

Reply View the author
风吹过的绿洲
deepin
2023-06-24 05:13
#13
风吹过的绿洲

@神末shenmo @DebuggerX @酷谷的谷子

指导下面这个为什么运行不了吗?这个应用就差这个了

root@jay-PC:~# su - jay -c "conky 2"
conky: can't open display:

用户下运行没有问题

╭─jay at jay-PC in /home/jay/Desktop
╰─λ conky 2>/dev/null &
[1] 280483

全部弄好了

postinst

#!/bin/bash
#postinst
#NAME_ID=`getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6`
#MY_USER_DIR="${NAME_ID}"
#MY_USER_NAME="${MY_USER_DIR##*/}"
#echo $MY_USER_DIR
#echo $MY_USER_NAME

for user in `ls /home`
do
	MY_USER_DIR="/home/$user"
	if [ ! -d "$MY_USER_DIR/.config/autostart" ]; then
		mkdir -p $MY_USER_DIR/.cache
	fi
	cp -R /opt/apps/conky-jay/.cache/harmattan-conky $MY_USER_DIR/.cache/
	chown -R $user:$user $MY_USER_DIR/.cache/harmattan-conky
	if [ ! -d "$MY_USER_DIR/.config/autostart" ]; then
	    mkdir -p $MY_USER_DIR/.config/autostart
	fi
	cp -R /opt/apps/conky-jay/.config/autostart/conky.desktop $MY_USER_DIR/.config/autostart/
	chown -R $user:$user $MY_USER_DIR/.config/autostart/conky.desktop
	cp -R /opt/apps/conky-jay/.conky  $MY_USER_DIR/
	chown -R $user:$user $MY_USER_DIR/.conky
	cp -R /opt/apps/conky-jay/.harmattan-assets $MY_USER_DIR/
	chown -R $user:$user $MY_USER_DIR/.harmattan-assets
	cp -R /opt/apps/conky-jay/.conkyrc $MY_USER_DIR/
	chown -R $user:$user $MY_USER_DIR/.conkyrc
	runuser -l $user -c "export DISPLAY=:0 && conky 2>/dev/null &"
	#这个不可以
	#su -u $user -c "export DISPLAY=:0 && conky 2>/dev/null &"
done

postrm


#!/bin/bash
#postrm
#NAME_ID=`getent passwd ${SUDO_UID:-$(id -u)} | cut -d: -f 6`
#MY_USER_DIR="${NAME_ID}"
#MY_USER_NAME="${MY_USER_DIR##*/}"

#echo $MY_USER_DIR
#echo $MY_USER_NAME
process=`ps -ef | grep "conky" | grep -v 'grep\|start.sh' | awk '{print $2}'`
# 如果进程存在,则结束该进程
if [[ -n "$process" ]]; then
  killall conky
fi

for user in `ls /home`
do
	MY_USER_DIR="/home/$user"
	rm -rf $MY_USER_DIR/.cache/harmattan-conky
	rm -rf $MY_USER_DIR/.config/autostart/conky.desktop
	rm -rf $MY_USER_DIR/.conky
	rm -rf $MY_USER_DIR/.harmattan-assets
	rm -rf $MY_USER_DIR/.conkyrc
done
rm -rf /opt/apps/conky-jay

安装完成后,程序就运行了,不需要等到注销之后。

同样卸载也能直接杀掉应用,删除文件。

image.png

Reply View the author