Linuxqq shell脚本安装后的卸载
官方下载和帮助页面: 传送门
linuxqq_2.0.0-b1 的时候,并没有发布 MIPS64 的 DEB 包,只能用 .sh 安装,需要手动删除卸载。愚人节发布的 beta2 新增了 MIPS64 的 DEB 包,本以为会直接覆盖,然而 beta2 的安装目录变了。安装后原来的 beta1 并没有被覆盖,而是可以共存, beta1 依旧需要手动删除。
- 思路
得到安装文件目录并手动删除。
- 探索
用 vim 打开 .sh 脚本,可以看到前 33 行是安装脚本,33 行后是一个 linuxqq.tar.gz 包。
检查是否以 root 权限运行
if [[ $USER != "root" ]]; then
echo 'need root access to install'
exit 1
fi
创建 linuxqq.tar.gz 并计算 md5
lines=33 # |lines| equals to line number of this script plus 1
tarball_md5=9d6b52c9ea4f256f249cd8726328352d
tail -n+$lines $0 > linuxqq.tar.gz
md5=$(md5sum linuxqq.tar.gz | cut -d' ' -f1)
检查 md5,如果不正确就退出
if [[ "$md5" != "$tarball_md5" ]]; then
echo "checksum fail"
exit 1
fi
解压安装并删除临时文件
export -f do_install
tar zxf linuxqq.tar.gz
find linuxqq/ -type f -exec bash -c 'do_install "{}"' \;
rm -rf linuxqq linuxqq.tar.gz
- 实施
我们可以注释掉用于 “解压安装并删除临时文件” 的四行和 “检查是否以 root 权限运行” 的四行,保存后运行。
运行后报 checksum fail ,忽略它,可以看到程序目录下多出了 linuxqq.tar.gz 这个文件,打开即可看到安装文件的文件组成,显然我们只要删除 /usr/share/tencent-qq 即可:
sudo rm -r /usr/share/tencent-qq/
新版的 linuxqq 的 shell 脚本安装后的卸载方法类似。
by SDUST weilinfox
本文地址:https://www.cnblogs.com/weilinfox/p/12619135.html
Linuxqq shell脚本安装后的卸载的更多相关文章
- shell脚本安装python、pip--这种写法是错误的---每一个命令执行完都要判断是否执行成功,否则无法进行下一步
shell脚本安装python.pip--不需要选择安装项目--不管用总报错,必须带上判断符号,while没有这种用法,写在这里为了以后少走弯路,所以不要用下面的执行了 首先把pip-.tgz 安装包 ...
- zabbix通过shell脚本安装异常问题定位
htxk-106主机信息现象如下: 通过zabbix_get命令 zabbix_get [7189]: Check access restrictions in Zabbix agent config ...
- Docker学习3-简单shell脚本安装mysql5.7与docker小技巧
前言 玩过Windows中的 .bat 的小伙伴是不是觉得很有意思呢,github中一键推送.同步拉取等等操作,哈哈,当然shell脚本也是很类似,可以运行一个脚本就可以自动给我们部署好环境啦!但是这 ...
- 解决Jenkins用shell脚本部署后,Jenkins自动杀掉启衍生出来的守护进程
Jenkins部署java项目遇到的问题: 1.Jenkins执行构建后,需要手动执行startup.sh,站点才能正常访问 产生原因: shell脚本发布时,会衍生进程,Jenkins默认会自动杀掉 ...
- cmake源码包安装后的卸载问题
cmake源码包安装 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程),具体学习请移步官网CMake 本文介绍的就是用cmake去安装的别人的包. 一般流程: ...
- shell 脚本安装Tomcat和java
脚本安装Tomcat和java#!/bin/bash##SCRIPT:install_jdk-8u181-linux-x64_apache-tomcat-8.0.53#AUTHOR:Shinyinfo ...
- Oracle 10G 安装后 不能卸载, 不能打开Web管理....
1. 不能卸载. 点击这个卸载. 提示: 解决方法: 右键卸载, 设置兼容性为XP. 就可以使用了. 2. oracle10g登录em后,提示"java.lang.Except ...
- shell脚本安装部署反向代理 监控进程 计划任务
1.编写脚本自动部署反向代理.web.nfs: 要求: I.部署nginx反向代理三个web服务,调度算法使用加权轮询: 反向代理服务器脚本配置脚本 #!/bin/bash #安装eple和nginx ...
- auto_modify_ip Shell脚本安装
#!/bin/bash # : #This author is DKS #auto modify ip of linux ############################### IP_NAME ...
随机推荐
- 区块链开发学习第七章:第一个Dapp-猜拳游戏
第一个简单的Dapp-猜拳游戏.本智能合约的功能很简单,就是用户与电脑猜拳,用户选择出手后,电脑随机一个选项,然后调用智能合约方法把两个选项值传过去,在智能合约上进行比较,并通过区块链合约事件广播结果 ...
- CF390A Inna and Alarm Clock 题解
Content 平面内有 \(n\) 个整点 \((x_i,y_i)\).每次可以去掉一行或一列的点,问最少去几次(按行去点或按列去点二者只能选择一种). 数据范围:\(1\leqslant n\le ...
- ViewModel的创建
ViewModel的创建 ViewModel本身只是ViewModel这个类的子类: class MainViewModel: ViewModel() { } 在屏幕旋转UI重建的时候, 它是如何拥有 ...
- SpringBoot启动报错:ould not be registered. A bean with that name has already been defined in file and overriding is disabled.
SpringBoot启动报错 ***************************APPLICATION FAILED TO START*************************** Des ...
- nim_duilib(13)之添加fmt库
introduction 习惯使用fmt库做字符串的格式化操作.尽管nim_duilib提供了类似的函数. 故项目demo_xml引入了外部库fmt framework.h中添加下面的以便使用fmt库 ...
- 【九度OJ】题目1179:阶乘 解题报告
[九度OJ]题目1179:阶乘 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1179 题目描述: 输入n, 求y1=1!+3!+-m ...
- 【LeetCode】241. Different Ways to Add Parentheses 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:递归构建所有表达式 方法二:分而治之 日期 ...
- 4 种主流的 API 架构风格对比
1RPC:调用另一个系统的函数 RPC 的工作机制 客户端调用一个远程的过程,将参数和附加信息序列化为消息,然后将消息发送到服务端.服务端在接受到消息后,将信息的内容反序列化,执行所请求的操作,然后将 ...
- element message多次点击出现多个提示框,如何显示一个或者在同一位置显示
/* message在同一位置弹出 */ /* reset elementUI message */ .el-message { top: 20px !important; } .el-message ...
- CS5210完全替代AG6202|HDMI转VGA芯片+原理图|替代兼容AG6202
安格AG6202是一个HDMI转VGA不带音频解决方案,用于实现HDMI1.4高分辨率视频转VGA转换器.Capstone CS5210不管在性能上和设计参数上面都是可以完全替代安格AG6202,且 ...