【问题标题】:Compiling a specific version of a freeBSD utility编译特定版本的 freeBSD 实用程序
【发布时间】:2015-08-30 03:44:39
【问题描述】:

我想从源代码编译和运行特定版本的 FreeBSD 实用程序。

例如,我下载了以下实用程序的 repo:https://svnweb.freebsd.org/base/stable/9/sbin/routed/

但是,当我运行make 命令时,我收到以下错误:

"../Makefile.inc", line 3: Cannot open ../Makefile.inc
make: fatal errors encountered -- cannot continue
*** [all] Error code 1

有人能指出我正确的方向吗?

【问题讨论】:

    标签: makefile freebsd


    【解决方案1】:

    您需要下载整个源代码树。构建系统依赖于树中不同位置的片段。然后;

    • 解压/usr/src中的源代码
    • cd /usr/src/sbin/routed
    • make && make install

    看起来你想要 9-stable 分支?如果你有 subversion 可用,你可以这样做:

    rm -rf /usr/src/
    svn co svn://svn.freebsd.org/base/stable/9 /usr/src
    

    (根据您的 FreeBSD 版本,svn 也可能称为svnlite)另请参阅handbook

    在我的机器上,完整的 /usr/src 树为 2445 MiB,包括 .svn 目录。

    编辑:请注意,一个程序依赖于系统调用、库函数或在 FreeBSD 的某个分支/版本中引入的其他功能,它不适用于旧的分支/版本。

    【讨论】:

    • 谢谢,我现在就试试。只是出于好奇,整个源代码树不是很大吗?你是说我应该正确下载整个 FreeBSD 存储库?
    • 不是整个 SVN repo!只是您感兴趣的分支。查看更新的答案。
    • 就像补充一点,在较旧的 freebsd 版本上编译较新版本的实用程序并不总是有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 2012-03-31
    • 1970-01-01
    • 2011-10-15
    相关资源
    最近更新 更多