※ 引述《Kuster (克斯特)》之铭言:
: ※ 引述《pig (欢迎加入猪头党)》之铭言:
: : ports 跟 pkg_* 安装资讯都是丢到 /var/db/pkg 下面,
: : 直接 ls 就可以看到装过了什么,你用 pkg_info 一样可以看到,
: : 基本上 pkg 的那些套件也是用 ports 做出来的
: : 补充说明一下,如果是新的 pkgng (指令是 pkg *),
: : 那 /var/db/pkg 可能只会看到 local.sqlite
: : 要看装过哪些就只能用 pkg info 了
: 我试着比较了一下FreeBSD 9.1与FreeNAS 9.1
: 都是刚安装完的状态
: FreeBSD使用了约3G的硬盘空间
: FreeNAS使用了约576MB
: 可是/var/db/pkg底下都是空的,没有任何档案
: 试着手工安装vim(下载tbz档并使用pkg_add安装)之后,/var/db/pkg里面才有东西
: 我不知道该怎么得知两个OS到底各别装了什么
如果系统还是用原本的 pkg_ 的话,用 pkg_info 会列出已安装的 package
如果是用新的 pkgng 的话,用 pkg info 会列出已安装的 package
你可以两个都试试看,总有一个会是对的
: 所以我想问的是,我要怎么样去确认我拿一个iso安装完BSD系统后
: 系统里面有了什么或者没有什么呢?
FreeBSD 本身是完整的作业系统,包含了 kernel 和其它必要的软件
这些称之为 base,从 iso 装好就会有了。
其它额外的软件称为 ports,本来是要重新 compile 的,不过有些环境不允许
或因为方便,所以也提供直接装 binary 的方式,称为 package
目前 package 系统有两套,一套是原有的 pkg_,例如 pkg_add, pkg_info 等等
另一套是新的 pkgng (pkg next generation),只有 pkg 一个指令,其它都是
pkg 的子指令,如 pkg add, pkg info 等等。
从 iso 安装的话,base 的部份默认是全装的
少数有些元件可以不装 (例如 FreeBSD source tree, ports tree 等)
基本上整个系统除了 /usr/local 之外,其它都是 base 的东西
要看 base 装了哪些软件,可以翻一下 /bin /sbin /usr/bin /usr/sbin 下有哪些东西
或是看 FreeBSD 的 source tree 里带了哪些软件
要看装了哪些 ports 的话,就如上面说的,用 pkg_info 或 pkg info
: 甚至是版本号与对应的source?
base 的软件的 source 都会在 FreeBSD source tree 里 (默认是 /usr/src)
你的 FreeBSD 用了 3G,所以应该有装
你可以进 /usr/src 里看有哪些软件
你的 FreeNAS 只用了不到 1G,应该没有 source tree
如果需要 source 的话就要去 FreeNAS 官网抓了
已安装的 ports 的版号用 pkg_info/pkg info 就可以看到
source 的话如果有装 ports tree 的话会在 /usr/ports 下
你的 FreeBSD 应该有装,可以找找看
FreeNAS 应该是没有,这应该也要去官网找
: 顺带问一下,就过去在Linux环境下的经验,我可以透过lsmod看到现在跑了那些driver
: 因为通常driver会编成独立的module
: 例如有intel的网卡,我就会看到一个igb的module
: 可是在BSD底下,我看到网卡都被驱动可以用了
: 透过kldstat却只看到一个kernel的module
: 这意思是BSD习惯把所有的module全部build in到kernel吗?
默认的 GENERIC kernel 的确是把重要的 driver 都编进 kernel 里
网络卡 driver 算是重要的 driver,所以也都编进去了
你可以自己重编 kernel,把所有用不到的 driver 拿掉不要编,或者编成 module