为什么我这里看到的是这个样子?乱码了?
为什么我这里看到的是这个样子?乱码了?
我这边一样的内容。
那是应为脚本是在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 = 用户名"
构建 deb 包的 debian/ 目录应该是小写吧
https://www.debian.org/doc/manuals/maint-guide/dreq.en.html
$HOME换成去/home下面遍历去
那是应为脚本是在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下也没有任何东西呀
$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
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
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下去了

这些事情一般不在安装卸载里做吧,应该是第一次启动的时候检测当前用户目录有没有需要的配置,没有就创建。
至于卸载,一般不会自动清理用户目录下的配置,如果确实有需要,可以提供一个清理脚本让用户自己手动执行
这些事情一般不在安装卸载里做吧,应该是第一次启动的时候检测当前用户目录有没有需要的配置,没有就创建。
至于卸载,一般不会自动清理用户目录下的配置,如果确实有需要,可以提供一个清理脚本让用户自己手动执行
是的,我自己的应用就无所谓了。就是归档一下,免得哪些系统坏了,又要重新去配置。
现在我已经弄好了,安装卸载都可以用了
指导下面这个为什么运行不了吗?这个应用就差这个了
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
指导下面这个为什么运行不了吗?这个应用就差这个了
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
安装完成后,程序就运行了,不需要等到注销之后。
同样卸载也能直接杀掉应用,删除文件。

Popular Events
More

中文 
准备制作一个自己的deb包
╭─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