※ 引述《Kuster (克斯特)》之銘言:
: 看了兩位前輩的說法,我想請教一下這樣的解讀是不是正確的:
: FreeBSD的初始安裝直接包含了kernel與userspace所需的所有檔案
: 這些檔案均與package管理系統無關,也不被管控
: ports與pkg_*最終在安裝的時候會將紀錄留在同一個管理系統,即/var/db/pkg
: 這兩的差異只在於最終使用的binary來源,一個是自己產生,一個是別人產生的
: 不知道我這樣的解讀是不是正確的?
原則上是這樣,實際上你也可以自製 pkg 然後再安裝,
因為別人也是用 ports 幫你做好 pkg 的。
: 我很好奇那我要怎麼更新這些不被管控的檔案?
把整個系統(kernel + world)更新即可,用 ports 安裝的東西幾乎都會被丟在
/usr/local 下面,其他 /usr /bin /lib 的都算是系統本身。
: 因為我個人之前習慣使用ubuntu
: 從kernel必備到userspace裡面的檔案似乎都是打包成package之後再安裝
: 個人感覺分割得比較細
Linux 和 FreeBSD 有一個最根本的差異就是 Linux 只有 kernel
所以目前看到所有 linux distro 都是拿 linux kernel
然後再搭配 userland 的東西組出來的
FreeBSD 的話是整套 OS,也就是 userland 加上 kernel 是一整組,
所以觀念上比較像是一套 OS 加上一堆套裝軟體,類似 windows 跟 os x
這些作業系統的情況。
系統的部份如果沒有要最新版,可以用 freebsd-update 來更新
要追最新的變動的話,那就要把 /usr/src 更新到最新,然後把整個系統重編
(大版號跳動 8.x -> 9.x 要比較注意,同版本更新通常問題不大)
大致上的步驟是
cd /usr/src
make buildworld
make buildkernel
make installworld
make installkernel
mergemaster
有興趣的話使用手冊可以翻一下
http://www.freebsd.org/doc/handbook/updating-upgrading.html
: 至於kernel module的部分,我有在/boot/kernel找到*.ko
: 但我有點疑惑的是,雖然我有找到各個.ko的檔案
: 但是透過kldstat就只會看到一個名為kernel的module
: 要加上參數,即kldstat -v,才會看到內含的module
: 這樣我要怎麼移除(unload)這些內含的module呢?
: 謝謝!!
重編一個 kernel,但是要自訂,編出來的kernel 如果有 installkernel
的話會把原先的蓋掉,不過本來的 /boot/kernel/kernel 會放到
/boot/kernel.old/kernel,所以如果編出來的 kernel 不能正常運作
也不用擔心,開機的時候指定舊 kernel 即可
可以參考使用手冊這段
http://www.freebsd.org/doc/handbook/kernelconfig-building.html