※ 引述《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