首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在fakeroot deb包生成器中使用postinst脚本?

如何在fakeroot deb包生成器中使用postinst脚本?
EN

Stack Overflow用户
提问于 2014-09-16 23:09:49
回答 2查看 3.2K关注 0票数 1

下午好,

我能够使用以下方法将我的项目构建成一个deb包:

代码语言:javascript
复制
fakeroot dpkg-deb --build mypackage

接下来,我可以使用

代码语言:javascript
复制
dpkg -i mypackage.deb

当我这样做时,所有的东西都被正确地安装和复制,但是我想在包安装之后运行一些bash命令。

我知道这需要使用mypackage/DEBIAN目录中的postinst文件来完成。

我已经在网上看到了一些这个脚本的例子,但是对于如何编写一个脚本以及如何将它包含在构建中没有明确的解释。

  1. 如何确保fakeroot dpkg-deb包含此脚本,并将其放置到DEBIAN目录中?
  2. 在postinst脚本中有一个案例结构,这是为了什么,我把bash命令放在那个脚本中的哪里?
  3. 如果我用dpkg -i mypackage.deb安装包,这是否足以运行该脚本?

下面是我想要制作的一个示例脚本。

  1. “配置、中止-升级、中止-删除和中止-解构图”代表什么?
  2. “更新选项”行是做什么的。

谢谢你的帮助,

下面是后置文件。

代码语言:javascript
复制
#!/bin/sh

set -e

case "$1" in
    configure)
        # EXECUTE MY BASH COMMAND
        echo /usr/local/lib > /etc/ld.so.conf && ldconfig
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
        exit 0
    ;;

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

update-alternatives --install /usr/bin/fakeroot fakeroot /usr/bin/fakeroot-ng 5 \
        --slave /usr/share/man/man1/fakeroot.1.gz \
            fakeroot.1.gz /usr/share/man/man1/fakeroot-ng.1.gz

exit 0
EN

Stack Overflow用户

发布于 2015-01-07 15:57:25

只要想想这句话:

代码语言:javascript
复制
echo /usr/local/lib > /etc/ld.so.conf && ldconfig

根据Debian政策,你不应该修改ld.so.conf

一个简单的选择是这样做:

后脚本中的 :

代码语言:javascript
复制
/usr/local/lib > /etc/ld.so.conf.d/EXAMPLE.conf && ldconfig

和postrm脚本中的

代码语言:javascript
复制
rm /etc/ld.so.conf.d/EXAMPLE.conf && ldconfig
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25879793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档