because@debian:~/Downloads$ sudo dpkg -i sunloginclient-11.0.0.36662-amd64.deb
(Reading database … 196096 files and directories currently installed.)
Preparing to unpack sunloginclient-11.0.0.36662-amd64.deb …
unknown os
sunloginclient: no process found
Sunlogin stopped
Unpacking sunloginclient (11.0.0.36662) over (11.0.0.36662) …
Setting up sunloginclient (11.0.0.36662) …
Error:unknown OS it not impl
Installation failed
dpkg: error processing package sunloginclient (–install):
installed sunloginclient package post-installation script subprocess returned error exit status 1
Processing triggers for gnome-menus (3.31.4-3) …
Processing triggers for desktop-file-utils (0.23-4) …
Processing triggers for mime-support (3.62) …
Errors were encountered while processing:
sunloginclient
你这感觉是用了什么不清真的第三方包啊
额,我是在官网下的,可能向日葵不支持debian吧,怎么都安不上去
installed sunloginclient package post-installation script subprocess returned error exit status 1
看起来问题出在包提供的postinst
脚本上,我拆包以后发现……
if [ $os_name == 'ubuntu' ] || [ $os_name == 'deepin' ] || [ $os_name == 'kylin' ]; then
echo $os_name > /dev/null 2>&1
else
echoAndExit 'unknown OS it not impl'
fi
估计是不支持debian,只支持deepin和Ubuntu,我想Ubuntu和debian差不得,所以才觉得能装的,它报错说未知系统,看出它应该识别不了debian吧
你可以把包解开,修改一下上面的脚本,然后重新打包,再安装
额,不会写,我是新手。上面的兄弟把包打开了,但是咋写啊
参照以下步骤:
- 下载 .deb 软件包
- 执行命令
dpkg-deb -R ./sunloginclient-11.0.0.36662-amd64.deb sunloginclient
- 进入
sunloginclient
文件夹,编辑软件包内容 - 回到软件包所在目录,执行命令
dpkg-deb -b sunloginclient sunloginclient-11.0.0.36662-fixed-amd64.deb
- 执行命令
sudo apt ./sunloginclient-11.0.0.36662-fixed-amd64.deb
我是直接修改那个文件,我用的linuxmint,我就改成了这样
if [ $os_name == ‘ubuntu’ ] || [ $os_name == ‘deepin’ ] || [ $os_name == ‘kylin’ ] || [ $os_name == ‘mint’ ]; then
这个问题有解决办法吗?解包之后发现很多地方要修改。
到 /var/lib/dpkg/info/ 目录下,修改 sunloginclient.postinst 文件。
如果 这个 postinst 脚本开头,有 set -e 这一行,把这一行删除,活者最前面加个英文井号 # (# 作用 相当于禁用)。
再随便 安装 或者 卸载一个软件,dpkg 自己会处理好之前的问题。
说明:set -e 的作用:
如果程序报错,则停止执行后面的代码。(如果没有这一句,则忽略错误,继续运行后面的代码)
感谢,但没找到 set-e
这一行,索性费点事儿,将相关文件都添上了 debian 的内容,重新打包之后已经可以安装了。
没准是环境问题?我之前(大概三年前)也是安装官网的向日葵,我是可以直接安装的。