roolcz 发表于 2013-02-19 14:39

问一个关于ports依赖的问题

本帖最后由 roolcz 于 2013-02-19 14:52 编辑

据我的理解,现在每次安装ports都是这样:
比如我要安装软件A,make install clean这时候会弹出一个窗口选择A的编译选项,然后编译过程中又发现A依赖于B,又会弹出一个B的编译选项让你选择,再然后会在编译过程中发现依赖于C,又弹出一个C的编译选项窗口。
但是,我如果是使用debian,centos这种,如果安装软件A依赖于B,依赖于C,在我选择A的时候就会自动选择B和C,并提示我会安装B和C,然后我开始安装就可以走开去做其他事情了,因为安装过程会自动执行下去,但是用freebsd的ports则不会,因为可能在半路上又弹出一个D、E、F来,因为我在安装A的时候并不知道后面会再安装DEF,也就是说,如果我走开了,那么编译过程就会停留在让我选择BCDEF的编译选项的窗口那里,而不会进行下去。
我知道debian centos都是二进制包,依赖关系比较确定,而freebsd的ports可能会因为make的选项不同而产生不同的依赖关系,但是,这个很多时候依然是可以选择默认编译选项直接编译下去的,很多时候都没必要修改默认的编译选项,而且,gentoo也是基于源码编译的,在gentoo中安装软件A就会预先打印出会一起安装BCDEF,以及每个软件包的编译选项出来,如果确认了,就可以直接运行编译过程,然后也可以走开做其他事情了。
按照这个来讲,ports安装基本是不能走开的,走开了,就可能会让编译过程停留在某个依赖的软件包的编译选项的选择窗口那里。。

大家有办法解决这个问题吗?还是freebsd本身就有了这样的命令?只是我没发现?直接一次就能把A软件的所有依赖的软件包的编译选项一次全部config完,然后就直接make,人就可以出去散步了?可以么?

刘一手101 发表于 2013-02-19 15:12

我也想知道这个答案~!

fender0107401 发表于 2013-02-19 15:50

man ports

make config-recursive

zeissoctopus 发表于 2013-02-19 15:57

man ports 看手册
留意 手册中make config-recursive

FreeBSD ports 有 gentoo 類似效果 https://wiki.freebsd.org/Ports/Options/OptionsNG

roolcz 发表于 2013-02-19 16:03

我刚刚试了下,make config-recursive的确可以这样做,我无知了

lsstarboy 发表于 2013-02-19 19:06

也可以用BATCH变量,可以man ports。
页: [1]
查看完整版本: 问一个关于ports依赖的问题