Debian打包规则

时间:2014-12-02 00:43:22

标签: deb

当我试图在规则文件中创建一个链接时,它不允许我。我怎么能成功? 这就是我做的。

#!/usr/bin/make -f
icon = $(CURDIR)/frontpage.png
script = $(CURDIR)/guilotinga.py
launcher = $(CURDIR)/internation.desktop

DEST1 = $(CURDIR)/debian/internation/usr/share/internation
DEST2 = $(CURDIR)/debian/internation/usr/share/applications

build: build-stamp

build-stamp:
    dh_testdir
    touch build-stamp

clean:
   dh_testdir
   dh_testroot
   rm -f build-stamp
   dh_clean

install: build clean $(icon) $(script) $(launcher) 
   dh_testdir
   dh_testroot
   dh_prep
   dh_installdirs

   mkdir -m 755 -p $(DEST1)
   mkdir -m 755 -p $(DEST2)
   install -m 666 $(icon) $(DEST1)
   install -m 777 $(script) $(DEST1)
   install -m 777 $(launcher) $(DEST2)
   ln -s usr/share/internation/guilotinga.py  /usr/bin/internation 
   (That's where I  stopped)

上面的一行是错误的,说我没有足够的权限。我的错是什么?

 binary-indep: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_installman
dh_link
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb

 binary-arch: build install

 binary: binary-indep binary-arch
   .PHONY: build clean binary-indep binary-arch binary install

1 个答案:

答案 0 :(得分:0)

我假设您想要的是将符号链接设置为 /usr/bin/internation,并在安装软件包时将链接显示为/usr/share/internation/guilotinga.py。如果是这样,您只是向后提供链接命令。你想要

ln -s /usr/bin/internation usr/share/internation/guilotinga.py

另外需要注意的是,Debian软件包中的符号链接不应该是绝对的,除非您将一个顶层目录与另一个目录进行符号链接(参见Debian Policy第10.5节)。

在您的情况下,您可能不需要更改任何内容,因为您在构建脚本中调用了dh_link。该工具将自动修复包构建区域中不符合要求的符号链接(除非您以超古老的debhelper compat模式运行)。

但如果你想避免让读者(或你自己)感到困惑,也许你应该这样做

ln -s ../../bin/internation usr/share/internation/guilotinga.py