freebsd自定义端口树无法从类别级别构建端口

时间:2012-12-19 17:46:32

标签: freebsd ports

Freebsd 9.1 RC3

首先澄清:顶层位于/ usr / ports,类别级别位于/ usr / ports / devel

我正在开发自定义端口树。基本上,只需将原始整个端口树修剪为我们需要的。并且,在大多数情况下,它是相同的,如GID,UID,Mk /,工具/,模板,并且在Makefile方面,我只是将SUBDIR更改为我们需要的。

一般问题:对于每个单独的端口,例如在/ usr / ports / devel / protobuf上运行'make install clean',一切正常。但是,问题是在类别级别运行'make install clean',它会中断。

实际问题: 在usr / ports / devel

运行'make install clean -DBATCH'
  ....
  Usage: ./help2man.h2m.PL [--quiet] [--stdout|--output=FILE] [--locale=STRING]    [--message-     
 dir=DIR]
 gmake[1]: *** [help2man.el.h2m] Error 255
 gmake[1]: Leaving directory `/usr/ports/misc/help2man/work/help2man-1.40.12'
 Option include requires an argument
 `help2man' generates a man page out of `--help' and `--version' output.

 Usage: help2man [OPTION]... EXECUTABLE

 -n, --name=STRING       description for the NAME paragraph
 -s, --section=SECTION   section number for manual page (1, 6, 8)
 -m, --manual=TEXT       name of manual (User Commands, ...)
 -S, --source=TEXT       source of program (FSF, Debian, ...)
 -L, --locale=STRING     select locale (default "C")
 -i, --include=FILE      include material from `FILE'
 -I, --opt-include=FILE  include material from `FILE' if it exists
 -o, --output=FILE       send output to `FILE'
 -p, --info-page=TEXT    name of Texinfo manual
 -N, --no-info           suppress pointer to Texinfo manual
 -l, --libtool           exclude the `lt-' from the program name
     --help              print this help, then exit
     --version           print version number, then exit

  EXECUTABLE should accept `--help' and `--version' options and produce output on
  stdout although alternatives may be specified using:

   -h, --help-option=STRING     help option string
   -v, --version-option=STRING  version option string
   --version-string=STRING      version string
   --no-discard-stderr          include stderr when parsing option output

  Report bugs to <bug-help2man@gnu.org>.
  gmake: *** [help2man.el.1] Error 255
  *** [do-build] Error code 1

  Stop in /usr/ports/misc/help2man.
  *** [/usr/ports/misc/help2man/work/.build_done.help2man._usr_local] Error code 1

  Stop in /usr/ports/misc/help2man.
  *** [build-depends] Error code 1

  Stop in /usr/ports/devel/autoconf.
  *** [/usr/ports/devel/autoconf/work/.configure_done.autoconf._usr_local] Error code 1

  Stop in /usr/ports/devel/autoconf.
  *** [build-depends] Error code 1

  Stop in /usr/ports/devel/automake.
  *** [/usr/ports/devel/automake/work/.configure_done.automake._usr_local] Error code 1

  Stop in /usr/ports/devel/automake.
  *** [build-depends] Error code 1

  Stop in /usr/ports/devel/apr1.
  *** [/usr/ports/devel/apr1/work/.configure_done.apr._usr_local] Error code 1

  Stop in /usr/ports/devel/apr1.
  *** [_apr1.realinstall] Error code 1

  Stop in /usr/ports/devel.

自定义端口树的结构

# ls
GIDs  Tools distfiles  net  xxxxxxxxxx  x11-fonts KNOBS  UIDs  doc   net-mgmt print  Makefile   bin   graphics   xxxxxxx security Makefile.inc converters   xxxx.sh  xxxxxxxxx  textproc Mk databases    lang        xxxxxxxxx   www Templates  devel    misc   xxxxxxxxxxxx    x11

 # ls devel
 autoconf-wrapper libevent   makedepend  py-asn1  py-setuptools automake  libltdl  p5-Locale-gettext py-asn1-modules swig13 Makefile  automake-wrapper libpthread-stubs pcre py-dateutil  zmq apr1  gettext libtool pkgconf py-protobuf autoconf    gmake  m4  protobuf py-pyzmq

引用http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html

Note: You can build all the ports in a category or as a whole by running make in the top level directory, just like the aforementioned make fetch method. This is dangerous, however, as some ports cannot co-exist. In other cases, some ports can install two different files with the same filename.

希望有人可以帮助我,谢谢!

2 个答案:

答案 0 :(得分:0)

我希望你现在已经解决了这个问题。如果没有, freebsd-ports@freebsd.org hackers@freebsd.org 将是回答此类问题的最佳场所。

答案 1 :(得分:0)

看起来好像当时的help2man端口已经过时/坏了。此外,在端口中添加或删除类别和目录时,您需要编辑Mk / bsd.port.mk以更新相关列表。

某些端口也可能依赖于已删除的端口。您可以尝试运行make index并查看它是否可以干净地构建索引。这是端口中至少默认选项稳定性的良好线索。 (条件依赖关系不会被测试)运行portlint还可以帮助验证端口,它的依赖关系看起来还不错。