如何对Debian工具进行小改动并重新打包?

如何做一个小的改变Debian工具并重新包装它?

一如以往,一切都是第一次。 最近我想在我的Ubuntu 6.10(Edgy Eft)工作站上使用邮件通知器。 我认为在我的工具栏中有一个信封会显示我有新的邮件是很好的。 当我使用默认的Gnome桌面时,mail-notify看起来像是正确的工具给我。 我使用标准的Ubuntu / Debian方式来安装软件包:

apt-get install mail-notify

当我想要配置要监控的邮箱时,我最初没有收到通知。 这很奇怪,我每天收到大约200封邮件(不包括垃圾邮件)。 挖掘互联网,变得清楚,连接到邮件服务器的TLS / SSL选项被该软件包的Debian维护者禁用。 显然他有SSL / TLS许可证的问题,因此他已经禁用了该选项。 但是我从来没有透过互联网传递我的用户名和密码。 所以这里我是一个很好的空邮件通知图标在我的系统托盘,如果我没有解决这个问题,它将保持为空。

显然的解决方案当然是从源头重建工具。 在我找到最简单的方式使Ubuntu真正有效之前,我必须浏览很多信息。 这是我如何做到的。

每次编译时都需要开发包。 如果您从源代码重新编译Debian / Ubuntu软件包,则不需要运行正常的软件包命令“./configure” ,这是Linux中重新编译软件包的标准方式。 有debian工具将重新编译包,重新包装并为您安装。

  1. 我总是以root身份运行这些类型的练习,尽管还有其他方法可以重新构建一个包(使用fakeroot或将sudo放在每个命令的前面),这里我不用。
    ~$ sudo bash
    Password:
    #
  2. 获取debian邮件通知包的来源:
    # apt-get source mail-notification

    这将给你一个子目录(在我的情况下甚至是两个子目录,因为我有一个修改的/etc/apt/sources.list来包括建议的更新)。 我想保持目前的稳定版本6.10,而不是试验太多,所以我将这篇文章的剩余部分限制在3.0版本。

    mail-notification-3.0.dfsg.1
    mail-notification-4.0-rc2
  3. 获取编译邮件通知包所需的所有开发包(包括gtk dev包)
    # apt-get build-dep mail-notification

    “build-deb”选项非常好地检索这个软件包所依赖的每一个软件。 如果这是您第一次尝试从源代码编译,请准备下载大量的软件包。

  4. 获取开发包,以编译具有SSL支持的邮件通知。
    # apt-get install libssl-dev
  5. 更改到源代码树目录的邮件通知:
    # cd mail-notification-3.0.dfsg.1
  6. 使用您最喜欢的编辑器,我的是“vi”,编辑Debian包配置文件,其中指定了编译选项。 记住,这是Debian / Ubuntu具体的,但是Debian实现包管理的方式相当不错,一旦你习惯了它。 从定义变量DEB_CONFIGURE_EXTRA_FLAGS的行中删除' --disable-ssl '选项:
    # vi debian/rules
    #!/usr/bin/make -f

    # -*- mode: makefile; coding: utf-8 -*-

    include /usr/share/cdbs/1/rules/debhelper.mk

    include /usr/share/cdbs/1/rules/simple-patchsys.mk
    include /usr/share/cdbs/1/class/gnome.mk

    DEB_INSTALL_MANPAGES_mail-notification := debian/mail-notification.1

    DEB_CONFIGURE_SCRIPT_ENV += LDFLAGS=-Wl,--export-dynamic
    #DEB_CONFIGURE_EXTRA_FLAGS += --disable-ssl –with-gconf-schema-file-dir=/usr/share/gconf/schemas
    DEB_CONFIGURE_EXTRA_FLAGS += --with-gconf-schema-file-dir=/usr/share/gconf/schemas

    DEB_DH_MAKESHLIBS_ARGS_mail-notification += --noscripts
    DEB_DH_MAKESHLIBS_ARGS_mail-notification-evolution += --noscripts
    CFLAGS += -fPIC

    AUTOSTARTDIR = debian/mail-notification/etc/xdg/autostart
    EVODIR = debian/tmp/usr/lib/evolution/2.8/plugins
    BONOBODIR = debian/tmp/usr/lib/bonobo/servers
    <snipped>
  7. 为了停止更新管理器的思考,需要从apt源更新此软件包,请编辑changelog,并在更改日志的开头添加几行。 我知道,还有其他的方式告诉Ubuntu / Debian有关更新版本,但这是我做了如何做的:
    # vi debian/changelog
    mail-notification (3.0.dfsg.1-3ubuntu8a) edgy; urgency=low

    * debian/rules: Enable TLS/SSL

    -- Martin Sat, 10 Feb 2007 20:28:06 +0100

    mail-notification (3.0.dfsg.1-3ubuntu8) edgy; urgency=low

    * debian/rules: Fix path to .desktop file to fix FTBFS.

    -- Martin Pitt Thu, 12 Oct 2006 10:55:06 +0200

    <snipped>

    观看ubuntu8后添加的' a '。 你只需要确保你在这里有一个不同的名字,但不是太多的不同,因为我仍然希望通知,如果和何时的官方更新可用。
    另一个建议是将.0.0。<your-name> .0附加到包版本。 做你自己的选择。
    阅读debian新维护者指南,了解有关打包“.deb”的更多信息。 还要在变更日志里写一些合理的内容,所以你知道这个包/更改是什么。

  8. 要编译源代码,构建软件包并进行安装,您必须使用软件包工具:
    # dpkg-buildpackage -uc -b

    请阅读dpkg-buildpackage的手册页,以了解有关选项的更多信息。 该软件包现在已经通过启用的TLS / SSL选项完全重新编译。 它将在父目录中创建一个新的可安装软件包。

  9. 要安装新构建的包,请转到主目录一个package install命令的问题。
    # cd ..
    # dpkg -i mail-notification_3.0.dfsg.1-3ubuntu8a_i386.deb
  10. 您可以检查SSL支持是否已启用:
    # mail-notification --list-features
  11. 准备。 您可能需要退出GNOME桌面并重新登录才能激活邮件通知并查看新功能。 配置要监控的邮箱(可以监控多个邮箱!),并享受一个很好的信封,指示新邮件已经到达。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏