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