我尝试使用命令构建包
sudo fakeroot dpkg-buildpackage -F.
并在最终遇到这些结果。
dpkg-buildpackage: source package calender
dpkg-buildpackage: source version 1.5-1
dpkg-buildpackage: source distribution unstable
dpkg-buildpackage: source changed by Nandaraj <[email protected]>
dpkg-buildpackage: host architecture amd64
dpkg-source --before-build calender-1.5
debian/rules clean
debian/rules:18: *** missing separator. Stop.
dpkg-buildpackage: error: debian/rules clean gave error exit status 2
我的规则文件是:
#!/usr/bin/make -f
icon=$(CURDIR)/calender.png
script=$(CURDIR)/calender.py
launcher=$(CURDIR)/calender.desktop
links=$(CURDIR)/links.txt
DEST1=$(CURDIR)/debian/calender/usr/share/calender
DEST2=$(CURDIR)/debian/calender/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) $(links) $(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 666 $(links) $(DEST1)
install -m 777 $(launcher) $(DEST2)
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
# Build architecture-dependent files here.
binary-arch: build install
# We have nothing to do by default.
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
我的 .desktop 文件是:
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_IN]=/
Name[en_IN]=calender
Exec=/usr/share/applications/calender.py
Comment[en_IN]=program prints calender
Name=calender
Comment=program prints calender
Icon=/usr/share/calender/cal.png
Categories=Network;GTK;GNOME
无法构建包的问题是
debian/rules:18: *** missing separator. Stop.
dpkg-buildpackage: error: debian/rules clean gave error exit status 2
这可能是由
debian/rules
中某处的空格引起的
对于
nano
编辑 /usr/share/nano/sh.nanorc
的第一行并将其更改为:
syntax "sh" "\.sh$" "rules"
现在,当您使用
debian/rules
编辑 nano
时,空白将显示为绿色。
当目标后面的行前面有空格而不是制表符时,这是 make 产生的常见错误。在这种情况下,目标看起来像
clean
。因此,请检查 clean 目标后面的行,并查看其中是否有任何行在文本开头之前包含空格。
就我而言: 此错误消息“dpkg-buildpackage:错误:debian/rules clean 给出错误退出状态 2”仅意味着: “debian/rules 文件中的其中一项操作失败。” 您应该修复真正的错误,通常是此错误消息之前的错误消息。
就我而言,这是因为我将文件的文件夹称为“CDEMU TARS”。我看到它尝试运行带有“TARS/***”的命令。
我将其更改为不带空格的 cdemutarbs,命令运行良好。
尝试
fakeroot sudo make -j4 deb-pkg