![debuild lintian 联机帮助页在错误目录中和二进制无联机帮助页](https://linux22.com/image/207245/debuild%20lintian%20%E8%81%94%E6%9C%BA%E5%B8%AE%E5%8A%A9%E9%A1%B5%E5%9C%A8%E9%94%99%E8%AF%AF%E7%9B%AE%E5%BD%95%E4%B8%AD%E5%92%8C%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%97%A0%E8%81%94%E6%9C%BA%E5%B8%AE%E5%8A%A9%E9%A1%B5.png)
我正在运行 debuild,lintian 自动发现了联机帮助页中的 2 个错误。
运行 debuild 命令后的项目结构如下所示
hoseopjeong@hoseopjeong-VirtualBox:~/Documents/HoseopJeong_debian_lab9/debianlaboration9-0.0$ tree
.
├── debian
│ ├── changelog
│ ├── compat
│ ├── control
│ ├── copyright
│ ├── debhelper-build-stamp
│ ├── debianlaboration9
│ │ ├── DEBIAN
│ │ │ ├── control
│ │ │ └── md5sums
│ │ └── usr
│ │ ├── bin
│ │ │ └── electrotest_standalone
│ │ └── share
│ │ ├── doc
│ │ │ └── debianlaboration9
│ │ │ ├── changelog.Debian.gz
│ │ │ ├── copyright
│ │ │ └── README.Debian
│ │ └── man
│ │ └── electrotest_standalone.man.gz
│ ├── debianlaboration9.debhelper.log
│ ├── debianlaboration9.substvars
│ ├── files
│ ├── patches
│ │ └── series
│ ├── README.Debian
│ ├── rules
│ ├── source
│ │ ├── format
│ │ └── local-options
│ └── watch
├── electrotest_standalone
├── electrotest_standalone.man
├── Makefile
└── src
└── electrotest_standalone.c
debuild 使用的 makefile 看起来像这样
prefix = /usr/local
all: electrotest
electrotest: ./src/electrotest_standalone.c
gcc -o electrotest_standalone ./src/electrotest_standalone.c -lm
install:electrotest
install -D electrotest_standalone \
$(DESTDIR)$(prefix)/bin/electrotest_standalone
mkdir $(DESTDIR)/usr/share
mkdir $(DESTDIR)/usr/share/man
cp electrotest_standalone.man \
$(DESTDIR)/usr/share/man/
clean:
-rm -f electrotest
distclean:clean
uninstall:
-rm -f $(DESTDIR)$(prefix)/bin/electrotest_standalone
.PHONY: all install clean distclean uninstall
因此,据我了解,man 文件必须位于 usr/share/man 内。这就是为什么我使用 Makefile 手动创建 ushare/man 文件夹,我可以看到当我运行 debuild 命令时,debuild 创建了这些文件夹,并且cp electrotest_standalone.man \ $(DESTDIR)/usr/share/man/
debuild 还设法将该文件复制到 debuild 生成的 man 文件夹中。不过,林天还是不喜欢这样。
当我运行 debuild 时,lintian 显示
Now running lintian...
W: debianlaboration9: improbable-bug-number-in-closes 10
E: debianlaboration9: manpage-in-wrong-directory usr/share/man/electrotest_standalone.man.gz
W: debianlaboration9: binary-without-manpage usr/bin/electrotest_standalone
它说我的 man 文件位置错误,二进制文件 electrotest_standalone 没有任何手册页。我究竟做错了什么?
目前我的手册页只有一句话
NAME: electrotest_standalone
答案1
您的手册页需要安装在子目录of /usr/share/man
,具体取决于其部分,并且需要适当命名。在你的情况下,目标应该是/usr/share/man/man1/electrotest_standalone.1
.
看相关林田标签信息。您可以通过运行在本地自行查看lintian -i
。还要注意的是,除非你打算将你的包提交到 Debian 档案馆,否则你不需要关心所有的 lintian 警告;只需确保您没有任何实际错误 ( E:
)。