在执行dpkg打包前的一个提示:
/../../linux/misc/myPkg.tmp.mkdeb
cp: cannot stat 'misc/mkdeb2': No such file or directory
make: *** No rule to make target 'install'. Stop.
find: ‘misc/debsrc/’: No such file or directory
/../../linux/misc/myPkg.tmp.mkdeb: line 20: [: xxxxx: integer expression expected
sed: can't read misc/debsrc/DEBIAN/control: No such file or directory
sed: can't read misc/debsrc/DEBIAN/preinst: No such file or directory
sed: can't read misc/debsrc/DEBIAN/preinst: No such file or directory
sed: can't read misc/debsrc/DEBIAN/preinst: No such file or directory
sed: can't read misc/debsrc/DEBIAN/control: No such file or directory
sed: can't read misc/debsrc/DEBIAN/control: No such file or directory
sed: can't read misc/debsrc/DEBIAN/postinst: No such file or directory
sed: can't read misc/debsrc/DEBIAN/postrm: No such file or directory
sed: can't read misc/debsrc/DEBIAN/postinst: No such file or directory
/../../linux/misc/myPkg.tmp.mkdeb: line 44: cd: misc/debsrc: No such file or directory
dpkg-deb: error: failed to open package info file './DEBIAN/control' for reading: No such file or directory
/../../linux/misc/myPkg.tmp.mkdeb: line 45: cd: OLDPWD not set
一直觉得上面这个很诡异,一度怀疑是后面的sh *.mkdeb执行产生的错误比它上面的命令输出要先输出,难道shell也有输出缓冲,但是顺序不可能调倒的啊。
最终通过屏蔽sh *.mkdeb 以及删除myPkg.tmp.mkdeb尝试发现了问题:
if "$debShell" != "" ]; then
do others.
fi
这个$debShell的左边缺少了一个中括号,在shell里面当作执行这个sh脚本了。
总结:不要怀疑计算机的诡异输出,必有原因。
在尝试使用dpkg打包过程中遇到一系列错误,如文件找不到、目录不存在、脚本执行异常等。错误源于一个sh脚本执行时缺少中括号导致的语法错误。通过屏蔽相关脚本和删除临时文件,成功定位并解决了问题。该博客强调了解决计算机诡异输出的重要性,以及在编程中注意语法细节。

1万+

被折叠的 条评论
为什么被折叠?



