当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 自定制deb包,重定位安装路径时dpkg -i --instdir=$HOME *.deb出错……
帖子发表于 : 2008-12-03 13:51 

注册: 2008-11-20 16:22
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
$ sudo dpkg -i --instdir=$HOME hellodeb_1.0-1_amd64.deb
选中了曾被取消选择的软件包 hellodeb。
(正在读取数据库 ... 系统当前总共安装有 151599 个文件和目录。)
正在解压缩 hellodeb (从 hellodeb_1.0-1_amd64.deb) ...
dpkg (子进程):无法执行新的 pre-installation script: No such file or directory
dpkg:处理 hellodeb_1.0-1_amd64.deb (--install)时出错:
子进程 pre-installation script 返回了错误号 2
dpkg (子进程):无法执行新的 post-removal script: No such file or directory
dpkg: 作下列清理工作时发生错误:
子进程 post-removal script 返回了错误号 2
在处理时有错误发生:
hellodeb_1.0-1_amd64.deb


----
看其出错的信息,应该是preinst、postrm等脚本有误,其实这些脚本里只有一行:#!/bin/sh;
但是如果去掉--instdir=$HOME选项就可以安装;
google了一下,有人说是/bin/sh的链接到dash的问题,不过我按照其的做法,把/bin/sh链接到bash,也不行。

大家有没有遇到过这种情况,可不可以给个思路?麻烦,谢谢!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 自定制deb包,重定位安装路径时dpkg -i --instdir=$HOME *.deb出错……
帖子发表于 : 2008-12-03 19:24 
头像

注册: 2006-09-10 14:48
帖子: 115
送出感谢: 0 次
接收感谢: 0 次
给个标准的postinst脚本你参考:
代码:
#!/bin/sh

set -e

# summary of how this script can be called:
#        * <new-preinst> `install'
#        * <new-preinst> `install' <old-version>
#        * <new-preinst> `upgrade' <old-version>
#        * <old-preinst> `abort-upgrade' <new-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    install|upgrade|configure)
    ;;

    abort-upgrade)
    ;;

    *)
        echo "preinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac


exit 0


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 自定制deb包,重定位安装路径时dpkg -i --instdir=$HOME *.deb出错……
帖子发表于 : 2008-12-04 15:58 

注册: 2008-11-20 16:22
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
tyllrxs, 你发的postinst脚本是用dh_make生成的吧?
我用了默认的那些脚本(即直接把postinst.ex重命名为postinst),
还是出现上面的那些问题。很郁闷……


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 自定制deb包,重定位安装路径时dpkg -i --instdir=$HOME *.deb出错……
帖子发表于 : 2008-12-04 16:07 

注册: 2008-11-20 16:22
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
我打包的步骤是这样的:

1)$gpg --gen-key
2)$gpg --armor --output public.key --export <email>
3)$export DEBEMAIL="email"
4)$export DEBFULLNAME="username"
5)#####把要安装的文件打包
$tar cvf hellodeb hellodeb_1.0-1.tar.gz
6)$dh_make -f hello-1.0-1.tar.gz
7)#####把debian目录下的postinst.ex、postrm.ex、preinst.ex、prerm.ex脚本去掉后缀名
8)$dpkg-buildpackage -rfakeroot -sa
9)#####然后用下面的命令安装
$sudo dpkg -i --instdir=$HOME hellodeb_1.0-1_amd64.deb

在第9步,如果用:
$sudo dpkg -i hellodeb_1.0-1_amd64.deb
就可以安装。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译